From dda020a72a9202f853aadb06f2264f39ff7ae7d8 Mon Sep 17 00:00:00 2001 From: xerox Date: Thu, 6 Aug 2020 09:08:21 -0700 Subject: [PATCH] cleaned the code up, merged the bypass into the cheat --- ligma-cheat/ligma-bypass/bypass/bypass.h | 36 --- ligma-cheat/ligma-bypass/hooks/got_hook.h | 46 ---- ligma-cheat/ligma-bypass/hooks/shithook.h | 137 ----------- ligma-cheat/ligma-bypass/ligma.h | 8 - ligma-cheat/ligma-bypass/ligma.vcxproj | 224 ------------------ .../ligma-bypass/ligma.vcxproj.filters | 45 ---- ligma-cheat/ligma-bypass/ligma.vcxproj.user | 4 - ligma-cheat/ligma-bypass/utils/utils.h | 23 -- ligma-cheat/ligma-cheat.sln | 18 -- .../bypass/bypass.cpp | 25 +- ligma-cheat/ligma-cheat/bypass/bypass.h | 2 +- ligma-cheat/ligma-cheat/libligma.a | Bin 36588 -> 0 bytes ligma-cheat/ligma-cheat/ligma-cheat.vcxproj | 33 +-- .../ligma-cheat/ligma-cheat.vcxproj.filters | 6 + 14 files changed, 37 insertions(+), 570 deletions(-) delete mode 100644 ligma-cheat/ligma-bypass/bypass/bypass.h delete mode 100644 ligma-cheat/ligma-bypass/hooks/got_hook.h delete mode 100644 ligma-cheat/ligma-bypass/hooks/shithook.h delete mode 100644 ligma-cheat/ligma-bypass/ligma.h delete mode 100644 ligma-cheat/ligma-bypass/ligma.vcxproj delete mode 100644 ligma-cheat/ligma-bypass/ligma.vcxproj.filters delete mode 100644 ligma-cheat/ligma-bypass/ligma.vcxproj.user delete mode 100644 ligma-cheat/ligma-bypass/utils/utils.h rename ligma-cheat/{ligma-bypass => ligma-cheat}/bypass/bypass.cpp (77%) delete mode 100644 ligma-cheat/ligma-cheat/libligma.a diff --git a/ligma-cheat/ligma-bypass/bypass/bypass.h b/ligma-cheat/ligma-bypass/bypass/bypass.h deleted file mode 100644 index 61a8eb9c4..000000000 --- a/ligma-cheat/ligma-bypass/bypass/bypass.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include "../ligma.h" - -#define HWID_VALUE "what do you call nuts on your chin? a dick down your throat you fucking retard!" -#define offset_emulator_check 0x000D7B4 -#define offset_ischeat_packet 0x00128E0 -#define offset_mshook_function 0x0010358 -#define offset_fopen_got 0x23ECC - -namespace ligma -{ - namespace bypass - { - inline void* fopen_ptr = nullptr; - inline void* system_prop_get = nullptr; - inline void* loadbufferx = nullptr; - inline void* loader_dlopen_ptr = nullptr; - - // every shithook you make you will need a mutex. - inline std::mutex fopen_mutex; - inline std::mutex system_prop_mutex; - inline std::mutex loadbufferx_mutex; - inline std::mutex dlopen_mutex; - inline std::function il2cpp_callback; - - void init(const std::function& callback); - void* dlopen_hook(const char* filename, int flags); - FILE* fopen_hook(const char* path, const char* mode); - int system_property_hook(const char* name, char* value); - int loadbufferx_hook(void* L, const char* buff, size_t sz, const char* name, const char* mode); - } -} \ No newline at end of file diff --git a/ligma-cheat/ligma-bypass/hooks/got_hook.h b/ligma-cheat/ligma-bypass/hooks/got_hook.h deleted file mode 100644 index 215d709e7..000000000 --- a/ligma-cheat/ligma-bypass/hooks/got_hook.h +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include -#include -#include -#include - -#define LOGI(...) ((void)__android_log_print(4, "ligma", __VA_ARGS__)) -#define LOGW(...) ((void)__android_log_print(5, "ligma", __VA_ARGS__)) - -namespace ligma -{ - namespace hook - { - // - // TODO this doesnt work yet, needs to be debugged! - // - inline void* got_hook(elf32_hdr* module_base, const std::pair& module_info, void* new_ptr) - { - if (!module_base || !module_info.first || !module_info.second || !new_ptr) - return {}; - - const auto orig_module_base = dlopen(module_info.first, RTLD_NOW); - const auto orig_ptr = dlsym(orig_module_base, module_info.second); - - const auto shstrtab_header_offset = module_base->e_shoff + module_base->e_shstrndx * sizeof(elf32_shdr); - const auto shstr_header = reinterpret_cast(reinterpret_cast(module_base) + shstrtab_header_offset); - - const auto shstr_section = reinterpret_cast(module_base) + shstr_header->sh_offset; - auto section_header = reinterpret_cast(reinterpret_cast(module_base) + module_base->e_shoff); - - for (auto idx = 0u; idx < module_base->e_shnum; ++idx) - { - if (strcmp(shstr_section + section_header->sh_name, ".got")) - { - for (auto section_value = reinterpret_cast(module_base) + section_header->sh_offset; - section_value < reinterpret_cast(module_base) + section_header->sh_size; section_value += 0x8) - if (*reinterpret_cast(section_value) == orig_ptr) - *reinterpret_cast(section_value) = new_ptr; - break; - } - section_header++; - } - return orig_ptr; - } - } -} \ No newline at end of file diff --git a/ligma-cheat/ligma-bypass/hooks/shithook.h b/ligma-cheat/ligma-bypass/hooks/shithook.h deleted file mode 100644 index bdeaaa5cb..000000000 --- a/ligma-cheat/ligma-bypass/hooks/shithook.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - MIT License - - Copyright (c) 2020 xerox - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -*/ - -#pragma once -#include -#include -#include -#include -#include - -#define PAGE_START(ptr) reinterpret_cast(reinterpret_cast(ptr) >> 12 << 12) -#define ARM_JMP_CODE 0xE51FF004 - -namespace ligma -{ - namespace hook - { - class detour - { - public: - detour(void* addr_to_hook, void* jmp_to, bool enable = true) - : - hook_addr(addr_to_hook), - detour_addr(jmp_to), - hook_installed(false) - { - reinterpret_cast(jmp_code)[0] = ARM_JMP_CODE; // LDR PC, [PC, #-4] - reinterpret_cast(jmp_code)[1] = jmp_to; - memcpy(org_bytes, hook_addr, sizeof(org_bytes)); - if (enable) install(); - } - - void install() - { - if (hook_installed.load()) - return; - - if (!mprotect(PAGE_START(hook_addr), getpagesize(), PROT_READ | PROT_WRITE | PROT_EXEC)) - { - memcpy((void*)((long)hook_addr), jmp_code, sizeof(jmp_code)); - mprotect(PAGE_START(hook_addr), getpagesize(), PROT_READ | PROT_EXEC); - cacheflush(reinterpret_cast(hook_addr), reinterpret_cast(hook_addr) + getpagesize(), NULL); - hook_installed.exchange(true); - } - } - - void uninstall() - { - if (!hook_installed.load()) - return; - - if (!mprotect(PAGE_START(hook_addr), getpagesize(), PROT_READ | PROT_WRITE | PROT_EXEC)) - { - memcpy(hook_addr, org_bytes, sizeof(jmp_code)); - mprotect(PAGE_START(hook_addr), getpagesize(), PROT_READ | PROT_EXEC); - cacheflush(reinterpret_cast(hook_addr), reinterpret_cast(hook_addr) + getpagesize(), NULL); - hook_installed.exchange(false); - } - } - - ~detour() { uninstall(); } - bool installed() { return hook_installed; } - void* hook_address() { return hook_addr; } - void* detour_address() { return detour_addr; } - private: - std::atomic hook_installed; - void* hook_addr, * detour_addr; - - unsigned char jmp_code[8]{}; - std::uint8_t org_bytes[sizeof(jmp_code)]; - }; - - // this is jank, but needed because the OS isnt initalizing statics/inlined globals... :| - inline std::map>* get_hooks() - { - static std::map> hooks{}; - return &hooks; - } - - inline void make_hook(void* addr_to_hook, void* jmp_to_addr, bool enable = true) - { - if (!addr_to_hook) - return; - - get_hooks()->insert({ - addr_to_hook, - std::make_unique( - addr_to_hook, - jmp_to_addr, - enable - ) } - ); - } - - inline void enable(void* addr) - { - if (!addr) - return; - get_hooks()->at(addr)->install(); - } - - inline void disable(void* addr) - { - if (!addr) - return; - get_hooks()->at(addr)->uninstall(); - } - - inline void remove(void* addr) - { - if (!addr) - return; - get_hooks()->erase(addr); - } - } -} diff --git a/ligma-cheat/ligma-bypass/ligma.h b/ligma-cheat/ligma-bypass/ligma.h deleted file mode 100644 index 1407d69e2..000000000 --- a/ligma-cheat/ligma-bypass/ligma.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once -#include -#include "utils/utils.h" -#include "hooks/shithook.h" -#include "hooks/got_hook.h" - -#define LOGI(...) ((void)__android_log_print(4, "ligma", __VA_ARGS__)) -#define LOGW(...) ((void)__android_log_print(5, "ligma", __VA_ARGS__)) \ No newline at end of file diff --git a/ligma-cheat/ligma-bypass/ligma.vcxproj b/ligma-cheat/ligma-bypass/ligma.vcxproj deleted file mode 100644 index aa311e768..000000000 --- a/ligma-cheat/ligma-bypass/ligma.vcxproj +++ /dev/null @@ -1,224 +0,0 @@ - - - - - Debug - ARM - - - Release - ARM - - - Debug - ARM64 - - - Release - ARM64 - - - Debug - x64 - - - Release - x64 - - - Debug - x86 - - - Release - x86 - - - - {15c1c992-4566-4d40-a856-b536b81299e4} - Android - ligma - 14.0 - Android - 3.0 - ligma-bypass - - - - StaticLibrary - true - Clang_5_0 - android-22 - ARM - - - StaticLibrary - false - Clang_5_0 - android-22 - ARM - - - StaticLibrary - true - Clang_5_0 - android-22 - ARM - - - StaticLibrary - false - Clang_5_0 - android-22 - ARM - - - StaticLibrary - true - Clang_5_0 - android-22 - ARM - - - StaticLibrary - false - Clang_5_0 - android-22 - ARM - - - StaticLibrary - true - Clang_5_0 - android-22 - ARM - - - StaticLibrary - false - Clang_5_0 - android-22 - ARM - - - - - - - - - - - - - - - - - - - - - - - - - NotUsing - pch.h - c++1z - - - - - - - - - NotUsing - pch.h - c++1z - - - - - - - - - NotUsing - pch.h - c++1z - - - - - - - - - NotUsing - pch.h - c++1z - - - - - - - - - NotUsing - pch.h - c++1z - - - - - - - - - NotUsing - pch.h - c++1z - - - - - - - - - NotUsing - pch.h - c++1z - - - - - - - - - NotUsing - pch.h - c++1z - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ligma-cheat/ligma-bypass/ligma.vcxproj.filters b/ligma-cheat/ligma-bypass/ligma.vcxproj.filters deleted file mode 100644 index bb1f06627..000000000 --- a/ligma-cheat/ligma-bypass/ligma.vcxproj.filters +++ /dev/null @@ -1,45 +0,0 @@ - - - - - {8fc1c384-bc0c-40ad-91fd-d12eb8f15083} - - - {a802d5b1-4373-45ec-9899-a56dcab8effb} - - - {d02af610-3abc-497e-8875-d1f51f60a27d} - - - {3a6ff0eb-0b42-4eae-a5c7-3dad52e2c026} - - - {e62eb3d6-ce1d-418e-8ea3-264cb68767c5} - - - {388138af-158e-4b7c-9eae-98b54b9d4146} - - - - - source\bypass - - - - - headers\bypass - - - headers\hooks - - - headers\hooks - - - headers\utils - - - headers - - - \ No newline at end of file diff --git a/ligma-cheat/ligma-bypass/ligma.vcxproj.user b/ligma-cheat/ligma-bypass/ligma.vcxproj.user deleted file mode 100644 index 88a550947..000000000 --- a/ligma-cheat/ligma-bypass/ligma.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ligma-cheat/ligma-bypass/utils/utils.h b/ligma-cheat/ligma-bypass/utils/utils.h deleted file mode 100644 index 21b4add6e..000000000 --- a/ligma-cheat/ligma-bypass/utils/utils.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once -#include -#include -#include - -namespace ligma -{ - namespace utils - { - inline void iterate_memory(const std::function&, const std::string& protection)>& callback) - { - std::fstream maps("/proc/self/maps"); - std::pair memory_range; - std::string page_perms; - while (maps >> memory_range.first >> memory_range.second >> page_perms) - { - maps.ignore(std::numeric_limits::max(), '\n'); // skip to next line :) - callback(memory_range, page_perms); - } - maps.close(); - } - } -} \ No newline at end of file diff --git a/ligma-cheat/ligma-cheat.sln b/ligma-cheat/ligma-cheat.sln index ca70a54b4..4ca4ccc6d 100644 --- a/ligma-cheat/ligma-cheat.sln +++ b/ligma-cheat/ligma-cheat.sln @@ -5,8 +5,6 @@ VisualStudioVersion = 16.0.30320.27 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ligma-cheat", "ligma-cheat\ligma-cheat.vcxproj", "{C563FAFC-30B9-43A1-ACEE-33CCD40FA562}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ligma-bypass", "ligma-bypass\ligma.vcxproj", "{15C1C992-4566-4D40-A856-B536B81299E4}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM = Debug|ARM @@ -35,22 +33,6 @@ Global {C563FAFC-30B9-43A1-ACEE-33CCD40FA562}.Release|x64.Build.0 = Release|x64 {C563FAFC-30B9-43A1-ACEE-33CCD40FA562}.Release|x86.ActiveCfg = Release|x86 {C563FAFC-30B9-43A1-ACEE-33CCD40FA562}.Release|x86.Build.0 = Release|x86 - {15C1C992-4566-4D40-A856-B536B81299E4}.Debug|ARM.ActiveCfg = Debug|ARM - {15C1C992-4566-4D40-A856-B536B81299E4}.Debug|ARM.Build.0 = Debug|ARM - {15C1C992-4566-4D40-A856-B536B81299E4}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {15C1C992-4566-4D40-A856-B536B81299E4}.Debug|ARM64.Build.0 = Debug|ARM64 - {15C1C992-4566-4D40-A856-B536B81299E4}.Debug|x64.ActiveCfg = Debug|x64 - {15C1C992-4566-4D40-A856-B536B81299E4}.Debug|x64.Build.0 = Debug|x64 - {15C1C992-4566-4D40-A856-B536B81299E4}.Debug|x86.ActiveCfg = Debug|x86 - {15C1C992-4566-4D40-A856-B536B81299E4}.Debug|x86.Build.0 = Debug|x86 - {15C1C992-4566-4D40-A856-B536B81299E4}.Release|ARM.ActiveCfg = Release|ARM - {15C1C992-4566-4D40-A856-B536B81299E4}.Release|ARM.Build.0 = Release|ARM - {15C1C992-4566-4D40-A856-B536B81299E4}.Release|ARM64.ActiveCfg = Release|ARM64 - {15C1C992-4566-4D40-A856-B536B81299E4}.Release|ARM64.Build.0 = Release|ARM64 - {15C1C992-4566-4D40-A856-B536B81299E4}.Release|x64.ActiveCfg = Release|x64 - {15C1C992-4566-4D40-A856-B536B81299E4}.Release|x64.Build.0 = Release|x64 - {15C1C992-4566-4D40-A856-B536B81299E4}.Release|x86.ActiveCfg = Release|x86 - {15C1C992-4566-4D40-A856-B536B81299E4}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ligma-cheat/ligma-bypass/bypass/bypass.cpp b/ligma-cheat/ligma-cheat/bypass/bypass.cpp similarity index 77% rename from ligma-cheat/ligma-bypass/bypass/bypass.cpp rename to ligma-cheat/ligma-cheat/bypass/bypass.cpp index e0c8189a0..10e6fde51 100644 --- a/ligma-cheat/ligma-bypass/bypass/bypass.cpp +++ b/ligma-cheat/ligma-cheat/bypass/bypass.cpp @@ -12,12 +12,12 @@ namespace ligma { il2cpp_callback = callback; fopen_ptr = dlsym(dlopen("libc.so", RTLD_NOLOAD), "fopen"); - loader_dlopen_ptr = dlsym(dlopen("libdl.so", RTLD_NOLOAD), "__loader_dlopen"); + dlopen_ptr = dlsym(dlopen("libdl.so", RTLD_NOLOAD), "dlopen"); system_prop_get = dlsym(dlopen("libc.so", RTLD_NOLOAD), "__system_property_get"); loadbufferx = dlsym(dlopen("libxlua.so", RTLD_NOW), "luaL_loadbufferx"); - LOGI("loader_dlopen_ptr = %p", loader_dlopen_ptr); - ligma::hook::make_hook(loader_dlopen_ptr, reinterpret_cast(&dlopen_hook)); + LOGI("loader_dlopen_ptr = %p", dlopen_ptr); + ligma::hook::make_hook(dlopen_ptr, reinterpret_cast(&dlopen_hook)); ligma::hook::make_hook(loadbufferx, reinterpret_cast(&loadbufferx_hook)); ligma::hook::make_hook(fopen_ptr, reinterpret_cast(&fopen_hook)); ligma::hook::make_hook(system_prop_get, reinterpret_cast(&system_property_hook)); @@ -55,22 +55,23 @@ namespace ligma // this is used to gain code execution exactly when il2cpp.so is loaded... // __attribute__((noinline)) - void* loader_dlopen_hook(const char* filename, int flags, const void* caller_addr) + void* dlopen_hook(const char* filename, int flags) { LOGI("dlopen called, filename = %s", filename); dlopen_mutex.lock(); - ligma::hook::disable(loader_dlopen_ptr); + ligma::hook::disable(dlopen_ptr); - // do not resolve imports, this might cause another library to be loaded. - // that means it will call dlopen which means it will be stuck in std::mutex::lock (2 lines above this comment) - const auto result = dlopen(filename, RTLD_LAZY); + const auto result = dlopen(filename, reinterpret_cast(RTLD_NEXT)); if (strstr(filename, "libil2cpp.so") != NULL) - ligma::hook::enable(loader_dlopen_ptr); + { + ligma::hook::enable(dlopen_ptr); + dlopen_mutex.unlock(); + } else + { + dlopen_mutex.unlock(); il2cpp_callback(reinterpret_cast(result)); - - // wait until callback is done before we start loading anything else... - dlopen_mutex.unlock(); + } return result; } diff --git a/ligma-cheat/ligma-cheat/bypass/bypass.h b/ligma-cheat/ligma-cheat/bypass/bypass.h index 61a8eb9c4..83a261db9 100644 --- a/ligma-cheat/ligma-cheat/bypass/bypass.h +++ b/ligma-cheat/ligma-cheat/bypass/bypass.h @@ -18,7 +18,7 @@ namespace ligma inline void* fopen_ptr = nullptr; inline void* system_prop_get = nullptr; inline void* loadbufferx = nullptr; - inline void* loader_dlopen_ptr = nullptr; + inline void* dlopen_ptr = nullptr; // every shithook you make you will need a mutex. inline std::mutex fopen_mutex; diff --git a/ligma-cheat/ligma-cheat/libligma.a b/ligma-cheat/ligma-cheat/libligma.a deleted file mode 100644 index f596fe3f7c4cd41964aa9359396e3c9d78242a82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36588 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 diff --git a/ligma-cheat/ligma-cheat/ligma-cheat.vcxproj b/ligma-cheat/ligma-cheat/ligma-cheat.vcxproj index da09a1b04..006b20522 100644 --- a/ligma-cheat/ligma-cheat/ligma-cheat.vcxproj +++ b/ligma-cheat/ligma-cheat/ligma-cheat.vcxproj @@ -35,6 +35,7 @@ + @@ -153,12 +154,12 @@ c++1z - libligma.a;%(AdditionalDependencies) + %(AdditionalDependencies) adb logcat -c -adb push C:\Users\xerox\source\repos\ligma-cheat\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so +adb push $(SolutionDir)\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so start cmd /k "title 'ligma filter' & adb logcat | findstr ligma" @@ -176,12 +177,12 @@ adb shell am start -n com.activision.callofduty.shooter/com.tencent.tmgp.cod.Per c++1z - libligma.a;%(AdditionalDependencies) + %(AdditionalDependencies) adb logcat -c -adb push C:\Users\xerox\source\repos\ligma-cheat\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so +adb push $(SolutionDir)\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so start cmd /k "title 'ligma filter' & adb logcat | findstr ligma" @@ -199,12 +200,12 @@ adb shell am start -n com.activision.callofduty.shooter/com.tencent.tmgp.cod.Per c++1z - libligma.a;%(AdditionalDependencies) + %(AdditionalDependencies) adb logcat -c -adb push C:\Users\xerox\source\repos\ligma-cheat\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so +adb push $(SolutionDir)\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so start cmd /k "title 'ligma filter' & adb logcat | findstr ligma" @@ -222,12 +223,12 @@ adb shell am start -n com.activision.callofduty.shooter/com.tencent.tmgp.cod.Per c++1z - libligma.a;%(AdditionalDependencies) + %(AdditionalDependencies) adb logcat -c -adb push C:\Users\xerox\source\repos\ligma-cheat\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so +adb push $(SolutionDir)\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so start cmd /k "title 'ligma filter' & adb logcat | findstr ligma" @@ -245,12 +246,12 @@ adb shell am start -n com.activision.callofduty.shooter/com.tencent.tmgp.cod.Per c++1z - libligma.a;%(AdditionalDependencies) + %(AdditionalDependencies) adb logcat -c -adb push C:\Users\xerox\source\repos\ligma-cheat\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so +adb push $(SolutionDir)\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so start cmd /k "title 'ligma filter' & adb logcat | findstr ligma" @@ -268,12 +269,12 @@ adb shell am start -n com.activision.callofduty.shooter/com.tencent.tmgp.cod.Per c++1z - libligma.a;%(AdditionalDependencies) + %(AdditionalDependencies) adb logcat -c -adb push C:\Users\xerox\source\repos\ligma-cheat\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so +adb push $(SolutionDir)\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so start cmd /k "title 'ligma filter' & adb logcat | findstr ligma" @@ -291,12 +292,12 @@ adb shell am start -n com.activision.callofduty.shooter/com.tencent.tmgp.cod.Per c++1z - libligma.a;%(AdditionalDependencies) + %(AdditionalDependencies) adb logcat -c -adb push C:\Users\xerox\source\repos\ligma-cheat\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so +adb push $(SolutionDir)\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so start cmd /k "title 'ligma filter' & adb logcat | findstr ligma" @@ -314,12 +315,12 @@ adb shell am start -n com.activision.callofduty.shooter/com.tencent.tmgp.cod.Per c++1z - libligma.a;%(AdditionalDependencies) + %(AdditionalDependencies) adb logcat -c -adb push C:\Users\xerox\source\repos\ligma-cheat\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so +adb push $(SolutionDir)\ARM\Release\libligma_cheat.so /data/app/com.activision.callofduty.shooter-1/lib/arm/libligma.so start cmd /k "title 'ligma filter' & adb logcat | findstr ligma" diff --git a/ligma-cheat/ligma-cheat/ligma-cheat.vcxproj.filters b/ligma-cheat/ligma-cheat/ligma-cheat.vcxproj.filters index 560a908d7..c3c69edb9 100644 --- a/ligma-cheat/ligma-cheat/ligma-cheat.vcxproj.filters +++ b/ligma-cheat/ligma-cheat/ligma-cheat.vcxproj.filters @@ -16,11 +16,17 @@ {f14fc099-f6a5-4dc9-8512-320e1dbe206a} + + {742fd78d-91c1-449a-a790-95a32404ea5d} + source + + source\bypass +