diff --git a/Plugin/Plugin.vcxproj b/Plugin/Plugin.vcxproj index 055bb879..929d2f03 100644 --- a/Plugin/Plugin.vcxproj +++ b/Plugin/Plugin.vcxproj @@ -20,13 +20,13 @@ DynamicLibrary true - v142 + v143 Unicode DynamicLibrary false - v142 + v143 false Unicode diff --git a/Plugin64/Plugin64.vcxproj b/Plugin64/Plugin64.vcxproj index 00fe6ae8..512c712c 100644 --- a/Plugin64/Plugin64.vcxproj +++ b/Plugin64/Plugin64.vcxproj @@ -29,26 +29,26 @@ DynamicLibrary true - v142 + v143 Unicode DynamicLibrary false - v142 + v143 true Unicode DynamicLibrary true - v142 + v143 Unicode DynamicLibrary false - v142 + v143 true Unicode diff --git a/Plugin64/file_save.cpp b/Plugin64/file_save.cpp index 748f6b1f..129e1d96 100644 --- a/Plugin64/file_save.cpp +++ b/Plugin64/file_save.cpp @@ -16,6 +16,7 @@ namespace FileSave { void fileSaveProc6(); void fileSaveProc6V130(); void fileSaveProc7(); + void fileSaveProc8(); uintptr_t fileSaveProc1ReturnAddress; uintptr_t fileSaveProc2ReturnAddress; uintptr_t fileSaveProc2CallAddress; @@ -490,6 +491,30 @@ namespace FileSave { return e; } + DllError fileSaveProc8Injector(RunOptions options) { + DllError e = {}; + + switch (options.version) { + case v1_33_3_0: + // nop + BytePattern::temp_instance().find_pattern("90 48 8D 55 0F 48 8D 4D EF E8"); + if (BytePattern::temp_instance().has_size(3, u8"ISSUE-231")) { + uintptr_t address = BytePattern::temp_instance().get(2).address(); + + Injector::MakeRangedNOP(address, address + 0xE); + } + else { + e.fileSave.unmatchdFileSaveProc8Injector = true; + } + + break; + default: + e.fileSave.versionFileSaveProc8Injector = true; + } + + return e; + } + DllError Init(RunOptions options) { DllError result = {}; @@ -502,6 +527,7 @@ namespace FileSave { result |= fileSaveProc5Injector(options); result |= fileSaveProc6Injector(options); result |= fileSaveProc7Injector(options); + result |= fileSaveProc8Injector(options); return result; } diff --git a/Plugin64/plugin_64.h b/Plugin64/plugin_64.h index 4be4683b..288eed3a 100644 --- a/Plugin64/plugin_64.h +++ b/Plugin64/plugin_64.h @@ -101,6 +101,8 @@ struct DllError{ bool versionFileSaveProc6Injector : 1; bool unmatchdFileSaveProc7Injector : 1; bool versionFileSaveProc7Injector : 1; + bool unmatchdFileSaveProc8Injector : 1; + bool versionFileSaveProc8Injector : 1; }; std::string print() { @@ -117,7 +119,9 @@ struct DllError{ + PL(unmatchdFileSaveProc6Injector) + PL(versionFileSaveProc6Injector) + PL(unmatchdFileSaveProc7Injector) - + PL(versionFileSaveProc7Injector); + + PL(versionFileSaveProc7Injector) + + PL(unmatchdFileSaveProc8Injector) + + PL(versionFileSaveProc8Injector); } } fileSave; diff --git a/d3d9/d3d9.vcxproj b/d3d9/d3d9.vcxproj index 72614bd2..7a63f711 100644 --- a/d3d9/d3d9.vcxproj +++ b/d3d9/d3d9.vcxproj @@ -20,13 +20,13 @@ DynamicLibrary true - v142 + v143 Unicode DynamicLibrary false - v142 + v143 true Unicode diff --git a/version/version.vcxproj b/version/version.vcxproj index 74de8f56..e3b32bc2 100644 --- a/version/version.vcxproj +++ b/version/version.vcxproj @@ -29,26 +29,26 @@ DynamicLibrary true - v142 + v143 Unicode DynamicLibrary false - v142 + v143 true Unicode DynamicLibrary true - v142 + v143 Unicode DynamicLibrary false - v142 + v143 true Unicode