From 608c25c9d2aa5e9c92273efc831cd9ca43a442e2 Mon Sep 17 00:00:00 2001 From: MiranDMC Date: Tue, 11 Jun 2024 18:32:18 +0200 Subject: [PATCH] Malware detection fixes (#150) --- .github/workflows/main.yml | 22 ++++++++++++++++-- .github/workflows/test.yml | 14 ++++++++++- CLEO5.vcxproj | 6 ++--- cleo_plugins/Audio/Audio.vcxproj | 18 ++++++++++---- cleo_plugins/Audio/Audio.vcxproj.filters | 3 +++ cleo_plugins/DebugUtils/DebugUtils.cpp | 6 +++-- cleo_plugins/DebugUtils/DebugUtils.vcxproj | 18 ++++++++++---- .../DebugUtils/DebugUtils.vcxproj.filters | 3 +++ .../FileSystemOperations.vcxproj | 18 ++++++++++---- .../FileSystemOperations.vcxproj.filters | 3 +++ cleo_plugins/IniFiles/IniFiles.vcxproj | 18 ++++++++++---- .../IniFiles/IniFiles.vcxproj.filters | 3 +++ cleo_plugins/Math/Math.vcxproj | 18 ++++++++++---- cleo_plugins/Math/Math.vcxproj.filters | 3 +++ .../MemoryOperations/MemoryOperations.vcxproj | 18 ++++++++++---- .../MemoryOperations.vcxproj.filters | 3 +++ cleo_plugins/Resource.rc | Bin 0 -> 1538 bytes cleo_plugins/Text/Text.vcxproj | 18 ++++++++++---- cleo_plugins/Text/Text.vcxproj.filters | 3 +++ 19 files changed, 159 insertions(+), 36 deletions(-) create mode 100644 cleo_plugins/Resource.rc diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6f285487..d328911d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: jobs: build: - runs-on: windows-2019 + runs-on: windows-2022 steps: - uses: actions/checkout@v4 @@ -47,7 +47,7 @@ jobs: vt_api_key: ${{ secrets.VT_KEY }} files: | ./.output/Release/CLEO.asi - + - name: Plugins - Build shell: cmd run: | @@ -55,6 +55,24 @@ jobs: msbuild -m cleo_plugins/CLEO_Plugins.sln /property:Configuration=Release /property:Platform=x86 msbuild -m cleo_plugins/CLEO_Plugins.sln /property:Configuration=Release /property:Platform=x86 + - name: Plugins - Sign + uses: x87/code-sign-action@develop + with: + certificate: '${{ secrets.DIG_KEY_CERT }}' + password: '${{ secrets.DIG_KEY_PWD }}' + certificatename: 'Seemann' + description: 'CLEO 5 Plugin' + timestampUrl: 'http://timestamp.digicert.com' + folder: './cleo_plugins/.output' + recursive: true + + - name: Plugins - VirusTotal Scan + uses: crazy-max/ghaction-virustotal@v4 + with: + vt_api_key: ${{ secrets.VT_KEY }} + files: | + ./cleo_plugins/.output/*.cleo + - name: Gather Output Files id: prepare_archive shell: cmd diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8ac2a245..b40a3317 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,12 +11,17 @@ on: jobs: build: - runs-on: windows-2019 + runs-on: windows-2022 steps: - uses: actions/checkout@v4 with: submodules: "recursive" + +# - name: Select Windows SDK +# uses: GuillaumeFalourd/setup-windows10-sdk-action@v2 +# with: +# sdk-version: 22000 # 18362, 19041, 20348, 22000, 22621 - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v2 @@ -39,6 +44,13 @@ jobs: run: | set PLUGIN_SDK_DIR=%GITHUB_WORKSPACE%\third-party\plugin-sdk msbuild -m cleo_plugins/CLEO_Plugins.sln /property:Configuration=Release /property:Platform=x86 + + - name: Plugins - VirusTotal Scan + uses: crazy-max/ghaction-virustotal@v4 + with: + vt_api_key: ${{ secrets.VT_KEY }} + files: | + ./cleo_plugins/.output/*.cleo - name: Gather Output Files id: prepare_archive diff --git a/CLEO5.vcxproj b/CLEO5.vcxproj index ce5d0463..4f15205e 100644 --- a/CLEO5.vcxproj +++ b/CLEO5.vcxproj @@ -106,7 +106,7 @@ true Win32Proj CLEO5 - 10.0.18362.0 + 10.0 CLEO5 @@ -114,14 +114,14 @@ DynamicLibrary false MultiByte - v142 + v143 true DynamicLibrary true MultiByte - v142 + v143 diff --git a/cleo_plugins/Audio/Audio.vcxproj b/cleo_plugins/Audio/Audio.vcxproj index 855eb459..045b59e9 100644 --- a/cleo_plugins/Audio/Audio.vcxproj +++ b/cleo_plugins/Audio/Audio.vcxproj @@ -15,7 +15,7 @@ true Win32Proj Audio - 10.0.18362.0 + 10.0 Audio @@ -23,14 +23,14 @@ DynamicLibrary false MultiByte - v142 + v143 true DynamicLibrary true MultiByte - v142 + v143 @@ -74,11 +74,12 @@ /Zc:threadSafeInit- %(AdditionalOptions) $(PLUGIN_SDK_DIR)\plugin_sa\;$(PLUGIN_SDK_DIR)\plugin_sa\game_sa\;$(PLUGIN_SDK_DIR)\shared;$(PLUGIN_SDK_DIR)\shared\game;$(SolutionDir)..\cleo_sdk;$(ProjectDir)\bass\;%(AdditionalIncludeDirectories) stdcpp17 + None true true - true + false UseLinkTimeCodeGeneration $(PLUGIN_SDK_DIR)\output\lib\;$(SolutionDir)..\cleo_sdk\;$(ProjectDir)bass\;%(AdditionalLibraryDirectories) cleo.lib;bass.lib;%(AdditionalDependencies) @@ -89,6 +90,9 @@ xcopy /Y "$(ProjectDir)*.ini" "$(OutDir)" xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" + + TARGET_NAME=$(TargetFileName) + @@ -113,6 +117,9 @@ xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" + + TARGET_NAME=$(TargetFileName) + @@ -158,6 +165,9 @@ xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" + + + diff --git a/cleo_plugins/Audio/Audio.vcxproj.filters b/cleo_plugins/Audio/Audio.vcxproj.filters index 9d593543..71b9e853 100644 --- a/cleo_plugins/Audio/Audio.vcxproj.filters +++ b/cleo_plugins/Audio/Audio.vcxproj.filters @@ -73,4 +73,7 @@ + + + \ No newline at end of file diff --git a/cleo_plugins/DebugUtils/DebugUtils.cpp b/cleo_plugins/DebugUtils/DebugUtils.cpp index 408e420c..fe72ebe6 100644 --- a/cleo_plugins/DebugUtils/DebugUtils.cpp +++ b/cleo_plugins/DebugUtils/DebugUtils.cpp @@ -74,6 +74,8 @@ class DebugUtils static void WINAPI OnDrawingFinished() { + auto GTA_GetKeyState = (SHORT (__stdcall*)(int))0x0081E64C; // use ingame function as GetKeyState might look like keylogger to some AV software + // log messages screenLog.Draw(); @@ -109,7 +111,7 @@ class DebugUtils keysReleased = true; for (size_t i = 0; i < KeyCount; i++) { - auto state = GetKeyState(KeyFirst + i); + auto state = GTA_GetKeyState(KeyFirst + i); if (state & 0x8000) // key down { keysReleased = false; @@ -122,7 +124,7 @@ class DebugUtils const size_t count = min(pausedScripts.size(), KeyCount); for (size_t i = 0; i < count; i++) { - auto state = GetKeyState(KeyFirst + i); + auto state = GTA_GetKeyState(KeyFirst + i); if (state & 0x8000) // key down { keysReleased = false; diff --git a/cleo_plugins/DebugUtils/DebugUtils.vcxproj b/cleo_plugins/DebugUtils/DebugUtils.vcxproj index b4cc0f6b..8c4e9332 100644 --- a/cleo_plugins/DebugUtils/DebugUtils.vcxproj +++ b/cleo_plugins/DebugUtils/DebugUtils.vcxproj @@ -15,21 +15,21 @@ true Win32Proj DebugUtils - 10.0.18362.0 + 10.0 DynamicLibrary false MultiByte - v142 + v143 true DynamicLibrary true MultiByte - v142 + v143 @@ -71,11 +71,12 @@ _NDEBUG;_USING_V110_SDK71_;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;GTASA;GTAGAME_NAME="San Andreas";GTAGAME_ABBR="SA";GTAGAME_ABBRLOW="sa";GTAGAME_PROTAGONISTNAME="CJ";GTAGAME_CITYNAME="San Andreas";%(PreprocessorDefinitions);TARGET_NAME=R"($(TargetName))" /Zc:threadSafeInit- %(AdditionalOptions) stdcpp17 + None true true - true + false UseLinkTimeCodeGeneration $(PLUGIN_SDK_DIR)\output\lib\;$(SolutionDir)..\cleo_sdk;%(AdditionalLibraryDirectories) cleo.lib;%(AdditionalDependencies) @@ -89,6 +90,9 @@ xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -116,6 +120,9 @@ xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -134,6 +141,9 @@ xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" + + + diff --git a/cleo_plugins/DebugUtils/DebugUtils.vcxproj.filters b/cleo_plugins/DebugUtils/DebugUtils.vcxproj.filters index b06f5016..699e95c5 100644 --- a/cleo_plugins/DebugUtils/DebugUtils.vcxproj.filters +++ b/cleo_plugins/DebugUtils/DebugUtils.vcxproj.filters @@ -36,4 +36,7 @@ + + + \ No newline at end of file diff --git a/cleo_plugins/FileSystemOperations/FileSystemOperations.vcxproj b/cleo_plugins/FileSystemOperations/FileSystemOperations.vcxproj index 03365ec6..96f199fa 100644 --- a/cleo_plugins/FileSystemOperations/FileSystemOperations.vcxproj +++ b/cleo_plugins/FileSystemOperations/FileSystemOperations.vcxproj @@ -15,21 +15,21 @@ true Win32Proj FileSystemOperations - 10.0.18362.0 + 10.0 DynamicLibrary false MultiByte - v142 + v143 true DynamicLibrary true MultiByte - v142 + v143 @@ -71,11 +71,12 @@ /Zc:threadSafeInit- %(AdditionalOptions) $(PLUGIN_SDK_DIR)\plugin_sa\;$(PLUGIN_SDK_DIR)\plugin_sa\game_sa\;$(PLUGIN_SDK_DIR)\shared;$(PLUGIN_SDK_DIR)\shared\game;$(SolutionDir)..\cleo_sdk;%(AdditionalIncludeDirectories) stdcpp17 + None true true - true + false UseLinkTimeCodeGeneration $(PLUGIN_SDK_DIR)\output\lib\;$(SolutionDir)..\cleo_sdk;%(AdditionalLibraryDirectories) cleo.lib;%(AdditionalDependencies) @@ -87,6 +88,9 @@ if defined GTA_SA_DIR ( xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -112,6 +116,9 @@ if defined GTA_SA_DIR ( xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -123,6 +130,9 @@ if defined GTA_SA_DIR ( + + + diff --git a/cleo_plugins/FileSystemOperations/FileSystemOperations.vcxproj.filters b/cleo_plugins/FileSystemOperations/FileSystemOperations.vcxproj.filters index 33fef5b0..5f134c6f 100644 --- a/cleo_plugins/FileSystemOperations/FileSystemOperations.vcxproj.filters +++ b/cleo_plugins/FileSystemOperations/FileSystemOperations.vcxproj.filters @@ -19,4 +19,7 @@ {a2c39c52-f49e-4ffe-bb0a-661ab07131b9} + + + \ No newline at end of file diff --git a/cleo_plugins/IniFiles/IniFiles.vcxproj b/cleo_plugins/IniFiles/IniFiles.vcxproj index d2c86010..05e4b2b3 100644 --- a/cleo_plugins/IniFiles/IniFiles.vcxproj +++ b/cleo_plugins/IniFiles/IniFiles.vcxproj @@ -15,21 +15,21 @@ true Win32Proj IniFiles - 10.0.18362.0 + 10.0 DynamicLibrary false MultiByte - v142 + v143 true DynamicLibrary true MultiByte - v142 + v143 @@ -71,11 +71,12 @@ _NDEBUG;_USING_V110_SDK71_;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;GTASA;GTAGAME_NAME="San Andreas";GTAGAME_ABBR="SA";GTAGAME_ABBRLOW="sa";GTAGAME_PROTAGONISTNAME="CJ";GTAGAME_CITYNAME="San Andreas";%(PreprocessorDefinitions);TARGET_NAME=R"($(TargetName))" /Zc:threadSafeInit- %(AdditionalOptions) stdcpp17 + None true true - true + false UseLinkTimeCodeGeneration $(PLUGIN_SDK_DIR)\output\lib\;$(SolutionDir)..\cleo_sdk;%(AdditionalLibraryDirectories) cleo.lib;%(AdditionalDependencies) @@ -87,6 +88,9 @@ if defined GTA_SA_DIR ( xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -112,10 +116,16 @@ if defined GTA_SA_DIR ( xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + + + + diff --git a/cleo_plugins/IniFiles/IniFiles.vcxproj.filters b/cleo_plugins/IniFiles/IniFiles.vcxproj.filters index a93178c2..164b15c4 100644 --- a/cleo_plugins/IniFiles/IniFiles.vcxproj.filters +++ b/cleo_plugins/IniFiles/IniFiles.vcxproj.filters @@ -3,4 +3,7 @@ + + + \ No newline at end of file diff --git a/cleo_plugins/Math/Math.vcxproj b/cleo_plugins/Math/Math.vcxproj index 23ce4620..7c8954a1 100644 --- a/cleo_plugins/Math/Math.vcxproj +++ b/cleo_plugins/Math/Math.vcxproj @@ -15,21 +15,21 @@ true Win32Proj Math - 10.0.18362.0 + 10.0 DynamicLibrary false MultiByte - v142 + v143 true DynamicLibrary true MultiByte - v142 + v143 @@ -71,11 +71,12 @@ _NDEBUG;_USING_V110_SDK71_;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;GTASA;GTAGAME_NAME="San Andreas";GTAGAME_ABBR="SA";GTAGAME_ABBRLOW="sa";GTAGAME_PROTAGONISTNAME="CJ";GTAGAME_CITYNAME="San Andreas";%(PreprocessorDefinitions);TARGET_NAME=R"($(TargetName))" /Zc:threadSafeInit- %(AdditionalOptions) stdcpp17 + None true true - true + false UseLinkTimeCodeGeneration $(PLUGIN_SDK_DIR)\output\lib\;$(SolutionDir)..\cleo_sdk;%(AdditionalLibraryDirectories) cleo.lib;%(AdditionalDependencies) @@ -87,6 +88,9 @@ if defined GTA_SA_DIR ( xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -112,6 +116,9 @@ if defined GTA_SA_DIR ( xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -120,6 +127,9 @@ xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" + + + diff --git a/cleo_plugins/Math/Math.vcxproj.filters b/cleo_plugins/Math/Math.vcxproj.filters index 7b248992..b5865d2b 100644 --- a/cleo_plugins/Math/Math.vcxproj.filters +++ b/cleo_plugins/Math/Math.vcxproj.filters @@ -16,4 +16,7 @@ cleo_sdk + + + \ No newline at end of file diff --git a/cleo_plugins/MemoryOperations/MemoryOperations.vcxproj b/cleo_plugins/MemoryOperations/MemoryOperations.vcxproj index b14e5990..8b6a4feb 100644 --- a/cleo_plugins/MemoryOperations/MemoryOperations.vcxproj +++ b/cleo_plugins/MemoryOperations/MemoryOperations.vcxproj @@ -15,7 +15,7 @@ true Win32Proj MemoryOperations - 10.0.18362.0 + 10.0 MemoryOperations @@ -23,14 +23,14 @@ DynamicLibrary false MultiByte - v142 + v143 true DynamicLibrary true MultiByte - v142 + v143 @@ -72,11 +72,12 @@ /Zc:threadSafeInit- %(AdditionalOptions) $(PLUGIN_SDK_DIR)\plugin_sa\;$(PLUGIN_SDK_DIR)\plugin_sa\game_sa\;$(PLUGIN_SDK_DIR)\shared;$(PLUGIN_SDK_DIR)\shared\game;$(SolutionDir)..\cleo_sdk;%(AdditionalIncludeDirectories) stdcpp17 + None true true - true + false UseLinkTimeCodeGeneration $(PLUGIN_SDK_DIR)\output\lib\;$(SolutionDir)..\cleo_sdk;%(AdditionalLibraryDirectories) cleo.lib;%(AdditionalDependencies) @@ -88,6 +89,9 @@ if defined GTA_SA_DIR ( xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -113,6 +117,9 @@ if defined GTA_SA_DIR ( xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -142,6 +149,9 @@ if defined GTA_SA_DIR ( + + + diff --git a/cleo_plugins/MemoryOperations/MemoryOperations.vcxproj.filters b/cleo_plugins/MemoryOperations/MemoryOperations.vcxproj.filters index d26f1298..0b8bafb7 100644 --- a/cleo_plugins/MemoryOperations/MemoryOperations.vcxproj.filters +++ b/cleo_plugins/MemoryOperations/MemoryOperations.vcxproj.filters @@ -40,4 +40,7 @@ cleo_sdk + + + \ No newline at end of file diff --git a/cleo_plugins/Resource.rc b/cleo_plugins/Resource.rc new file mode 100644 index 0000000000000000000000000000000000000000..6164065e35dcfb96a82128af8fb9d565ef60fff4 GIT binary patch literal 1538 zcmd6n-*3`T6vw}>nD{?5_@c=)b=hJx#spy_QwGamJS`zGDr>~nP^Rvm*L}``Qd;Kr z;EQQ)@9n+ke81oG*0rz8FVYvGn3+|sO1)zFE$j3y{uxQbQIdI?*KmIeF~oZGB1d+D0l@P_K6ZiuFH zRws@*a)x8pLFL4lZQnd?9Ajzml>LKEl)K2e{ynhsT-3hs%MS-G*EB>rgiNZ>?xgkLzgVc>{#DWQ1>d-H}wj1xP@B9=y?P)k77&& zc^pXzZ9vo`I&MIla>6Q(ooBFp>|7;?jiMg{)S*0)^^_h zek)hiTJ`O2P0GFVFUUu9Kx8{6bNx9Pp_*(ulayqVbPN-jgd+ZkN O>Gir+tGEk2#p(_nLDqTz literal 0 HcmV?d00001 diff --git a/cleo_plugins/Text/Text.vcxproj b/cleo_plugins/Text/Text.vcxproj index 7eed1c17..86bc04e1 100644 --- a/cleo_plugins/Text/Text.vcxproj +++ b/cleo_plugins/Text/Text.vcxproj @@ -15,21 +15,21 @@ true Win32Proj Text - 10.0.18362.0 + 10.0 DynamicLibrary false MultiByte - v142 + v143 true DynamicLibrary true MultiByte - v142 + v143 @@ -71,11 +71,12 @@ _NDEBUG;_USING_V110_SDK71_;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;GTASA;GTAGAME_NAME="San Andreas";GTAGAME_ABBR="SA";GTAGAME_ABBRLOW="sa";GTAGAME_PROTAGONISTNAME="CJ";GTAGAME_CITYNAME="San Andreas";%(PreprocessorDefinitions);TARGET_NAME=R"($(TargetName))" /Zc:threadSafeInit- %(AdditionalOptions) stdcpp17 + None true true - true + false UseLinkTimeCodeGeneration $(PLUGIN_SDK_DIR)\output\lib\;$(SolutionDir)..\cleo_sdk;%(AdditionalLibraryDirectories) cleo.lib;Shlwapi.lib;%(AdditionalDependencies) @@ -87,6 +88,9 @@ if defined GTA_SA_DIR ( xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -112,6 +116,9 @@ if defined GTA_SA_DIR ( xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" ) + + TARGET_NAME=$(TargetFileName) + @@ -135,6 +142,9 @@ xcopy /Y "$(OutDir)$(TargetName).*" "$(GTA_SA_DIR)\cleo\cleo_plugins\" + + + diff --git a/cleo_plugins/Text/Text.vcxproj.filters b/cleo_plugins/Text/Text.vcxproj.filters index 81b0b82e..5543202f 100644 --- a/cleo_plugins/Text/Text.vcxproj.filters +++ b/cleo_plugins/Text/Text.vcxproj.filters @@ -56,4 +56,7 @@ {72d65844-4b83-4ef4-9736-ff17836a8cfa} + + + \ No newline at end of file