From d1301ec244d7e20d2206f7e65f071a0e442a4404 Mon Sep 17 00:00:00 2001 From: Abheek Dhawan Date: Tue, 4 Jan 2022 14:00:30 -0600 Subject: [PATCH] Format and add configuration file for testing --- main.cpp | 46 +++++++++++++++++++++++++++++++++++----------- modlimitfix | Bin 0 -> 133464 bytes 2 files changed, 35 insertions(+), 11 deletions(-) create mode 100755 modlimitfix diff --git a/main.cpp b/main.cpp index 9d00146..be3914c 100644 --- a/main.cpp +++ b/main.cpp @@ -13,7 +13,7 @@ static const uint64_t address_already_patched = 1; static const uint64_t check_range_start = 0xB94000; static const uint64_t check_range_end = 0xB98000; static const uint64_t patch_offset_in_sequence = 1; -static const uint32_t patched_limit = 500; +uint32_t patched_limit = 500; static const std::vector known_candidates{0xB95CF6, 0xB96366, 0xB967A6, 0xB95E56}; @@ -60,12 +60,27 @@ uint64_t find_patch_address(const std::vector &search_buffer) { } int main() { + freopen("modlimitfix.conf", "r", stdin); + uint32_t mod_limit; + bool using_conf = false; + cin >> mod_limit; + if (mod_limit) { + patched_limit = mod_limit; + using_conf = true; + } + if (using_conf) { + cout << "Using configuration for mod limit value..." << endl; + } else { + cout << "Using defaults for mod limit values..." << endl; + } + cout << "Patching with a limit of " << patched_limit << "..." << endl; auto path = fs::absolute(fs::current_path() / "witcher3.exe"); if (!fs::exists(path)) { cout << "Could not find witcher3.exe file, make sure you are running this " << "in the bin/x64 directory." << endl; - cout << "Please press ENTER or close the window to terminate the program" << endl; + cout << "Please press ENTER or close the window to terminate the program" + << endl; cin.get(); return 0; } @@ -80,7 +95,8 @@ int main() { if (file.eof() || !file.read(reinterpret_cast(search_buffer.data()), read_size)) { cout << "witcher3.exe is unexpectedly small, aborting patching." << endl; - cout << "Please press ENTER or close the window to terminate the program" << endl; + cout << "Please press ENTER or close the window to terminate the program" + << endl; cin.get(); return 0; } @@ -90,13 +106,16 @@ int main() { if (patch_address == address_not_found) { cout << "Did not find the address to patch, possibly an unexpected version " - "of executable. Contact sedmelluq and give him your exe." << endl; - cout << "Please press ENTER or close the window to terminate the program" << endl; + "of executable. Contact sedmelluq and give him your exe." + << endl; + cout << "Please press ENTER or close the window to terminate the program" + << endl; cin.get(); return 0; } else if (patch_address == address_already_patched) { cout << "It seems the executable is already patched" << endl; - cout << "Please press ENTER or close the window to terminate the program" << endl; + cout << "Please press ENTER or close the window to terminate the program" + << endl; cin.get(); return 0; } @@ -105,13 +124,17 @@ int main() { if (fs::exists(backup_path)) { cout << "Backup file witcher3.exe.orig already exists. Rename it or delete " - "it (might be left over from previous patch attempt)." << endl; - cout << "Please press ENTER or close the window to terminate the program" << endl; + "it (might be left over from previous patch attempt)." + << endl; + cout << "Please press ENTER or close the window to terminate the program" + << endl; cin.get(); return 0; } else if (!fs::copy_file(path, backup_path)) { - cout << "Failed to create backup file, try running as administrator." << endl; - cout << "Please press ENTER or close the window to terminate the program" << endl; + cout << "Failed to create backup file, try running as administrator." + << endl; + cout << "Please press ENTER or close the window to terminate the program" + << endl; cin.get(); return 0; } @@ -129,7 +152,8 @@ int main() { cout << "Successfully patched." << endl; } } - cout << "Please press ENTER or close the window to terminate the program" << endl; + cout << "Please press ENTER or close the window to terminate the program" + << endl; cin.get(); return 0; } diff --git a/modlimitfix b/modlimitfix new file mode 100755 index 0000000000000000000000000000000000000000..c552efa18644c9b50633d3677ff3928256d0f1e7 GIT binary patch literal 133464 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

CRKT8rt+LAxF0Ub`1(BU2qG?@gGfh8s~ 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 literal 0 HcmV?d00001