diff --git a/blcrack/cracker/CMakeLists.txt b/blcrack/cracker/CMakeLists.txt index 441cbf52a..cf25fbce8 100644 --- a/blcrack/cracker/CMakeLists.txt +++ b/blcrack/cracker/CMakeLists.txt @@ -15,4 +15,11 @@ target_link_libraries(${CRACKER} target_compile_definitions(${CRACKER} PRIVATE ${SPDLOG_DEFINES} SPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_TRACE PRIVATE SOL_USE_LUA_HPP -) \ No newline at end of file +) +if (CMAKE_ANDROID_ARCH_ABI STREQUAL "x86") + target_compile_definitions(${CRACKER} PRIVATE ARCH_X86) +elseif (CMAKE_ANDROID_ARCH_ABI STREQUAL "armeabi-v7a") + target_compile_definitions(${CRACKER} PRIVATE ARCH_ARMEABI_V7A) +elseif (CMAKE_ANDROID_ARCH_ABI STREQUAL "arm64-v8a") + target_compile_definitions(${CRACKER} PRIVATE ARCH_ARM64_V8A) +endif () \ No newline at end of file diff --git a/blcrack/cracker/il2cpp.hpp b/blcrack/cracker/il2cpp.hpp index a64b75ac3..5bbc0f4fe 100644 --- a/blcrack/cracker/il2cpp.hpp +++ b/blcrack/cracker/il2cpp.hpp @@ -87,4 +87,17 @@ struct LuaScriptMgr_o { LuaScriptMgr_Fields fields; }; +using LuaScriptMgr_get_Inst = struct LuaScriptMgr_o*(*)(); + +#if defined(ARCH_X86) +#define LuaScriptMgr_get_Inst_OFFSET 0x1076B15 +#elif defined(ARCH_ARM64_V8A) +#define LuaScriptMgr_get_Inst_OFFSET 0x14BF998 +#elif defined(ARCH_ARMEABI_V7A) +#define LuaScriptMgr_get_Inst_OFFSET 0xFE8894 +#else +#warning "No architecture defined for il2cpp.hpp, assuming x86" +#define LuaScriptMgr_get_Inst_OFFSET 0x1076B15 +#endif + #endif //IL2CPPSTRUCT_HPP diff --git a/blcrack/cracker/utils.cpp b/blcrack/cracker/utils.cpp index d959c535c..ce56be095 100644 --- a/blcrack/cracker/utils.cpp +++ b/blcrack/cracker/utils.cpp @@ -32,9 +32,6 @@ void* Utils::get_so_base_address(const std::string& name) { return nullptr; } -using LuaScriptMgr_get_Inst = struct LuaScriptMgr_o*(*)(); -#define LuaScriptMgr_get_Inst_OFFSET 0x1076B15 - lua_State* Utils::get_lua_state() { void* il2cpp_base_addr = get_so_base_address("libil2cpp.so");