├── .gitignore
├── .idea
├── .gitignore
├── compiler.xml
├── deploymentTargetSelector.xml
├── git_toolbox_blame.xml
├── git_toolbox_prj.xml
├── gradle.xml
├── migrations.xml
├── misc.xml
└── vcs.xml
├── README.md
├── app
├── .cxx
│ ├── Debug
│ │ └── 4lq6t6k1
│ │ │ ├── arm64-v8a
│ │ │ ├── .cmake
│ │ │ │ └── api
│ │ │ │ │ └── v1
│ │ │ │ │ ├── query
│ │ │ │ │ └── client-agp
│ │ │ │ │ │ ├── cache-v2
│ │ │ │ │ │ ├── cmakeFiles-v1
│ │ │ │ │ │ └── codemodel-v2
│ │ │ │ │ └── reply
│ │ │ │ │ ├── cache-v2-f7fd074347f5ccc6f5a9.json
│ │ │ │ │ ├── cmakeFiles-v1-7af23b9ff40281ed5838.json
│ │ │ │ │ ├── codemodel-v2-fcee9f64cbcefffc26ec.json
│ │ │ │ │ ├── directory-.-Debug-f5ebdc15457944623624.json
│ │ │ │ │ ├── index-2024-11-07T10-39-57-0445.json
│ │ │ │ │ ├── target-imgui-Debug-fe01b39361118dc48f8b.json
│ │ │ │ │ └── target-nhook-Debug-2308b745bd60863ce0c9.json
│ │ │ ├── .ninja_deps
│ │ │ ├── .ninja_log
│ │ │ ├── CMakeCache.txt
│ │ │ ├── CMakeFiles
│ │ │ │ ├── 3.22.1-g37088a8
│ │ │ │ │ ├── CMakeCCompiler.cmake
│ │ │ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ │ │ ├── CMakeSystem.cmake
│ │ │ │ │ ├── CompilerIdC
│ │ │ │ │ │ ├── CMakeCCompilerId.c
│ │ │ │ │ │ └── CMakeCCompilerId.o
│ │ │ │ │ └── CompilerIdCXX
│ │ │ │ │ │ ├── CMakeCXXCompilerId.cpp
│ │ │ │ │ │ └── CMakeCXXCompilerId.o
│ │ │ │ ├── CMakeOutput.log
│ │ │ │ ├── TargetDirectories.txt
│ │ │ │ ├── cmake.check_cache
│ │ │ │ ├── imgui.dir
│ │ │ │ │ └── imgui
│ │ │ │ │ │ ├── backends
│ │ │ │ │ │ ├── imgui_impl_android.cpp.o
│ │ │ │ │ │ └── imgui_impl_opengl3.cpp.o
│ │ │ │ │ │ ├── imgui.cpp.o
│ │ │ │ │ │ ├── imgui_draw.cpp.o
│ │ │ │ │ │ ├── imgui_tables.cpp.o
│ │ │ │ │ │ └── imgui_widgets.cpp.o
│ │ │ │ ├── nhook.dir
│ │ │ │ │ ├── demo
│ │ │ │ │ │ ├── il2cpp_dumper.cpp.o
│ │ │ │ │ │ ├── modmenu.cpp.o
│ │ │ │ │ │ ├── modmenu_native.cpp.o
│ │ │ │ │ │ ├── qbdihook.cpp.o
│ │ │ │ │ │ └── ytbssl.cpp.o
│ │ │ │ │ ├── linker_hook.cpp.o
│ │ │ │ │ ├── nhook.cpp.o
│ │ │ │ │ ├── utils.cpp.o
│ │ │ │ │ └── vm.cpp.o
│ │ │ │ └── rules.ninja
│ │ │ ├── additional_project_files.txt
│ │ │ ├── android_gradle_build.json
│ │ │ ├── android_gradle_build_mini.json
│ │ │ ├── build.ninja
│ │ │ ├── build_file_index.txt
│ │ │ ├── cmake_install.cmake
│ │ │ ├── compile_commands.json
│ │ │ ├── compile_commands.json.bin
│ │ │ ├── configure_fingerprint.bin
│ │ │ ├── libimgui.a
│ │ │ ├── metadata_generation_command.txt
│ │ │ ├── prefab_config.json
│ │ │ └── symbol_folder_index.txt
│ │ │ └── hash_key.txt
│ └── tools
│ │ └── debug
│ │ └── arm64-v8a
│ │ └── compile_commands.json
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ └── xposed_init
│ ├── cpp
│ ├── CMakeLists.txt
│ ├── QBDI.h
│ ├── QBDI
│ │ ├── Bitmask.h
│ │ ├── Callback.h
│ │ ├── Config.h
│ │ ├── Errors.h
│ │ ├── InstAnalysis.h
│ │ ├── Logs.h
│ │ ├── Memory.h
│ │ ├── Memory.hpp
│ │ ├── Options.h
│ │ ├── Platform.h
│ │ ├── Range.h
│ │ ├── State.h
│ │ ├── VM.h
│ │ ├── VM_C.h
│ │ └── Version.h
│ ├── demo
│ │ ├── il2cpp-class.h
│ │ ├── il2cpp-tabledefs.h
│ │ ├── il2cpp_dumper.cpp
│ │ ├── il2cpp_dumper.h
│ │ ├── md5.cpp
│ │ ├── md5.h
│ │ ├── modmenu.cpp
│ │ ├── modmenu_native.cpp
│ │ ├── modmenu_native.h
│ │ ├── qbdihook.cpp
│ │ ├── qbdihook.h
│ │ ├── sha1.hpp
│ │ ├── ytbssl.cpp
│ │ └── ytbssl.h
│ ├── dobby
│ │ └── dobby.h
│ ├── elfio
│ │ ├── elf_types.hpp
│ │ ├── elfio.hpp
│ │ ├── elfio_array.hpp
│ │ ├── elfio_dump.hpp
│ │ ├── elfio_dynamic.hpp
│ │ ├── elfio_header.hpp
│ │ ├── elfio_modinfo.hpp
│ │ ├── elfio_note.hpp
│ │ ├── elfio_relocation.hpp
│ │ ├── elfio_section.hpp
│ │ ├── elfio_segment.hpp
│ │ ├── elfio_strings.hpp
│ │ ├── elfio_symbols.hpp
│ │ ├── elfio_utils.hpp
│ │ ├── elfio_version.hpp
│ │ └── elfio_versym.hpp
│ ├── hexdump.h
│ ├── libs
│ │ └── arm64-v8a
│ │ │ ├── libQBDI.a
│ │ │ └── libdobby.a
│ ├── linker_hook.cpp
│ ├── linker_hook.h
│ ├── nhook.cpp
│ ├── nhook.h
│ ├── utils.cpp
│ ├── utils.h
│ ├── vm.cpp
│ └── vm.h
│ ├── java
│ └── cn
│ │ └── mrack
│ │ └── xposed
│ │ └── nhook
│ │ ├── HookUtils.java
│ │ ├── MainHook.java
│ │ ├── NHook.java
│ │ ├── SettingsActivity.java
│ │ └── menu
│ │ ├── Config.java
│ │ ├── Menu.java
│ │ ├── PBoolean.java
│ │ ├── PInteger.java
│ │ ├── PString.java
│ │ ├── PValue.java
│ │ └── SurfaceImGUI.java
│ └── res
│ ├── drawable
│ ├── ic_launcher_background.xml
│ └── ic_launcher_foreground.xml
│ ├── mipmap-anydpi-v26
│ ├── ic_launcher.xml
│ └── ic_launcher_round.xml
│ ├── mipmap-hdpi
│ ├── ic_launcher.webp
│ └── ic_launcher_round.webp
│ ├── mipmap-mdpi
│ ├── ic_launcher.webp
│ └── ic_launcher_round.webp
│ ├── mipmap-xhdpi
│ ├── ic_launcher.webp
│ └── ic_launcher_round.webp
│ ├── mipmap-xxhdpi
│ ├── ic_launcher.webp
│ └── ic_launcher_round.webp
│ ├── mipmap-xxxhdpi
│ ├── ic_launcher.webp
│ └── ic_launcher_round.webp
│ ├── values
│ ├── colors.xml
│ └── strings.xml
│ └── xml
│ └── settings.xml
├── build.gradle
├── gradle.properties
├── gradle
├── libs.versions.toml
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── local.properties
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | # Project exclude paths
2 | /.gradle/
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/deploymentTargetSelector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/.idea/git_toolbox_blame.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/git_toolbox_prj.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/.idea/migrations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # XposedNHook
2 | 原地址 https://github.com/Mrack/XposedNHook
3 | Xposed免root注入so方案, 支持android各个版本
4 |
5 | ## demo:
6 | #### qbdi trace
7 | 
8 |
9 | #### android mod menu
10 | [Android-Mod-Menu](https://github.com/LGLTeam/Android-Mod-Menu/)
11 |
12 | #### android mod menu (ImGui)
13 | 
14 | 
15 |
16 | #### il2cppdumper
17 | 
18 |
19 |
20 | #### youtube ssl pinning
21 | ...
22 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-7af23b9ff40281ed5838.json:
--------------------------------------------------------------------------------
1 | {
2 | "inputs" :
3 | [
4 | {
5 | "path" : "CMakeLists.txt"
6 | },
7 | {
8 | "isGenerated" : true,
9 | "path" : "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake"
10 | },
11 | {
12 | "isExternal" : true,
13 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/android.toolchain.cmake"
14 | },
15 | {
16 | "isExternal" : true,
17 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/adjust_api_level.cmake"
18 | },
19 | {
20 | "isExternal" : true,
21 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/platforms.cmake"
22 | },
23 | {
24 | "isCMake" : true,
25 | "isExternal" : true,
26 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
27 | },
28 | {
29 | "isCMake" : true,
30 | "isExternal" : true,
31 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake"
32 | },
33 | {
34 | "isExternal" : true,
35 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/hooks/pre/Android-Initialize.cmake"
36 | },
37 | {
38 | "isGenerated" : true,
39 | "path" : "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake"
40 | },
41 | {
42 | "isGenerated" : true,
43 | "path" : "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake"
44 | },
45 | {
46 | "isCMake" : true,
47 | "isExternal" : true,
48 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
49 | },
50 | {
51 | "isCMake" : true,
52 | "isExternal" : true,
53 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
54 | },
55 | {
56 | "isCMake" : true,
57 | "isExternal" : true,
58 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
59 | },
60 | {
61 | "isCMake" : true,
62 | "isExternal" : true,
63 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake"
64 | },
65 | {
66 | "isExternal" : true,
67 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/hooks/pre/Android.cmake"
68 | },
69 | {
70 | "isCMake" : true,
71 | "isExternal" : true,
72 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake"
73 | },
74 | {
75 | "isCMake" : true,
76 | "isExternal" : true,
77 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake"
78 | },
79 | {
80 | "isExternal" : true,
81 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/hooks/post/Android.cmake"
82 | },
83 | {
84 | "isCMake" : true,
85 | "isExternal" : true,
86 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake"
87 | },
88 | {
89 | "isCMake" : true,
90 | "isExternal" : true,
91 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
92 | },
93 | {
94 | "isCMake" : true,
95 | "isExternal" : true,
96 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake"
97 | },
98 | {
99 | "isCMake" : true,
100 | "isExternal" : true,
101 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
102 | },
103 | {
104 | "isCMake" : true,
105 | "isExternal" : true,
106 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
107 | },
108 | {
109 | "isCMake" : true,
110 | "isExternal" : true,
111 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake"
112 | },
113 | {
114 | "isCMake" : true,
115 | "isExternal" : true,
116 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
117 | },
118 | {
119 | "isCMake" : true,
120 | "isExternal" : true,
121 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake"
122 | },
123 | {
124 | "isCMake" : true,
125 | "isExternal" : true,
126 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
127 | },
128 | {
129 | "isExternal" : true,
130 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/hooks/pre/Android-Clang.cmake"
131 | },
132 | {
133 | "isExternal" : true,
134 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/flags.cmake"
135 | },
136 | {
137 | "isCMake" : true,
138 | "isExternal" : true,
139 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Common.cmake"
140 | },
141 | {
142 | "isExternal" : true,
143 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/hooks/post/Android-Clang.cmake"
144 | },
145 | {
146 | "isCMake" : true,
147 | "isExternal" : true,
148 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
149 | },
150 | {
151 | "isCMake" : true,
152 | "isExternal" : true,
153 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
154 | },
155 | {
156 | "isCMake" : true,
157 | "isExternal" : true,
158 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
159 | },
160 | {
161 | "isCMake" : true,
162 | "isExternal" : true,
163 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake"
164 | },
165 | {
166 | "isCMake" : true,
167 | "isExternal" : true,
168 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
169 | },
170 | {
171 | "isCMake" : true,
172 | "isExternal" : true,
173 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake"
174 | },
175 | {
176 | "isCMake" : true,
177 | "isExternal" : true,
178 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
179 | },
180 | {
181 | "isCMake" : true,
182 | "isExternal" : true,
183 | "path" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
184 | }
185 | ],
186 | "kind" : "cmakeFiles",
187 | "paths" :
188 | {
189 | "build" : "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a",
190 | "source" : "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp"
191 | },
192 | "version" :
193 | {
194 | "major" : 1,
195 | "minor" : 0
196 | }
197 | }
198 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-fcee9f64cbcefffc26ec.json:
--------------------------------------------------------------------------------
1 | {
2 | "configurations" :
3 | [
4 | {
5 | "directories" :
6 | [
7 | {
8 | "build" : ".",
9 | "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json",
10 | "minimumCMakeVersion" :
11 | {
12 | "string" : "3.6.0"
13 | },
14 | "projectIndex" : 0,
15 | "source" : ".",
16 | "targetIndexes" :
17 | [
18 | 0,
19 | 1
20 | ]
21 | }
22 | ],
23 | "name" : "Debug",
24 | "projects" :
25 | [
26 | {
27 | "directoryIndexes" :
28 | [
29 | 0
30 | ],
31 | "name" : "nhook",
32 | "targetIndexes" :
33 | [
34 | 0,
35 | 1
36 | ]
37 | }
38 | ],
39 | "targets" :
40 | [
41 | {
42 | "directoryIndex" : 0,
43 | "id" : "imgui::@6890427a1f51a3e7e1df",
44 | "jsonFile" : "target-imgui-Debug-fe01b39361118dc48f8b.json",
45 | "name" : "imgui",
46 | "projectIndex" : 0
47 | },
48 | {
49 | "directoryIndex" : 0,
50 | "id" : "nhook::@6890427a1f51a3e7e1df",
51 | "jsonFile" : "target-nhook-Debug-2308b745bd60863ce0c9.json",
52 | "name" : "nhook",
53 | "projectIndex" : 0
54 | }
55 | ]
56 | }
57 | ],
58 | "kind" : "codemodel",
59 | "paths" :
60 | {
61 | "build" : "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a",
62 | "source" : "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp"
63 | },
64 | "version" :
65 | {
66 | "major" : 2,
67 | "minor" : 3
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json:
--------------------------------------------------------------------------------
1 | {
2 | "backtraceGraph" :
3 | {
4 | "commands" : [],
5 | "files" : [],
6 | "nodes" : []
7 | },
8 | "installers" : [],
9 | "paths" :
10 | {
11 | "build" : ".",
12 | "source" : "."
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/reply/index-2024-11-07T10-39-57-0445.json:
--------------------------------------------------------------------------------
1 | {
2 | "cmake" :
3 | {
4 | "generator" :
5 | {
6 | "multiConfig" : false,
7 | "name" : "Ninja"
8 | },
9 | "paths" :
10 | {
11 | "cmake" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/cmake",
12 | "cpack" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/cpack",
13 | "ctest" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/ctest",
14 | "root" : "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22"
15 | },
16 | "version" :
17 | {
18 | "isDirty" : false,
19 | "major" : 3,
20 | "minor" : 22,
21 | "patch" : 1,
22 | "string" : "3.22.1-g37088a8",
23 | "suffix" : "g37088a8"
24 | }
25 | },
26 | "objects" :
27 | [
28 | {
29 | "jsonFile" : "codemodel-v2-fcee9f64cbcefffc26ec.json",
30 | "kind" : "codemodel",
31 | "version" :
32 | {
33 | "major" : 2,
34 | "minor" : 3
35 | }
36 | },
37 | {
38 | "jsonFile" : "cache-v2-f7fd074347f5ccc6f5a9.json",
39 | "kind" : "cache",
40 | "version" :
41 | {
42 | "major" : 2,
43 | "minor" : 0
44 | }
45 | },
46 | {
47 | "jsonFile" : "cmakeFiles-v1-7af23b9ff40281ed5838.json",
48 | "kind" : "cmakeFiles",
49 | "version" :
50 | {
51 | "major" : 1,
52 | "minor" : 0
53 | }
54 | }
55 | ],
56 | "reply" :
57 | {
58 | "client-agp" :
59 | {
60 | "cache-v2" :
61 | {
62 | "jsonFile" : "cache-v2-f7fd074347f5ccc6f5a9.json",
63 | "kind" : "cache",
64 | "version" :
65 | {
66 | "major" : 2,
67 | "minor" : 0
68 | }
69 | },
70 | "cmakeFiles-v1" :
71 | {
72 | "jsonFile" : "cmakeFiles-v1-7af23b9ff40281ed5838.json",
73 | "kind" : "cmakeFiles",
74 | "version" :
75 | {
76 | "major" : 1,
77 | "minor" : 0
78 | }
79 | },
80 | "codemodel-v2" :
81 | {
82 | "jsonFile" : "codemodel-v2-fcee9f64cbcefffc26ec.json",
83 | "kind" : "codemodel",
84 | "version" :
85 | {
86 | "major" : 2,
87 | "minor" : 3
88 | }
89 | }
90 | }
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/reply/target-imgui-Debug-fe01b39361118dc48f8b.json:
--------------------------------------------------------------------------------
1 | {
2 | "archive" : {},
3 | "artifacts" :
4 | [
5 | {
6 | "path" : "libimgui.a"
7 | }
8 | ],
9 | "backtrace" : 1,
10 | "backtraceGraph" :
11 | {
12 | "commands" :
13 | [
14 | "add_library",
15 | "include_directories"
16 | ],
17 | "files" :
18 | [
19 | "CMakeLists.txt"
20 | ],
21 | "nodes" :
22 | [
23 | {
24 | "file" : 0
25 | },
26 | {
27 | "command" : 0,
28 | "file" : 0,
29 | "line" : 53,
30 | "parent" : 0
31 | },
32 | {
33 | "command" : 1,
34 | "file" : 0,
35 | "line" : 21,
36 | "parent" : 0
37 | },
38 | {
39 | "command" : 1,
40 | "file" : 0,
41 | "line" : 32,
42 | "parent" : 0
43 | },
44 | {
45 | "command" : 1,
46 | "file" : 0,
47 | "line" : 51,
48 | "parent" : 0
49 | }
50 | ]
51 | },
52 | "compileGroups" :
53 | [
54 | {
55 | "compileCommandFragments" :
56 | [
57 | {
58 | "fragment" : "-DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fexceptions -frtti -stdlib=libc++ -fno-exceptions -fno-rtti -fvisibility=hidden -Wl,--exclude-libs,ALL -g -fno-limit-debug-info -fPIC"
59 | },
60 | {
61 | "fragment" : "-std=gnu++20"
62 | }
63 | ],
64 | "includes" :
65 | [
66 | {
67 | "backtrace" : 2,
68 | "path" : "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/."
69 | },
70 | {
71 | "backtrace" : 3,
72 | "path" : "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/imgui"
73 | },
74 | {
75 | "backtrace" : 4,
76 | "path" : "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/./imgui"
77 | }
78 | ],
79 | "language" : "CXX",
80 | "languageStandard" :
81 | {
82 | "backtraces" :
83 | [
84 | 1
85 | ],
86 | "standard" : "20"
87 | },
88 | "sourceIndexes" :
89 | [
90 | 0,
91 | 1,
92 | 2,
93 | 3,
94 | 4,
95 | 5
96 | ],
97 | "sysroot" :
98 | {
99 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot"
100 | }
101 | }
102 | ],
103 | "id" : "imgui::@6890427a1f51a3e7e1df",
104 | "name" : "imgui",
105 | "nameOnDisk" : "libimgui.a",
106 | "paths" :
107 | {
108 | "build" : ".",
109 | "source" : "."
110 | },
111 | "sourceGroups" :
112 | [
113 | {
114 | "name" : "Source Files",
115 | "sourceIndexes" :
116 | [
117 | 0,
118 | 1,
119 | 2,
120 | 3,
121 | 4,
122 | 5
123 | ]
124 | }
125 | ],
126 | "sources" :
127 | [
128 | {
129 | "backtrace" : 1,
130 | "compileGroupIndex" : 0,
131 | "path" : "imgui/imgui.cpp",
132 | "sourceGroupIndex" : 0
133 | },
134 | {
135 | "backtrace" : 1,
136 | "compileGroupIndex" : 0,
137 | "path" : "imgui/imgui_draw.cpp",
138 | "sourceGroupIndex" : 0
139 | },
140 | {
141 | "backtrace" : 1,
142 | "compileGroupIndex" : 0,
143 | "path" : "imgui/imgui_tables.cpp",
144 | "sourceGroupIndex" : 0
145 | },
146 | {
147 | "backtrace" : 1,
148 | "compileGroupIndex" : 0,
149 | "path" : "imgui/imgui_widgets.cpp",
150 | "sourceGroupIndex" : 0
151 | },
152 | {
153 | "backtrace" : 1,
154 | "compileGroupIndex" : 0,
155 | "path" : "imgui/backends/imgui_impl_android.cpp",
156 | "sourceGroupIndex" : 0
157 | },
158 | {
159 | "backtrace" : 1,
160 | "compileGroupIndex" : 0,
161 | "path" : "imgui/backends/imgui_impl_opengl3.cpp",
162 | "sourceGroupIndex" : 0
163 | }
164 | ],
165 | "type" : "STATIC_LIBRARY"
166 | }
167 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.cmake/api/v1/reply/target-nhook-Debug-2308b745bd60863ce0c9.json:
--------------------------------------------------------------------------------
1 | {
2 | "artifacts" :
3 | [
4 | {
5 | "path" : "/Users/ligoudan/Desktop/XposedNHook/app/build/intermediates/cxx/Debug/4lq6t6k1/obj/arm64-v8a/libnhook.so"
6 | }
7 | ],
8 | "backtrace" : 1,
9 | "backtraceGraph" :
10 | {
11 | "commands" :
12 | [
13 | "add_library",
14 | "target_link_libraries",
15 | "include_directories"
16 | ],
17 | "files" :
18 | [
19 | "CMakeLists.txt"
20 | ],
21 | "nodes" :
22 | [
23 | {
24 | "file" : 0
25 | },
26 | {
27 | "command" : 0,
28 | "file" : 0,
29 | "line" : 34,
30 | "parent" : 0
31 | },
32 | {
33 | "command" : 1,
34 | "file" : 0,
35 | "line" : 64,
36 | "parent" : 0
37 | },
38 | {
39 | "command" : 2,
40 | "file" : 0,
41 | "line" : 21,
42 | "parent" : 0
43 | },
44 | {
45 | "command" : 2,
46 | "file" : 0,
47 | "line" : 32,
48 | "parent" : 0
49 | },
50 | {
51 | "command" : 2,
52 | "file" : 0,
53 | "line" : 51,
54 | "parent" : 0
55 | }
56 | ]
57 | },
58 | "compileGroups" :
59 | [
60 | {
61 | "compileCommandFragments" :
62 | [
63 | {
64 | "fragment" : "-DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fexceptions -frtti -stdlib=libc++ -fno-exceptions -fno-rtti -fvisibility=hidden -Wl,--exclude-libs,ALL -g -fno-limit-debug-info -fPIC"
65 | },
66 | {
67 | "fragment" : "-std=gnu++20"
68 | }
69 | ],
70 | "defines" :
71 | [
72 | {
73 | "define" : "nhook_EXPORTS"
74 | }
75 | ],
76 | "includes" :
77 | [
78 | {
79 | "backtrace" : 3,
80 | "path" : "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/."
81 | },
82 | {
83 | "backtrace" : 4,
84 | "path" : "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/imgui"
85 | },
86 | {
87 | "backtrace" : 5,
88 | "path" : "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/./imgui"
89 | }
90 | ],
91 | "language" : "CXX",
92 | "languageStandard" :
93 | {
94 | "backtraces" :
95 | [
96 | 1
97 | ],
98 | "standard" : "20"
99 | },
100 | "sourceIndexes" :
101 | [
102 | 0,
103 | 1,
104 | 2,
105 | 3,
106 | 4,
107 | 5,
108 | 6,
109 | 7,
110 | 8
111 | ],
112 | "sysroot" :
113 | {
114 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot"
115 | }
116 | }
117 | ],
118 | "dependencies" :
119 | [
120 | {
121 | "backtrace" : 2,
122 | "id" : "imgui::@6890427a1f51a3e7e1df"
123 | }
124 | ],
125 | "id" : "nhook::@6890427a1f51a3e7e1df",
126 | "link" :
127 | {
128 | "commandFragments" :
129 | [
130 | {
131 | "fragment" : "-Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Qunused-arguments -Wl,--no-undefined -L/opt/homebrew/opt/openssl@3/lib",
132 | "role" : "flags"
133 | },
134 | {
135 | "backtrace" : 2,
136 | "fragment" : "-landroid",
137 | "role" : "libraries"
138 | },
139 | {
140 | "backtrace" : 2,
141 | "fragment" : "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/libs/arm64-v8a/libdobby.a",
142 | "role" : "libraries"
143 | },
144 | {
145 | "backtrace" : 2,
146 | "fragment" : "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/libs/arm64-v8a/libQBDI.a",
147 | "role" : "libraries"
148 | },
149 | {
150 | "backtrace" : 2,
151 | "fragment" : "-lEGL",
152 | "role" : "libraries"
153 | },
154 | {
155 | "backtrace" : 2,
156 | "fragment" : "-lGLESv3",
157 | "role" : "libraries"
158 | },
159 | {
160 | "backtrace" : 2,
161 | "fragment" : "libimgui.a",
162 | "role" : "libraries"
163 | },
164 | {
165 | "backtrace" : 2,
166 | "fragment" : "-llog",
167 | "role" : "libraries"
168 | },
169 | {
170 | "fragment" : "-static-libstdc++ -latomic -lm",
171 | "role" : "libraries"
172 | }
173 | ],
174 | "language" : "CXX",
175 | "sysroot" :
176 | {
177 | "path" : "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot"
178 | }
179 | },
180 | "name" : "nhook",
181 | "nameOnDisk" : "libnhook.so",
182 | "paths" :
183 | {
184 | "build" : ".",
185 | "source" : "."
186 | },
187 | "sourceGroups" :
188 | [
189 | {
190 | "name" : "Source Files",
191 | "sourceIndexes" :
192 | [
193 | 0,
194 | 1,
195 | 2,
196 | 3,
197 | 4,
198 | 5,
199 | 6,
200 | 7,
201 | 8
202 | ]
203 | }
204 | ],
205 | "sources" :
206 | [
207 | {
208 | "backtrace" : 1,
209 | "compileGroupIndex" : 0,
210 | "path" : "nhook.cpp",
211 | "sourceGroupIndex" : 0
212 | },
213 | {
214 | "backtrace" : 1,
215 | "compileGroupIndex" : 0,
216 | "path" : "linker_hook.cpp",
217 | "sourceGroupIndex" : 0
218 | },
219 | {
220 | "backtrace" : 1,
221 | "compileGroupIndex" : 0,
222 | "path" : "vm.cpp",
223 | "sourceGroupIndex" : 0
224 | },
225 | {
226 | "backtrace" : 1,
227 | "compileGroupIndex" : 0,
228 | "path" : "utils.cpp",
229 | "sourceGroupIndex" : 0
230 | },
231 | {
232 | "backtrace" : 1,
233 | "compileGroupIndex" : 0,
234 | "path" : "demo/qbdihook.cpp",
235 | "sourceGroupIndex" : 0
236 | },
237 | {
238 | "backtrace" : 1,
239 | "compileGroupIndex" : 0,
240 | "path" : "demo/modmenu.cpp",
241 | "sourceGroupIndex" : 0
242 | },
243 | {
244 | "backtrace" : 1,
245 | "compileGroupIndex" : 0,
246 | "path" : "demo/ytbssl.cpp",
247 | "sourceGroupIndex" : 0
248 | },
249 | {
250 | "backtrace" : 1,
251 | "compileGroupIndex" : 0,
252 | "path" : "demo/modmenu_native.cpp",
253 | "sourceGroupIndex" : 0
254 | },
255 | {
256 | "backtrace" : 1,
257 | "compileGroupIndex" : 0,
258 | "path" : "demo/il2cpp_dumper.cpp",
259 | "sourceGroupIndex" : 0
260 | }
261 | ],
262 | "type" : "SHARED_LIBRARY"
263 | }
264 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.ninja_deps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/.ninja_deps
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_C_COMPILER "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang")
2 | set(CMAKE_C_COMPILER_ARG1 "")
3 | set(CMAKE_C_COMPILER_ID "Clang")
4 | set(CMAKE_C_COMPILER_VERSION "12.0.8")
5 | set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
6 | set(CMAKE_C_COMPILER_WRAPPER "")
7 | set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
8 | set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
9 | set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
10 | set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
11 | set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
12 | set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
13 | set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
14 | set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
15 |
16 | set(CMAKE_C_PLATFORM_ID "Linux")
17 | set(CMAKE_C_SIMULATE_ID "")
18 | set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
19 | set(CMAKE_C_SIMULATE_VERSION "")
20 |
21 |
22 |
23 |
24 | set(CMAKE_AR "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar")
25 | set(CMAKE_C_COMPILER_AR "CMAKE_C_COMPILER_AR-NOTFOUND")
26 | set(CMAKE_RANLIB "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib")
27 | set(CMAKE_C_COMPILER_RANLIB "CMAKE_C_COMPILER_RANLIB-NOTFOUND")
28 | set(CMAKE_LINKER "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld")
29 | set(CMAKE_MT "")
30 | set(CMAKE_COMPILER_IS_GNUCC )
31 | set(CMAKE_C_COMPILER_LOADED 1)
32 | set(CMAKE_C_COMPILER_WORKS TRUE)
33 | set(CMAKE_C_ABI_COMPILED TRUE)
34 |
35 | set(CMAKE_C_COMPILER_ENV_VAR "CC")
36 |
37 | set(CMAKE_C_COMPILER_ID_RUN 1)
38 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
39 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
40 | set(CMAKE_C_LINKER_PREFERENCE 10)
41 |
42 | # Save compiler ABI information.
43 | set(CMAKE_C_SIZEOF_DATA_PTR "8")
44 | set(CMAKE_C_COMPILER_ABI "ELF")
45 | set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
46 | set(CMAKE_C_LIBRARY_ARCHITECTURE "")
47 |
48 | if(CMAKE_C_SIZEOF_DATA_PTR)
49 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
50 | endif()
51 |
52 | if(CMAKE_C_COMPILER_ABI)
53 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
54 | endif()
55 |
56 | if(CMAKE_C_LIBRARY_ARCHITECTURE)
57 | set(CMAKE_LIBRARY_ARCHITECTURE "")
58 | endif()
59 |
60 | set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
61 | if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
62 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
63 | endif()
64 |
65 |
66 | set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION "clang")
67 | set(CMAKE_C_ANDROID_TOOLCHAIN_MACHINE "aarch64-linux-android")
68 | set(CMAKE_C_ANDROID_TOOLCHAIN_VERSION "")
69 | set(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN "")
70 | set(CMAKE_C_ANDROID_TOOLCHAIN_PREFIX "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android-")
71 | set(CMAKE_C_ANDROID_TOOLCHAIN_SUFFIX "")
72 |
73 |
74 |
75 |
76 | set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/local/include;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/lib64/clang/12.0.8/include;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/aarch64-linux-android;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include")
77 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "atomic;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl")
78 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/opt/homebrew/opt/openssl@3/lib;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/lib64/clang/12.0.8/lib/linux/aarch64;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/aarch64-linux-android/4.9.x;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android/24;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib")
79 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
80 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_CXX_COMPILER "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++")
2 | set(CMAKE_CXX_COMPILER_ARG1 "")
3 | set(CMAKE_CXX_COMPILER_ID "Clang")
4 | set(CMAKE_CXX_COMPILER_VERSION "12.0.8")
5 | set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
6 | set(CMAKE_CXX_COMPILER_WRAPPER "")
7 | set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
8 | set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
9 | set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23")
10 | set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
11 | set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
12 | set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
13 | set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
14 | set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
15 | set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
16 |
17 | set(CMAKE_CXX_PLATFORM_ID "Linux")
18 | set(CMAKE_CXX_SIMULATE_ID "")
19 | set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
20 | set(CMAKE_CXX_SIMULATE_VERSION "")
21 |
22 |
23 |
24 |
25 | set(CMAKE_AR "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar")
26 | set(CMAKE_CXX_COMPILER_AR "CMAKE_CXX_COMPILER_AR-NOTFOUND")
27 | set(CMAKE_RANLIB "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib")
28 | set(CMAKE_CXX_COMPILER_RANLIB "CMAKE_CXX_COMPILER_RANLIB-NOTFOUND")
29 | set(CMAKE_LINKER "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld")
30 | set(CMAKE_MT "")
31 | set(CMAKE_COMPILER_IS_GNUCXX )
32 | set(CMAKE_CXX_COMPILER_LOADED 1)
33 | set(CMAKE_CXX_COMPILER_WORKS TRUE)
34 | set(CMAKE_CXX_ABI_COMPILED TRUE)
35 |
36 | set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
37 |
38 | set(CMAKE_CXX_COMPILER_ID_RUN 1)
39 | set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm)
40 | set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
41 |
42 | foreach (lang C OBJC OBJCXX)
43 | if (CMAKE_${lang}_COMPILER_ID_RUN)
44 | foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
45 | list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
46 | endforeach()
47 | endif()
48 | endforeach()
49 |
50 | set(CMAKE_CXX_LINKER_PREFERENCE 30)
51 | set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
52 |
53 | # Save compiler ABI information.
54 | set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
55 | set(CMAKE_CXX_COMPILER_ABI "ELF")
56 | set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
57 | set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
58 |
59 | if(CMAKE_CXX_SIZEOF_DATA_PTR)
60 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
61 | endif()
62 |
63 | if(CMAKE_CXX_COMPILER_ABI)
64 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
65 | endif()
66 |
67 | if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
68 | set(CMAKE_LIBRARY_ARCHITECTURE "")
69 | endif()
70 |
71 | set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
72 | if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
73 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
74 | endif()
75 |
76 |
77 | set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION "clang")
78 | set(CMAKE_CXX_ANDROID_TOOLCHAIN_MACHINE "aarch64-linux-android")
79 | set(CMAKE_CXX_ANDROID_TOOLCHAIN_VERSION "")
80 | set(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN "")
81 | set(CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android-")
82 | set(CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX "")
83 |
84 |
85 |
86 |
87 | set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/local/include;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/lib64/clang/12.0.8/include;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/aarch64-linux-android;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include")
88 | set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "atomic;m;c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl")
89 | set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/opt/homebrew/opt/openssl@3/lib;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/lib64/clang/12.0.8/lib/linux/aarch64;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/lib/gcc/aarch64-linux-android/4.9.x;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android/24;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android;/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib")
90 | set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
91 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Darwin-24.0.0")
2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin")
3 | set(CMAKE_HOST_SYSTEM_VERSION "24.0.0")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64")
5 |
6 | include("/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/android.toolchain.cmake")
7 |
8 | set(CMAKE_SYSTEM "Android-24")
9 | set(CMAKE_SYSTEM_NAME "Android")
10 | set(CMAKE_SYSTEM_VERSION "24")
11 | set(CMAKE_SYSTEM_PROCESSOR "aarch64")
12 |
13 | set(CMAKE_ANDROID_NDK "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620")
14 | set(CMAKE_ANDROID_STANDALONE_TOOLCHAIN "")
15 | set(CMAKE_ANDROID_ARCH "arm64")
16 | set(CMAKE_ANDROID_ARCH_ABI "arm64-v8a")
17 | set(CMAKE_ANDROID_ARCH_TRIPLE "aarch64-linux-android")
18 | set(CMAKE_ANDROID_ARCH_LLVM_TRIPLE "aarch64-none-linux-android")
19 | set(CMAKE_ANDROID_NDK_VERSION "23.1")
20 | set(CMAKE_ANDROID_NDK_DEPRECATED_HEADERS "1")
21 | set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "darwin-x86_64")
22 | set(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64")
23 |
24 | # Copyright (C) 2020 The Android Open Source Project
25 | #
26 | # Licensed under the Apache License, Version 2.0 (the "License");
27 | # you may not use this file except in compliance with the License.
28 | # You may obtain a copy of the License at
29 | #
30 | # http://www.apache.org/licenses/LICENSE-2.0
31 | #
32 | # Unless required by applicable law or agreed to in writing, software
33 | # distributed under the License is distributed on an "AS IS" BASIS,
34 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
35 | # See the License for the specific language governing permissions and
36 | # limitations under the License.
37 |
38 | # Read-only variables for compatibility with the other toolchain file.
39 | # We'll keep these around for the existing projects that still use them.
40 | # TODO: All of the variables here have equivalents in the standard set of
41 | # cmake configurable variables, so we can remove these once most of our
42 | # users migrate to those variables.
43 |
44 | # From legacy toolchain file.
45 | set(ANDROID_NDK "${CMAKE_ANDROID_NDK}")
46 | set(ANDROID_ABI "${CMAKE_ANDROID_ARCH_ABI}")
47 | set(ANDROID_COMPILER_IS_CLANG TRUE)
48 | set(ANDROID_PLATFORM "android-${CMAKE_SYSTEM_VERSION}")
49 | set(ANDROID_PLATFORM_LEVEL "${CMAKE_SYSTEM_VERSION}")
50 | if(CMAKE_ANDROID_STL_TYPE)
51 | set(ANDROID_ARM_NEON TRUE)
52 | else()
53 | set(ANDROID_ARM_NEON FALSE)
54 | endif()
55 | if(CMAKE_ANDROID_ARM_MODE)
56 | set(ANDROID_ARM_MODE "arm")
57 | set(ANDROID_FORCE_ARM_BUILD TRUE)
58 | else()
59 | set(ANDROID_ARM_MODE "thumb")
60 | endif()
61 | set(ANDROID_ARCH_NAME "${CMAKE_ANDROID_ARCH}")
62 | set(ANDROID_LLVM_TRIPLE "${CMAKE_ANDROID_ARCH_LLVM_TRIPLE}${CMAKE_SYSTEM_VERSION}")
63 | set(ANDROID_TOOLCHAIN_ROOT "${CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED}")
64 | set(ANDROID_HOST_TAG "${CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG}")
65 | set(ANDROID_HOST_PREBUILTS "${CMAKE_ANDROID_NDK}/prebuilt/${CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG}")
66 | set(ANDROID_AR "${CMAKE_AR}")
67 | set(ANDROID_RANLIB "${CMAKE_RANLIB}")
68 | set(ANDROID_STRIP "${CMAKE_STRIP}")
69 | if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
70 | set(ANDROID_TOOLCHAIN_SUFFIX ".exe")
71 | endif()
72 |
73 | # From other toolchain file.
74 | set(ANDROID_NATIVE_API_LEVEL "${ANDROID_PLATFORM_LEVEL}")
75 | if(ANDROID_ALLOW_UNDEFINED_SYMBOLS)
76 | set(ANDROID_SO_UNDEFINED TRUE)
77 | else()
78 | set(ANDROID_NO_UNDEFINED TRUE)
79 | endif()
80 | set(ANDROID_FUNCTION_LEVEL_LINKING TRUE)
81 | set(ANDROID_GOLD_LINKER TRUE)
82 | set(ANDROID_NOEXECSTACK TRUE)
83 | set(ANDROID_RELRO TRUE)
84 | if(ANDROID_CPP_FEATURES MATCHES "rtti"
85 | AND ANDROID_CPP_FEATURES MATCHES "exceptions")
86 | set(ANDROID_STL_FORCE_FEATURES TRUE)
87 | endif()
88 | if(ANDROID_CCACHE)
89 | set(NDK_CCACHE "${ANDROID_CCACHE}")
90 | endif()
91 | set(ANDROID_NDK_HOST_X64 TRUE)
92 | set(ANDROID_NDK_LAYOUT RELEASE)
93 | if(CMAKE_ANDROID_ARCH_ABI STREQUAL "armeabi-v7a")
94 | set(ARMEABI_V7A TRUE)
95 | if(ANDROID_ARM_NEON)
96 | set(NEON TRUE)
97 | endif()
98 | elseif(CMAKE_ANDROID_ARCH_ABI STREQUAL "arm64-v8a")
99 | set(ARM64_V8A TRUE)
100 | elseif(CMAKE_ANDROID_ARCH_ABI STREQUAL "x86")
101 | set(X86 TRUE)
102 | elseif(CMAKE_ANDROID_ARCH_ABI STREQUAL "x86_64")
103 | set(X86_64 TRUE)
104 | endif()
105 | set(ANDROID_NDK_HOST_SYSTEM_NAME "${ANDROID_HOST_TAG}")
106 | set(ANDROID_NDK_ABI_NAME "${CMAKE_ANDROID_ARCH_ABI}")
107 | set(ANDROID_NDK_RELEASE "r${ANDROID_NDK_REVISION}")
108 | set(TOOL_OS_SUFFIX "${ANDROID_TOOLCHAIN_SUFFIX}")
109 |
110 |
111 | set(CMAKE_CROSSCOMPILING "TRUE")
112 |
113 | set(CMAKE_SYSTEM_LOADED 1)
114 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | /Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir
2 | /Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir
3 | /Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/edit_cache.dir
4 | /Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/rebuild_cache.dir
5 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/backends/imgui_impl_android.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/backends/imgui_impl_android.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/backends/imgui_impl_opengl3.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/backends/imgui_impl_opengl3.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/imgui.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/imgui.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/imgui_draw.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/imgui_draw.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/imgui_tables.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/imgui_tables.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/imgui_widgets.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/imgui.dir/imgui/imgui_widgets.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/demo/il2cpp_dumper.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/demo/il2cpp_dumper.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/demo/modmenu.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/demo/modmenu.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/demo/modmenu_native.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/demo/modmenu_native.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/demo/qbdihook.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/demo/qbdihook.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/demo/ytbssl.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/demo/ytbssl.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/linker_hook.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/linker_hook.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/nhook.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/nhook.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/utils.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/utils.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/vm.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/nhook.dir/vm.cpp.o
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/CMakeFiles/rules.ninja:
--------------------------------------------------------------------------------
1 | # CMAKE generated file: DO NOT EDIT!
2 | # Generated by "Ninja" Generator, CMake Version 3.22
3 |
4 | # This file contains all the rules used to get the outputs files
5 | # built from the input files.
6 | # It is included in the main 'build.ninja'.
7 |
8 | # =============================================================================
9 | # Project: nhook
10 | # Configurations: Debug
11 | # =============================================================================
12 | # =============================================================================
13 |
14 | #############################################
15 | # Rule for compiling CXX files.
16 |
17 | rule CXX_COMPILER__nhook_Debug
18 | depfile = $DEP_FILE
19 | deps = gcc
20 | command = /Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android24 --sysroot=/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
21 | description = Building CXX object $out
22 |
23 |
24 | #############################################
25 | # Rule for linking CXX shared library.
26 |
27 | rule CXX_SHARED_LIBRARY_LINKER__nhook_Debug
28 | command = $PRE_LINK && /Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android24 --sysroot=/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD
29 | description = Linking CXX shared library $TARGET_FILE
30 | restat = $RESTAT
31 |
32 |
33 | #############################################
34 | # Rule for compiling CXX files.
35 |
36 | rule CXX_COMPILER__imgui_Debug
37 | depfile = $DEP_FILE
38 | deps = gcc
39 | command = /Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android24 --sysroot=/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
40 | description = Building CXX object $out
41 |
42 |
43 | #############################################
44 | # Rule for linking CXX static library.
45 |
46 | rule CXX_STATIC_LIBRARY_LINKER__imgui_Debug
47 | command = $PRE_LINK && /Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/cmake -E rm -f $TARGET_FILE && /Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar qc $TARGET_FILE $LINK_FLAGS $in && /Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib $TARGET_FILE && /Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/cmake -E touch $TARGET_FILE && $POST_BUILD
48 | description = Linking CXX static library $TARGET_FILE
49 | restat = $RESTAT
50 |
51 |
52 | #############################################
53 | # Rule for running custom commands.
54 |
55 | rule CUSTOM_COMMAND
56 | command = $COMMAND
57 | description = $DESC
58 |
59 |
60 | #############################################
61 | # Rule for re-running cmake.
62 |
63 | rule RERUN_CMAKE
64 | command = /Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp -B/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a
65 | description = Re-running CMake...
66 | generator = 1
67 |
68 |
69 | #############################################
70 | # Rule for cleaning all built files.
71 |
72 | rule CLEAN
73 | command = /Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS
74 | description = Cleaning all built files...
75 |
76 |
77 | #############################################
78 | # Rule for printing all primary targets available.
79 |
80 | rule HELP
81 | command = /Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/ninja -t targets
82 | description = All primary targets available:
83 |
84 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/additional_project_files.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/additional_project_files.txt
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/android_gradle_build.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/CMakeLists.txt"
4 | ],
5 | "cleanCommandsComponents": [
6 | [
7 | "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/ninja",
8 | "-C",
9 | "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a",
10 | "clean"
11 | ]
12 | ],
13 | "buildTargetsCommandComponents": [
14 | "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/ninja",
15 | "-C",
16 | "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a",
17 | "{LIST_OF_TARGETS_TO_BUILD}"
18 | ],
19 | "libraries": {
20 | "imgui::@6890427a1f51a3e7e1df": {
21 | "toolchain": "toolchain",
22 | "abi": "arm64-v8a",
23 | "artifactName": "imgui",
24 | "output": "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a/libimgui.a"
25 | },
26 | "nhook::@6890427a1f51a3e7e1df": {
27 | "toolchain": "toolchain",
28 | "abi": "arm64-v8a",
29 | "artifactName": "nhook",
30 | "output": "/Users/ligoudan/Desktop/XposedNHook/app/build/intermediates/cxx/Debug/4lq6t6k1/obj/arm64-v8a/libnhook.so",
31 | "runtimeFiles": []
32 | }
33 | },
34 | "toolchains": {
35 | "toolchain": {
36 | "cCompilerExecutable": "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld",
37 | "cppCompilerExecutable": "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld"
38 | }
39 | },
40 | "cFileExtensions": [],
41 | "cppFileExtensions": [
42 | "cpp"
43 | ]
44 | }
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/android_gradle_build_mini.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/CMakeLists.txt"
4 | ],
5 | "cleanCommandsComponents": [
6 | [
7 | "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/ninja",
8 | "-C",
9 | "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a",
10 | "clean"
11 | ]
12 | ],
13 | "buildTargetsCommandComponents": [
14 | "/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/ninja",
15 | "-C",
16 | "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a",
17 | "{LIST_OF_TARGETS_TO_BUILD}"
18 | ],
19 | "libraries": {
20 | "imgui::@6890427a1f51a3e7e1df": {
21 | "artifactName": "imgui",
22 | "abi": "arm64-v8a",
23 | "output": "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a/libimgui.a",
24 | "runtimeFiles": []
25 | },
26 | "nhook::@6890427a1f51a3e7e1df": {
27 | "artifactName": "nhook",
28 | "abi": "arm64-v8a",
29 | "output": "/Users/ligoudan/Desktop/XposedNHook/app/build/intermediates/cxx/Debug/4lq6t6k1/obj/arm64-v8a/libnhook.so",
30 | "runtimeFiles": []
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/build_file_index.txt:
--------------------------------------------------------------------------------
1 | /Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp/CMakeLists.txt
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: /Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "/usr/local")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Debug")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | # Install shared libraries without execute permission?
31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
32 | set(CMAKE_INSTALL_SO_NO_EXE "0")
33 | endif()
34 |
35 | # Is this installation the result of a crosscompile?
36 | if(NOT DEFINED CMAKE_CROSSCOMPILING)
37 | set(CMAKE_CROSSCOMPILING "TRUE")
38 | endif()
39 |
40 | # Set default install directory permissions.
41 | if(NOT DEFINED CMAKE_OBJDUMP)
42 | set(CMAKE_OBJDUMP "/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump")
43 | endif()
44 |
45 | if(CMAKE_INSTALL_COMPONENT)
46 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
47 | else()
48 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
49 | endif()
50 |
51 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
52 | "${CMAKE_INSTALL_MANIFEST_FILES}")
53 | file(WRITE "/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a/${CMAKE_INSTALL_MANIFEST}"
54 | "${CMAKE_INSTALL_MANIFEST_CONTENT}")
55 |
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/compile_commands.json.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/compile_commands.json.bin
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/configure_fingerprint.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/configure_fingerprint.bin
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/libimgui.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaotujinbnb/QBDI_trace_demo/c1123bf3bfe0dd2fe76aeb0bed4ff8de71d83e28/app/.cxx/Debug/4lq6t6k1/arm64-v8a/libimgui.a
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/metadata_generation_command.txt:
--------------------------------------------------------------------------------
1 | -H/Users/ligoudan/Desktop/XposedNHook/app/src/main/cpp
2 | -DCMAKE_SYSTEM_NAME=Android
3 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
4 | -DCMAKE_SYSTEM_VERSION=24
5 | -DANDROID_PLATFORM=android-24
6 | -DANDROID_ABI=arm64-v8a
7 | -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a
8 | -DANDROID_NDK=/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620
9 | -DCMAKE_ANDROID_NDK=/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620
10 | -DCMAKE_TOOLCHAIN_FILE=/Users/ligoudan/Library/Android/sdk/ndk/23.1.7779620/build/cmake/android.toolchain.cmake
11 | -DCMAKE_MAKE_PROGRAM=/Users/ligoudan/Library/Android/sdk/cmake/3.22.1/bin/ninja
12 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/ligoudan/Desktop/XposedNHook/app/build/intermediates/cxx/Debug/4lq6t6k1/obj/arm64-v8a
13 | -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/ligoudan/Desktop/XposedNHook/app/build/intermediates/cxx/Debug/4lq6t6k1/obj/arm64-v8a
14 | -DCMAKE_BUILD_TYPE=Debug
15 | -B/Users/ligoudan/Desktop/XposedNHook/app/.cxx/Debug/4lq6t6k1/arm64-v8a
16 | -GNinja
17 | Build command args: []
18 | Version: 2
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/prefab_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "packages": []
4 | }
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/arm64-v8a/symbol_folder_index.txt:
--------------------------------------------------------------------------------
1 | /Users/ligoudan/Desktop/XposedNHook/app/build/intermediates/cxx/Debug/4lq6t6k1/obj/arm64-v8a
--------------------------------------------------------------------------------
/app/.cxx/Debug/4lq6t6k1/hash_key.txt:
--------------------------------------------------------------------------------
1 | # Values used to calculate the hash in this folder name.
2 | # Should not depend on the absolute path of the project itself.
3 | # - AGP: 7.4.2.
4 | # - $NDK is the path to NDK 23.1.7779620.
5 | # - $PROJECT is the path to the parent folder of the root Gradle build file.
6 | # - $ABI is the ABI to be built with. The specific value doesn't contribute to the value of the hash.
7 | # - $HASH is the hash value computed from this text.
8 | # - $CMAKE is the path to CMake 3.22.1.
9 | # - $NINJA is the path to Ninja.
10 | -H$PROJECT/app/src/main/cpp
11 | -DCMAKE_SYSTEM_NAME=Android
12 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
13 | -DCMAKE_SYSTEM_VERSION=24
14 | -DANDROID_PLATFORM=android-24
15 | -DANDROID_ABI=$ABI
16 | -DCMAKE_ANDROID_ARCH_ABI=$ABI
17 | -DANDROID_NDK=$NDK
18 | -DCMAKE_ANDROID_NDK=$NDK
19 | -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake
20 | -DCMAKE_MAKE_PROGRAM=$NINJA
21 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=$PROJECT/app/build/intermediates/cxx/Debug/$HASH/obj/$ABI
22 | -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=$PROJECT/app/build/intermediates/cxx/Debug/$HASH/obj/$ABI
23 | -DCMAKE_BUILD_TYPE=Debug
24 | -B$PROJECT/app/.cxx/Debug/$HASH/$ABI
25 | -GNinja
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | alias(libs.plugins.androidApplication)
3 | }
4 |
5 | android {
6 | namespace 'cn.mrack.xposed.nhook'
7 | compileSdk 34
8 |
9 | defaultConfig {
10 | applicationId "cn.mrack.xposed.nhook"
11 | minSdk 24
12 | targetSdk 34
13 | versionCode 1
14 | versionName "1.0"
15 |
16 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
17 |
18 | ndk {
19 | abiFilters 'arm64-v8a'
20 | }
21 |
22 | // externalNativeBuild {
23 | // cmake {
24 | // cppFlags "-std=c++17 -fvisibility=hidden -fvisibility-inlines-hidden -mllvm -sobf -mllvm -sub -mllvm -sub_loop=2 -mllvm -icall -mllvm -ibr -mllvm -igv"
25 | // }
26 | // }
27 | // ndkVersion "26.1.10909125"
28 |
29 | }
30 |
31 | buildTypes {
32 | release {
33 | minifyEnabled true
34 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
35 | }
36 | }
37 | compileOptions {
38 | sourceCompatibility JavaVersion.VERSION_1_8
39 | targetCompatibility JavaVersion.VERSION_1_8
40 | }
41 | externalNativeBuild {
42 | cmake {
43 | path file('src/main/cpp/CMakeLists.txt')
44 | version '3.22.1'
45 | }
46 | }
47 |
48 |
49 | buildFeatures {
50 | buildConfig = true
51 | }
52 | packagingOptions {
53 | jniLibs {
54 | useLegacyPackaging true
55 | }
56 | }
57 | ndkVersion '26.3.11579264'
58 |
59 | // project.tasks.whenTaskAdded { task ->
60 | // if (task.name == 'stripDebugDebugSymbols') {
61 | // task.finalizedBy dealAfterMergeDebugNativeLibs
62 | // }
63 | // if (task.name == 'stripReleaseDebugSymbols') {
64 | // task.finalizedBy dealAfterMergeReleaseNativeLibs
65 | // }
66 | // }
67 |
68 | //
69 | // task dealAfterMergeReleaseNativeLibs() {
70 | // doLast {
71 | // var arch = ["arm64", "v7a"]
72 | // var version = "release"
73 | // generate(version, arch)
74 | // }
75 | // }
76 | //
77 | // task dealAfterMergeDebugNativeLibs() {
78 | // doLast {
79 | // var arch = ["arm64", "v7a"]
80 | // var version = "debug"
81 | // generate(version, arch)
82 | // }
83 | // }
84 |
85 | }
86 |
87 |
88 | dependencies {
89 | compileOnly 'de.robv.android.xposed:api:82'
90 | }
91 |
92 |
93 | //def generate(version, archs) {
94 | // def MERGED_NATIVE_LIBS_PATH = "$buildDir/intermediates/stripped_native_libs"
95 | // var fileList = fileTree("$MERGED_NATIVE_LIBS_PATH/$version").matching {
96 | // include '**/lib*.so'
97 | // }.collect()
98 | // var length = 32000
99 | // for (final def data in fileList) {
100 | // for (arch in archs) {
101 | // if (data.path.contains("$arch")) {
102 | // byte[] fileBytes = data.bytes
103 | // if (fileBytes == "placeholder".bytes) {
104 | // continue
105 | // }
106 | // data.bytes = "placeholder".bytes
107 | // delete file("src/main/java/cn/mrack/so/$arch")
108 | // file("src/main/java/cn/mrack/so/$arch").mkdirs()
109 | // int i = fileBytes.length / length
110 | // String totalText = "";
111 | // for (int j = 0; j < i; j++) {
112 | // byte[] temp = new byte[length];
113 | // System.arraycopy(fileBytes, j * length, temp, 0, length);
114 | // // hex
115 | // file("src/main/java/cn/mrack/so/$arch/SoData${j}.java").text = "package cn.mrack.so.$arch;\n" +
116 | // "public class SoData$j {\n" +
117 | // " protected static String data${j} = \"" + temp.collect { String.format("%02X", it) }.join("") + "\";\n" +
118 | // "}";
119 | // totalText += "SoData${j}.data${j} + ";
120 | // }
121 | // byte[] temp = new byte[fileBytes.length - i * length];
122 | // System.arraycopy(fileBytes, i * length, temp, 0, fileBytes.length - i * length);
123 | // file("src/main/java/cn/mrack/so/$arch/SoData${i}.java").text = "package cn.mrack.so.$arch;\n" +
124 | // "public class SoData${i} {\n" +
125 | // " protected static String data${i} = \"" + temp.collect { String.format("%02X", it) }.join("") + "\";\n" +
126 | // "}";
127 | // totalText += "SoData${i}.data${i}";
128 | //
129 | // file("src/main/java/cn/mrack/so/$arch/SoData.java").text = "package cn.mrack.so.$arch;\n" +
130 | // "public class SoData {\n" +
131 | // " public static byte[] data = hexToBytes(" + totalText + ");\n" +
132 | // " public static String md5 = \"${fileBytes.md5().toLowerCase()}\";\n" +
133 | // " public static byte[] hexToBytes(String hex) {\n" +
134 | // " byte[] bytes = new byte[hex.length() / 2];\n" +
135 | // " for (int i = 0; i < hex.length(); i += 2) {\n" +
136 | // " bytes[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4) + Character.digit(hex.charAt(i + 1), 16));\n" +
137 | // " }\n" +
138 | // " return bytes;\n" +
139 | // " }\n" +
140 | // "}";
141 | //
142 | // }
143 | // }
144 | //
145 | // }
146 | //}
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
23 | -keep class cn.mrack.xposed.nhook.NHook
24 | -keepclasseswithmembers class cn.mrack.so.*.SoData
25 | -keepclasseswithmembers class cn.mrack.xposed.nhook.MainHook
26 | -keep class cn.mrack.xposed.nhook.SettingsActivity {
27 | isModuleActive();
28 | }
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
14 |
17 |
20 |
21 |
24 |
25 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/app/src/main/assets/xposed_init:
--------------------------------------------------------------------------------
1 | cn.mrack.xposed.nhook.MainHook
--------------------------------------------------------------------------------
/app/src/main/cpp/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # For more information about using CMake with Android Studio, read the
2 | # documentation: https://d.android.com/studio/projects/add-native-code.html.
3 | # For more examples on how to use CMake, see https://github.com/android/ndk-samples.
4 |
5 | # Sets the minimum CMake version required for this project.
6 | cmake_minimum_required(VERSION 3.22.1)
7 |
8 | # Declares the project name. The project name can be accessed via ${ PROJECT_NAME},
9 | # Since this is the top level CMakeLists.txt, the project name is also accessible
10 | # with ${CMAKE_PROJECT_NAME} (both CMake variables are in-sync within the top level
11 | # build script scope).
12 | project("nhook")
13 |
14 | set(CMAKE_CXX_STANDARD 20)
15 |
16 |
17 | set(LINKER_FLAGS "-ffixed-x18 -Wl,--hash-style=both")
18 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=format -fdata-sections -ffunction-sections -fvisibility=hidden -Wl,--exclude-libs,ALL")
19 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti -fvisibility=hidden -Wl,--exclude-libs,ALL")
20 |
21 | include_directories(.)
22 |
23 | find_library(egl EGL)
24 | find_library(GLESV2_LIB GLESv2)
25 | find_library(android android)
26 | add_library(local_dobby STATIC IMPORTED)
27 | add_library(local_qbdi STATIC IMPORTED)
28 |
29 | set_target_properties(local_dobby PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}/libdobby.a)
30 | set_target_properties(local_qbdi PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}/libQBDI.a)
31 |
32 | include_directories(imgui)
33 |
34 | add_library(${CMAKE_PROJECT_NAME} SHARED
35 | # List C/C++ source files with relative paths to this CMakeLists.txt.
36 | nhook.cpp
37 | linker_hook.cpp
38 | vm.cpp
39 | utils.cpp
40 |
41 | #demo
42 | demo/qbdihook.cpp
43 | demo/modmenu.cpp
44 | demo/ytbssl.cpp
45 | demo/modmenu_native.cpp
46 | demo/il2cpp_dumper.cpp
47 | demo/md5.cpp
48 | demo/sha1.hpp
49 | )
50 |
51 |
52 |
53 | include_directories(./imgui)
54 |
55 | add_library(imgui STATIC
56 | imgui/imgui.cpp
57 | imgui/imgui_draw.cpp
58 | imgui/imgui_tables.cpp
59 | imgui/imgui_widgets.cpp
60 | imgui/backends/imgui_impl_android.cpp
61 | imgui/backends/imgui_impl_opengl3.cpp)
62 |
63 | # Specifies libraries CMake should link to your target library. You
64 | # can link libraries from various origins, such as libraries defined in this
65 | # build script, prebuilt third-party libraries, or Android system libraries.
66 | target_link_libraries(${CMAKE_PROJECT_NAME}
67 | # List libraries link to the target library
68 | android
69 | local_dobby
70 | local_qbdi
71 | EGL
72 | GLESv3
73 | imgui
74 | log)
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of QBDI.
3 | *
4 | * Copyright 2017 - 2023 Quarkslab
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | #ifndef QBDI_H_
19 | #define QBDI_H_
20 |
21 | #ifdef __cplusplus
22 | #include "QBDI/Memory.hpp"
23 | #include "QBDI/VM.h"
24 | #else
25 | #include "QBDI/Memory.h"
26 | #include "QBDI/VM_C.h"
27 | #endif
28 |
29 | #include "QBDI/Logs.h"
30 | #include "QBDI/Version.h"
31 |
32 | #endif // QBDI_H_
33 |
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI/Bitmask.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of QBDI.
3 | *
4 | * Copyright 2017 - 2023 Quarkslab
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | #ifndef QBDI_BITMASK_H_
19 | #define QBDI_BITMASK_H_
20 |
21 | #ifdef __cplusplus
22 | #include
23 |
24 | namespace QBDI {
25 |
26 | template
27 | struct EnableBitMaskOperators {
28 | static const bool enable = false;
29 | };
30 |
31 | template
32 | typename std::enable_if::enable, Enum>::type
33 | operator|(Enum lhs, Enum rhs) {
34 | using underlying = typename std::underlying_type::type;
35 | return static_cast(static_cast(lhs) |
36 | static_cast(rhs));
37 | }
38 |
39 | template
40 | typename std::enable_if::enable, Enum>::type &
41 | operator|=(Enum &lhs, Enum rhs) {
42 | using underlying = typename std::underlying_type::type;
43 | lhs = static_cast(static_cast(lhs) |
44 | static_cast(rhs));
45 | return lhs;
46 | }
47 |
48 | #define _QBDI_ENABLE_BITMASK_OPERATORS(x) \
49 | template <> \
50 | struct EnableBitMaskOperators { \
51 | static const bool enable = true; \
52 | };
53 |
54 | } // namespace QBDI
55 | #else
56 | #define _QBDI_ENABLE_BITMASK_OPERATORS(x)
57 | #endif
58 |
59 | #endif // QBDI_BITMASK_H_
60 |
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI/Config.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of QBDI.
3 | *
4 | * Copyright 2017 - 2023 Quarkslab
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | #ifndef QBDI_CONFIG_H_
19 | #define QBDI_CONFIG_H_
20 |
21 | /* #undef QBDI_ARCH_ARM */
22 | #define QBDI_ARCH_AARCH64 1
23 | /* #undef QBDI_ARCH_X86 */
24 | /* #undef QBDI_ARCH_X86_64 */
25 |
26 | /* #undef QBDI_PLATFORM_WINDOWS */
27 | /* #undef QBDI_PLATFORM_LINUX */
28 | #define QBDI_PLATFORM_ANDROID 1
29 | /* #undef QBDI_PLATFORM_OSX */
30 | /* #undef QBDI_PLATFORM_IOS */
31 |
32 | /* #undef QBDI_NOT_AVX_SUPPORT */
33 |
34 | /* #undef QBDI_BITS_32 */
35 | #define QBDI_BITS_64 1
36 |
37 | /* #undef QBDI_LOG_DEBUG */
38 |
39 | /* #undef QBDI_EXPORT_SYM */
40 |
41 | #ifdef __cplusplus
42 | namespace QBDI {
43 |
44 | static constexpr bool is_android = 1;
45 | static constexpr bool is_linux = 0;
46 | static constexpr bool is_osx = 0;
47 | static constexpr bool is_ios = 0;
48 | static constexpr bool is_windows = 0;
49 |
50 |
51 | static constexpr bool is_arm = 0;
52 | static constexpr bool is_aarch64 = 1;
53 | static constexpr bool is_x86 = 0;
54 | static constexpr bool is_x86_64 = 0;
55 |
56 | static constexpr bool it_bits_32 = 0;
57 | static constexpr bool is_bits_64 = 1;
58 |
59 | static constexpr bool has_debug_log = 0;
60 | }
61 | #endif // __cplusplus
62 |
63 | #endif // QBDI_CONFIG_H_
64 |
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI/Errors.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of QBDI.
3 | *
4 | * Copyright 2017 - 2023 Quarkslab
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | #ifndef QBDI_ERRORS_H_
19 | #define QBDI_ERRORS_H_
20 |
21 | #include "QBDI/Platform.h"
22 |
23 | #ifdef __cplusplus
24 | namespace QBDI {
25 | #endif
26 |
27 | /*! QBDI Error values
28 | */
29 | typedef enum {
30 | _QBDI_EI(INVALID_EVENTID) = 0xffffffff, /*!< Mark a returned event id as
31 | * invalid
32 | */
33 | } VMError;
34 |
35 | #ifdef __cplusplus
36 | }
37 | #endif
38 |
39 | #endif // QBDI_ERRORS_H_
40 |
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI/InstAnalysis.h:
--------------------------------------------------------------------------------
1 | /*
2 | * 本文件属于 QBDI 项目的一部分。
3 | *
4 | * 版权所有 2017 - 2023 Quarkslab
5 | *
6 | * 根据 Apache 许可证,版本 2.0(以下简称“许可证”)许可;
7 | * 除非符合许可证,否则您不得使用此文件。
8 | * 您可以从以下地址获得许可证副本:
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * 除非适用法律要求或书面同意,根据许可证分发的软件按“原样”分发,
13 | * 无任何明示或暗示的担保或条件。
14 | * 有关许可证下许可的特定语言的详细信息,请参阅许可证。
15 | */
16 | #ifndef QBDI_INSTANALYSIS_H_
17 | #define QBDI_INSTANALYSIS_H_
18 |
19 | #include
20 |
21 | #include "QBDI/Bitmask.h"
22 | #include "QBDI/Platform.h"
23 | #include "QBDI/State.h"
24 |
25 | #ifdef __cplusplus
26 | namespace QBDI {
27 | #endif
28 |
29 | /*! 寄存器操作类型(读取/写入/读写) */
30 | typedef enum {
31 | _QBDI_EI(REGISTER_UNUSED) = 0, /*!< 未使用寄存器 */
32 | _QBDI_EI(REGISTER_READ) = 1, /*!< 寄存器读取操作 */
33 | _QBDI_EI(REGISTER_WRITE) = 1 << 1, /*!< 寄存器写入操作 */
34 | _QBDI_EI(REGISTER_READ_WRITE) = 3, /*!< 寄存器读写操作 */
35 | } RegisterAccessType;
36 |
37 | _QBDI_ENABLE_BITMASK_OPERATORS(RegisterAccessType)
38 |
39 | /*! 指令条件 */
40 | typedef enum {
41 | _QBDI_EI(CONDITION_NONE) = 0x0, /*!< 指令无条件 */
42 | // ConditionType ^ 0x1 反转条件,除 CONDITION_NONE 外
43 | _QBDI_EI(CONDITION_ALWAYS) = 0x2, /*!< 指令始终为真 */
44 | _QBDI_EI(CONDITION_NEVER) = 0x3, /*!< 指令始终为假 */
45 | _QBDI_EI(CONDITION_EQUALS) = 0x4, /*!< 等于 ('==') */
46 | _QBDI_EI(CONDITION_NOT_EQUALS) = 0x5, /*!< 不等于 ('!=') */
47 | _QBDI_EI(CONDITION_ABOVE) = 0x6, /*!< 大于(无符号 '>') */
48 | _QBDI_EI(CONDITION_BELOW_EQUALS) = 0x7, /*!< 小于等于(无符号 '<=') */
49 | _QBDI_EI(CONDITION_ABOVE_EQUALS) = 0x8, /*!< 大于等于(无符号 '>=') */
50 | _QBDI_EI(CONDITION_BELOW) = 0x9, /*!< 小于(无符号 '<') */
51 | _QBDI_EI(CONDITION_GREAT) = 0xa, /*!< 大于(有符号 '>') */
52 | _QBDI_EI(CONDITION_LESS_EQUALS) = 0xb, /*!< 小于等于(有符号 '<=') */
53 | _QBDI_EI(CONDITION_GREAT_EQUALS) = 0xc, /*!< 大于等于(有符号 '>=') */
54 | _QBDI_EI(CONDITION_LESS) = 0xd, /*!< 小于(有符号 '<') */
55 | _QBDI_EI(CONDITION_EVEN) = 0xe, /*!< 偶数 */
56 | _QBDI_EI(CONDITION_ODD) = 0xf, /*!< 奇数 */
57 | _QBDI_EI(CONDITION_OVERFLOW) = 0x10, /*!< 溢出 */
58 | _QBDI_EI(CONDITION_NOT_OVERFLOW) = 0x11, /*!< 无溢出 */
59 | _QBDI_EI(CONDITION_SIGN) = 0x12, /*!< 符号 */
60 | _QBDI_EI(CONDITION_NOT_SIGN) = 0x13, /*!< 无符号 */
61 | } ConditionType;
62 |
63 | /*! 操作数类型 */
64 | typedef enum {
65 | _QBDI_EI(OPERAND_INVALID) = 0, /*!< 无效操作数 */
66 | _QBDI_EI(OPERAND_IMM), /*!< 立即数操作数 */
67 | _QBDI_EI(OPERAND_GPR), /*!< 寄存器操作数 */
68 | _QBDI_EI(OPERAND_PRED), /*!< 谓词操作数 */
69 | _QBDI_EI(OPERAND_FPR), /*!< 浮点寄存器操作数 */
70 | _QBDI_EI(OPERAND_SEG), /*!< 段寄存器或不支持的寄存器操作数 */
71 | } OperandType;
72 |
73 | typedef enum {
74 | _QBDI_EI(OPERANDFLAG_NONE) = 0, /*!< 无标志 */
75 | _QBDI_EI(OPERANDFLAG_ADDR) = 1 << 0, /*!< 操作数用于计算地址 */
76 | _QBDI_EI(OPERANDFLAG_PCREL) = 1 << 1, /*!< 操作数值相对 PC */
77 | _QBDI_EI(OPERANDFLAG_UNDEFINED_EFFECT) = 1 << 2, /*!< 操作数角色未完全定义 */
78 | _QBDI_EI(OPERANDFLAG_IMPLICIT) = 1 << 3, /*!< 操作数是隐式的 */
79 | } OperandFlag;
80 |
81 | _QBDI_ENABLE_BITMASK_OPERATORS(OperandFlag)
82 |
83 | /*! 包含 VM 提供的操作数分析结果的结构体 */
84 | typedef struct {
85 | // 通用字段
86 | OperandType type; /*!< 操作数类型 */
87 | OperandFlag flag; /*!< 操作数标志 */
88 | sword value; /*!< 操作数值(如果为立即数),或寄存器 ID */
89 | uint8_t size; /*!< 操作数大小(以字节为单位) */
90 | // 寄存器特定字段
91 | uint8_t regOff; /*!< 子寄存器在寄存器中的偏移(以位为单位) */
92 | int16_t regCtxIdx; /*!< VM 状态中的寄存器索引(如果未知则小于 0) */
93 | const char *regName; /*!< 寄存器名称 */
94 | RegisterAccessType regAccess; /*!< 寄存器访问类型(读取、写入、读写) */
95 | } OperandAnalysis;
96 |
97 | /*! 指令分析类型 */
98 | typedef enum {
99 | _QBDI_EI(ANALYSIS_INSTRUCTION) = 1, /*!< 指令分析(地址、助记符等) */
100 | _QBDI_EI(ANALYSIS_DISASSEMBLY) = 1 << 1, /*!< 指令反汇编 */
101 | _QBDI_EI(ANALYSIS_OPERANDS) = 1 << 2, /*!< 指令操作数分析 */
102 | _QBDI_EI(ANALYSIS_SYMBOL) = 1 << 3, /*!< 指令符号 */
103 | } AnalysisType;
104 |
105 | _QBDI_ENABLE_BITMASK_OPERATORS(AnalysisType)
106 |
107 | /*! 包含 VM 提供的指令分析结果的结构体 */
108 | typedef struct {
109 | // ANALYSIS_INSTRUCTION
110 | const char *mnemonic; /*!< LLVM 助记符
111 | * (注意:如果未使用 ANALYSIS_INSTRUCTION,则为 NULL)
112 | */
113 | rword address; /*!< 指令地址 */
114 | uint32_t instSize; /*!< 指令大小(以字节为单位) */
115 | CPUMode cpuMode; /*!< 指令 CPU 模式 */
116 | bool affectControlFlow; /*!< 如果指令影响控制流,则为 true */
117 | bool isBranch; /*!< 如果指令像“跳转”一样,则为 true */
118 | bool isCall; /*!< 如果指令像“调用”一样,则为 true */
119 | bool isReturn; /*!< 如果指令像“返回”一样,则为 true */
120 | bool isCompare; /*!< 如果指令是比较指令,则为 true */
121 | bool isPredicable; /*!< 如果指令包含谓词(即条件),则为 true */
122 | bool isMoveImm; /*!< 如果此指令是立即数移动(包括条件移动),则为 true */
123 | bool mayLoad; /*!< 如果 QBDI 检测到此指令为加载指令,则为 true */
124 | bool mayStore; /*!< 如果 QBDI 检测到此指令为存储指令,则为 true */
125 | uint32_t loadSize; /*!< 预期读取访问的大小,
126 | * 如果无法确定大小,则 mayLoad 可能为 true 且值为 0
127 | */
128 | uint32_t storeSize; /*!< 预期写入访问的大小,
129 | * 如果无法确定大小,则 mayStore 可能为 true 且值为 0
130 | */
131 | ConditionType condition; /*!< 与指令关联的条件 */
132 | bool mayLoad_LLVM; /*!< 0.7.1 版本中的 mayLoad */
133 | bool mayStore_LLVM; /*!< 0.7.1 版本中的 mayStore */
134 | // ANALYSIS_DISASSEMBLY
135 | char *disassembly; /*!< 指令反汇编
136 | * (注意:如果未使用 ANALYSIS_DISASSEMBLY,则为 NULL)
137 | */
138 | // ANALYSIS_OPERANDS
139 | RegisterAccessType flagsAccess; /*!< 标志访问类型(无访问、读取、写入、读写)
140 | * (注意:如果未使用 ANALYSIS_OPERANDS,则为 REGISTER_UNUSED)
141 | */
142 | uint8_t numOperands; /*!< 指令使用的操作数数量 */
143 | OperandAnalysis *operands; /*!< 包含 VM 提供的操作数分析结果的结构体
144 | * (注意:如果未使用 ANALYSIS_OPERANDS,则为 NULL)
145 | */
146 | // ANALYSIS_SYMBOL
147 | const char *symbol; /*!< 指令符号
148 | * (注意:如果未使用 ANALYSIS_SYMBOL 或未找到符号,则为 NULL)
149 | */
150 | uint32_t symbolOffset; /*!< 指令符号偏移 */
151 | const char *module; /*!< 指令模块名称
152 | * (注意:如果未使用 ANALYSIS_SYMBOL 或未找到模块,则为 NULL)
153 | */
154 | // INTERNAL
155 | uint32_t analysisType; /*!< 内部:指令分析类型
156 | * (不建议使用)
157 | */
158 | } InstAnalysis;
159 |
160 | #ifdef __cplusplus
161 | }
162 | #endif
163 |
164 | #endif // QBDI_INSTANALYSIS_H_
165 |
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI/Logs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of QBDI.
3 | *
4 | * Copyright 2017 - 2023 Quarkslab
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | #ifndef QBDI_LOGS_H_
19 | #define QBDI_LOGS_H_
20 |
21 | #include
22 | #include "QBDI/Platform.h"
23 |
24 | #ifdef __cplusplus
25 | #include
26 | #endif
27 |
28 | #ifdef __cplusplus
29 | namespace QBDI {
30 | extern "C" {
31 | #endif
32 |
33 | /*! Each log has a priority (or level) which can be used to control verbosity.
34 | * In production builds, only Warning and Error logs are kept.
35 | */
36 | typedef enum {
37 | _QBDI_EI(DEBUG) = 0, /*!< Debug logs */
38 | _QBDI_EI(INFO), /*!< Info logs (default) */
39 | _QBDI_EI(WARNING), /*!< Warning logs */
40 | _QBDI_EI(ERROR), /*!< Error logs */
41 | _QBDI_EI(DISABLE) = 0xff, /*!< Disable logs message */
42 | } LogPriority;
43 |
44 | /*! Redirect logs to a file.
45 | *
46 | * @param[in] filename the path of the file to append the log
47 | * @param[in] truncate Set to true to clear the file before append the log
48 | */
49 | QBDI_EXPORT void qbdi_setLogFile(const char *filename, bool truncate);
50 |
51 | /*! Write log to the console (stderr)
52 | */
53 | QBDI_EXPORT void qbdi_setLogConsole();
54 |
55 | /*! Write log to the default location (stderr for linux, android_logger for
56 | * android)
57 | */
58 | QBDI_EXPORT void qbdi_setLogDefault();
59 |
60 | /*! Enable logs matching priority.
61 | *
62 | * @param[in] priority Filter logs with greater or equal priority.
63 | */
64 | QBDI_EXPORT void qbdi_setLogPriority(LogPriority priority);
65 |
66 | #ifdef __cplusplus
67 |
68 | /*
69 | * C API C++ bindings
70 | */
71 |
72 | /*! Redirect logs to a file.
73 | *
74 | * @param[in] filename the path of the file to append the log
75 | * @param[in] truncate Set to true to clear the file before append the log
76 | */
77 | QBDI_EXPORT void setLogFile(const std::string &filename, bool truncate = false);
78 |
79 | /*! Enable logs matching priority.
80 | *
81 | * @param[in] priority Filter logs with greater or equal priority.
82 | */
83 | inline void setLogPriority(LogPriority priority = LogPriority::INFO) {
84 | return qbdi_setLogPriority(priority);
85 | }
86 |
87 | /*! Write log to the console (stderr)
88 | */
89 | inline void setLogConsole() { return qbdi_setLogConsole(); }
90 |
91 | /*! Write log to the default location (stderr for linux, android_logger for
92 | * android)
93 | */
94 | inline void setLogDefault() { return qbdi_setLogDefault(); }
95 |
96 | } // "C"
97 |
98 | } // QBDI::
99 | #endif
100 |
101 | #endif // QBDI_LOGS_H_
102 |
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI/Memory.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of QBDI.
3 | *
4 | * Copyright 2017 - 2023 Quarkslab
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | #ifndef QBDI_MEMORY_H_
19 | #define QBDI_MEMORY_H_
20 |
21 | #include
22 | #include
23 | #include
24 |
25 | #include "QBDI/Platform.h"
26 | #include "QBDI/State.h"
27 |
28 | #ifdef __cplusplus
29 | namespace QBDI {
30 | extern "C" {
31 | #endif
32 |
33 | /*! Memory access rights.
34 | */
35 | typedef enum {
36 | QBDI_PF_NONE = 0, /*!< No access */
37 | QBDI_PF_READ = 1, /*!< Read access */
38 | QBDI_PF_WRITE = 2, /*!< Write access */
39 | QBDI_PF_EXEC = 4 /*!< Execution access */
40 | } qbdi_Permission;
41 |
42 | /*! Map of a memory area (region).
43 | */
44 | typedef struct {
45 | rword start; /*!< Range start value. */
46 | rword end; /*!< Range end value (always excluded). */
47 | qbdi_Permission permission; /*!< Region access rights
48 | * (PF_READ, PF_WRITE, PF_EXEC).
49 | */
50 | char *name; /*!< Region name or path (useful when a region
51 | * is mapping a module).
52 | */
53 | } qbdi_MemoryMap;
54 |
55 | /*! Get a list of all the memory maps (regions) of a process.
56 | *
57 | * @param[in] pid The identifier of the process.
58 | * @param[in] full_path Return the full path of the module in name field
59 | * @param[out] size Will be set to the number of strings in the returned array.
60 | *
61 | * @return An array of MemoryMap object.
62 | */
63 | QBDI_EXPORT qbdi_MemoryMap *qbdi_getRemoteProcessMaps(rword pid, bool full_path,
64 | size_t *size);
65 |
66 | /*! Get a list of all the memory maps (regions) of the current process.
67 | *
68 | * @param[in] full_path Return the full path of the module in name field
69 | * @param[out] size Will be set to the number of strings in the returned array.
70 | *
71 | * @return An array of MemoryMap object.
72 | */
73 | QBDI_EXPORT qbdi_MemoryMap *qbdi_getCurrentProcessMaps(bool full_path,
74 | size_t *size);
75 |
76 | /*! Free an array of memory maps objects.
77 | *
78 | * @param[in] arr An array of MemoryMap object.
79 | * @param[in] size Number of elements in the array.
80 | */
81 | QBDI_EXPORT void qbdi_freeMemoryMapArray(qbdi_MemoryMap *arr, size_t size);
82 |
83 | /*! Get a list of all the module names loaded in the process memory.
84 | * If no modules are found, size is set to 0 and this function returns NULL.
85 | *
86 | * @param[out] size Will be set to the number of strings in the returned
87 | * array.
88 | *
89 | * @return An array of C strings, each one containing the name of a loaded
90 | * module. This array needs to be free'd by the caller by repetively
91 | * calling free() on each of its element then finally on the array
92 | * itself.
93 | */
94 | QBDI_EXPORT char **qbdi_getModuleNames(size_t *size);
95 |
96 | /*! Allocate a block of memory of a specified sized with an aligned base
97 | * address.
98 | *
99 | * @param[in] size Allocation size in bytes.
100 | * @param[in] align Base address alignement in bytes.
101 | *
102 | * @return Pointer to the allocated memory or NULL in case an error was
103 | * encountered.
104 | *
105 | */
106 | QBDI_EXPORT void *qbdi_alignedAlloc(size_t size, size_t align);
107 |
108 | /*! Free a block of aligned memory allocated with alignedAlloc.
109 | *
110 | * @param[in] ptr Pointer to the allocated memory.
111 | *
112 | */
113 | QBDI_EXPORT void qbdi_alignedFree(void *ptr);
114 |
115 | /*! Allocate a new stack and setup the GPRState accordingly.
116 | * The allocated stack needs to be freed with alignedFree().
117 | *
118 | * @param[in] ctx GPRState which will be setup to use the new stack.
119 | * @param[in] stackSize Size of the stack to be allocated.
120 | * @param[out] stack The newly allocated stack pointer will be returned
121 | * in the variable pointed by stack.
122 | *
123 | * @return True if stack allocation was successfull.
124 | */
125 | QBDI_EXPORT bool qbdi_allocateVirtualStack(GPRState *ctx, uint32_t stackSize,
126 | uint8_t **stack);
127 |
128 | /*! Simulate a call by modifying the stack and registers accordingly.
129 | *
130 | * @param[in] ctx GPRState where the simulated call will be setup.
131 | * The state needs to point to a valid stack for
132 | * example setup with allocateVirtualStack().
133 | * @param[in] returnAddress Return address of the call to simulate.
134 | * @param[in] argNum The number of arguments in the variadic list.
135 | * @param[in] ... A variadic list of arguments.
136 | */
137 | QBDI_EXPORT void qbdi_simulateCall(GPRState *ctx, rword returnAddress,
138 | uint32_t argNum, ...);
139 |
140 | /*! Simulate a call by modifying the stack and registers accordingly
141 | * (stdarg version).
142 | *
143 | * @param[in] ctx GPRState where the simulated call will be setup.
144 | * The state needs to point to a valid stack
145 | * for example setup with allocateVirtualStack().
146 | * @param[in] returnAddress Return address of the call to simulate.
147 | * @param[in] argNum The number of arguments in the va_list object.
148 | * @param[in] ap An stdarg va_list object.
149 | */
150 | QBDI_EXPORT void qbdi_simulateCallV(GPRState *ctx, rword returnAddress,
151 | uint32_t argNum, va_list ap);
152 |
153 | /*! Simulate a call by modifying the stack and registers accordingly
154 | * (C array version).
155 | *
156 | * @param[in] ctx GPRState where the simulated call will be setup.
157 | * The state needs to point to a valid stack for
158 | * example setup with allocateVirtualStack().
159 | * @param[in] returnAddress Return address of the call to simulate.
160 | * @param[in] argNum The number of arguments in the array args.
161 | * @param[in] args An array or arguments.
162 | */
163 | QBDI_EXPORT void qbdi_simulateCallA(GPRState *ctx, rword returnAddress,
164 | uint32_t argNum, const rword *args);
165 |
166 | #ifdef __cplusplus
167 | }
168 | }
169 | #endif
170 |
171 | #endif // QBDI_MEMORY_H_
172 |
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI/Options.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of QBDI.
3 | *
4 | * Copyright 2017 - 2023 Quarkslab
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | #ifndef QBDI_OPTION_AARCH64_H_
19 | #define QBDI_OPTION_AARCH64_H_
20 |
21 | #include
22 |
23 | #include "QBDI/Bitmask.h"
24 | #include "QBDI/Platform.h"
25 |
26 | #ifdef __cplusplus
27 | namespace QBDI {
28 | #endif
29 |
30 | typedef enum {
31 | _QBDI_EI(NO_OPT) = 0, /*!< Default value */
32 | // general options between 0 and 23
33 | _QBDI_EI(OPT_DISABLE_FPR) = 1 << 0, /*!< Disable all operation on FPU
34 | * (SSE, AVX, SIMD). May break
35 | * the execution if the target
36 | * use the FPU
37 | */
38 | _QBDI_EI(OPT_DISABLE_OPTIONAL_FPR) = 1 << 1, /*!< Disable context switch
39 | * optimisation when the target
40 | * execblock doesn't used FPR
41 | */
42 | // architecture specific option between 24 and 31
43 | _QBDI_EI(OPT_DISABLE_LOCAL_MONITOR) =
44 | 1 << 24, /*!< Disable the local monitor for instruction like stxr */
45 | _QBDI_EI(OPT_BYPASS_PAUTH) = 1 << 25, /*!< Disable pointeur authentication */
46 | _QBDI_EI(OPT_ENABLE_BTI) = 1 << 26, /*!< Enable BTI on instrumented code*/
47 | } Options;
48 |
49 | _QBDI_ENABLE_BITMASK_OPERATORS(Options)
50 |
51 | #ifdef __cplusplus
52 | }
53 | #endif
54 |
55 | #endif /* QBDI_OPTION_AARCH64_H_ */
56 |
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI/Platform.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of QBDI.
3 | *
4 | * Copyright 2017 - 2023 Quarkslab
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | #ifndef QBDI_PLATFORM_H_
19 | #define QBDI_PLATFORM_H_
20 |
21 | #include "QBDI/Config.h"
22 |
23 | #ifdef QBDI_PLATFORM_WINDOWS
24 | #define QBDI_ALIGNED(n) __declspec(align(n))
25 | #define QBDI_NOINLINE __declspec(noinline)
26 | #define QBDI_NOSTACKPROTECTOR
27 | #define _QBDI_FORCE_USE
28 | #define _QBDI_UNREACHABLE() __assume(0)
29 | #define QBDI_DISABLE_ASAN __declspec(no_sanitize_address)
30 | #define QBDI_FORCE_EXPORT __declspec(dllexport)
31 | #else
32 | #define QBDI_ALIGNED(n) __attribute__((aligned(n)))
33 | #define QBDI_NOINLINE __attribute__((noinline))
34 | #define QBDI_NOSTACKPROTECTOR __attribute__((no_stack_protector))
35 | #define _QBDI_FORCE_USE __attribute__((__used__))
36 | #define _QBDI_UNREACHABLE() __builtin_unreachable()
37 | #define QBDI_DISABLE_ASAN __attribute__((no_sanitize_address))
38 | #define QBDI_FORCE_EXPORT __attribute__((visibility("default")))
39 | #endif
40 |
41 | #ifdef QBDI_EXPORT_SYM
42 | #define QBDI_EXPORT QBDI_FORCE_EXPORT
43 | #else
44 | #define QBDI_EXPORT
45 | #endif
46 |
47 | #if defined(__has_feature)
48 | #if __has_feature(address_sanitizer)
49 | #define _QBDI_ASAN_ENABLED_
50 | #endif
51 | #endif
52 |
53 | #ifdef __cplusplus
54 | #define _QBDI_EI(X) X
55 | #else
56 | #define _QBDI_EI(X) QBDI_##X
57 | #endif
58 |
59 | #endif // QBDI_PLATFORM_H_
60 |
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI/State.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of QBDI.
3 | *
4 | * Copyright 2017 - 2023 Quarkslab
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | #ifndef QBDI_STATE_AARCH64_H_
19 | #define QBDI_STATE_AARCH64_H_
20 |
21 | #ifdef __cplusplus
22 | #include
23 | #endif
24 | #include
25 | #include
26 | #include "QBDI/Platform.h"
27 |
28 | // ============================================================================
29 | // AARCH64 Context
30 | // ============================================================================
31 |
32 | #define PRIRWORD PRIx64
33 |
34 | #define QBDI_NUM_FPR 32
35 |
36 | #ifdef __cplusplus
37 | namespace QBDI {
38 | #endif // __cplusplus
39 |
40 | /*! ARM CPU modes.
41 | */
42 | typedef enum { AARCH64 = 0, DEFAULT = 0, COUNT } CPUMode;
43 |
44 | typedef uint64_t rword;
45 | typedef int64_t sword;
46 |
47 | // SPHINX_AARCH64_FPRSTATE_BEGIN
48 | /*! ARM Floating Point Register context.
49 | */
50 | typedef struct QBDI_ALIGNED(8) {
51 | __uint128_t v0;
52 | __uint128_t v1;
53 | __uint128_t v2;
54 | __uint128_t v3;
55 |
56 | __uint128_t v4;
57 | __uint128_t v5;
58 | __uint128_t v6;
59 | __uint128_t v7;
60 |
61 | __uint128_t v8;
62 | __uint128_t v9;
63 | __uint128_t v10;
64 | __uint128_t v11;
65 |
66 | __uint128_t v12;
67 | __uint128_t v13;
68 | __uint128_t v14;
69 | __uint128_t v15;
70 |
71 | __uint128_t v16;
72 | __uint128_t v17;
73 | __uint128_t v18;
74 | __uint128_t v19;
75 |
76 | __uint128_t v20;
77 | __uint128_t v21;
78 | __uint128_t v22;
79 | __uint128_t v23;
80 |
81 | __uint128_t v24;
82 | __uint128_t v25;
83 | __uint128_t v26;
84 | __uint128_t v27;
85 |
86 | __uint128_t v28;
87 | __uint128_t v29;
88 | __uint128_t v30;
89 | __uint128_t v31;
90 |
91 | rword fpcr;
92 | rword fpsr;
93 | } FPRState;
94 | // SPHINX_AARCH64_FPRSTATE_END
95 |
96 | // SPHINX_AARCH64_GPRSTATE_BEGIN
97 | /*! ARM General Purpose Register context.
98 | */
99 | typedef struct QBDI_ALIGNED(8) {
100 | rword x0;
101 | rword x1;
102 | rword x2;
103 | rword x3;
104 | rword x4;
105 | rword x5;
106 | rword x6;
107 | rword x7;
108 | rword x8;
109 | rword x9;
110 | rword x10;
111 | rword x11;
112 | rword x12;
113 | rword x13;
114 | rword x14;
115 | rword x15;
116 | rword x16;
117 | rword x17;
118 | rword x18;
119 | rword x19;
120 | rword x20;
121 | rword x21;
122 | rword x22;
123 | rword x23;
124 | rword x24;
125 | rword x25;
126 | rword x26;
127 | rword x27;
128 | rword x28;
129 | rword x29; // FP (x29)
130 | rword lr; // LR (x30)
131 |
132 | rword sp;
133 | rword nzcv;
134 | rword pc;
135 | // ? rword daif; ?
136 |
137 | /* Internal CPU state
138 | * Local monitor state for exclusive load/store instruction
139 | */
140 | struct {
141 | rword addr;
142 | rword enable; /* 0=>disable, 1=>exclusive state, use a rword to not break
143 | align */
144 | } localMonitor;
145 |
146 | } GPRState;
147 | // SPHINX_AARCH64_GPRSTATE_END
148 |
149 | static const char *const GPR_NAMES[] = {
150 | "X0", "X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9",
151 | "X10", "X11", "X12", "X13", "X14", "X15", "X16", "X17", "X18", "X19",
152 | "X20", "X21", "X22", "X23", "X24", "X25", "X26", "X27", "X28",
153 | "X29", // FP
154 | "LR",
155 |
156 | "SP", "NZCV", "PC",
157 | };
158 |
159 | static const unsigned int NUM_GPR = 32;
160 | static const unsigned int AVAILABLE_GPR = 28;
161 | static const unsigned int REG_RETURN = 0;
162 | static const unsigned int REG_BP = 29;
163 | static const unsigned int REG_LR = 30;
164 | static const unsigned int REG_SP = 31;
165 | static const unsigned int REG_PC = 33;
166 | static const unsigned int REG_FLAG = 32;
167 |
168 | #ifdef __cplusplus
169 | #define QBDI_GPR_GET(state, i) (reinterpret_cast(state)[i])
170 | #define QBDI_GPR_SET(state, i, v) \
171 | (reinterpret_cast(state)[i] = v)
172 | #else
173 | #define QBDI_GPR_GET(state, i) (((rword *)state)[i])
174 | #define QBDI_GPR_SET(state, i, v) (((rword *)state)[i] = v)
175 | #endif
176 |
177 | #ifdef __cplusplus
178 | } // namespace QBDI
179 | #endif // __cplusplus
180 |
181 | #endif // QBDI_STATE_AARCH64_H_
182 |
--------------------------------------------------------------------------------
/app/src/main/cpp/QBDI/Version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of QBDI.
3 | *
4 | * Copyright 2017 - 2023 Quarkslab
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | #ifndef QBDI_VERSION_H_
19 | #define QBDI_VERSION_H_
20 |
21 | #include
22 | #include "QBDI/Platform.h"
23 |
24 | #ifdef __cplusplus
25 | namespace QBDI {
26 | extern "C" {
27 | #endif
28 |
29 | #define QBDI_VERSION ((0 << 16 ) | \
30 | (10 << 8 ) | \
31 | (0 << 0 ))
32 | #define QBDI_VERSION_STRING "0.10.0"
33 |
34 | #define QBDI_VERSION_MAJOR 0
35 | #define QBDI_VERSION_MINOR 10
36 | #define QBDI_VERSION_PATCH 0
37 | #define QBDI_VERSION_DEV 0
38 |
39 | #define QBDI_ARCHITECTURE_STRING "AARCH64"
40 | #define QBDI_PLATFORM_STRING "android"
41 |
42 | /*! Return QBDI version.
43 | *
44 | * @param[out] version QBDI version encoded as an unsigned integer (0xMMmmpp).
45 | * @return QBDI version as a string (major.minor.patch).
46 | */
47 | QBDI_EXPORT const char* qbdi_getVersion(uint32_t* version);
48 |
49 | #ifdef __cplusplus
50 | /*! Return QBDI version.
51 | *
52 | * @param[out] version QBDI version encoded as an unsigned integer (0xMMmmpp).
53 | * @return QBDI version as a string (major.minor.patch).
54 | */
55 | inline const char* getVersion(uint32_t* version) {
56 | return qbdi_getVersion(version);
57 | }
58 |
59 | } // "C"
60 | } // QBDI::
61 | #endif
62 |
63 | #endif // QBDI_VERSION_H_
64 |
--------------------------------------------------------------------------------
/app/src/main/cpp/demo/il2cpp-class.h:
--------------------------------------------------------------------------------
1 | #ifndef IL2CPP_CLASS
2 | #define IL2CPP_CLASS
3 |
4 | typedef uint16_t Il2CppChar;
5 | typedef uintptr_t il2cpp_array_size_t;
6 | typedef int32_t TypeDefinitionIndex;
7 | typedef int32_t GenericParameterIndex;
8 | typedef char Il2CppNativeChar;
9 |
10 | typedef struct Il2CppMemoryCallbacks Il2CppMemoryCallbacks;
11 | typedef struct Il2CppImage Il2CppImage;
12 | typedef struct Il2CppClass Il2CppClass;
13 | typedef struct Il2CppArrayBounds Il2CppArrayBounds;
14 | typedef struct Il2CppAssembly Il2CppAssembly;
15 | typedef struct Il2CppArrayType Il2CppArrayType;
16 | typedef struct Il2CppGenericClass Il2CppGenericClass;
17 | typedef struct Il2CppReflectionType Il2CppReflectionType;
18 | typedef struct MonitorData MonitorData;
19 | typedef Il2CppClass Il2CppVTable;
20 | typedef struct EventInfo EventInfo;
21 | typedef struct FieldInfo FieldInfo;
22 | typedef struct PropertyInfo PropertyInfo;
23 | typedef struct Il2CppDomain Il2CppDomain;
24 | typedef struct Il2CppException Il2CppException;
25 | typedef struct Il2CppObject Il2CppObject;
26 | typedef struct Il2CppReflectionMethod Il2CppReflectionMethod;
27 | typedef struct Il2CppString Il2CppString;
28 | typedef struct Il2CppThread Il2CppThread;
29 | typedef struct Il2CppStackFrameInfo Il2CppStackFrameInfo;
30 | typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot;
31 | typedef struct Il2CppDebuggerTransport Il2CppDebuggerTransport;
32 | typedef struct Il2CppMethodDebugInfo Il2CppMethodDebugInfo;
33 | typedef struct Il2CppCustomAttrInfo Il2CppCustomAttrInfo;
34 | typedef const struct ___Il2CppMetadataTypeHandle *Il2CppMetadataTypeHandle;
35 | typedef const struct ___Il2CppMetadataGenericParameterHandle *Il2CppMetadataGenericParameterHandle;
36 |
37 | typedef void (*Il2CppMethodPointer)();
38 |
39 | typedef void (*il2cpp_register_object_callback)(Il2CppObject **arr, int size, void *userdata);
40 |
41 | typedef void *(*il2cpp_liveness_reallocate_callback)(void *ptr, size_t size, void *userdata);
42 |
43 | typedef void (*Il2CppFrameWalkFunc)(const Il2CppStackFrameInfo *info, void *user_data);
44 |
45 | typedef size_t(*Il2CppBacktraceFunc)(Il2CppMethodPointer *buffer, size_t maxSize);
46 |
47 | typedef const Il2CppNativeChar *(*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar *);
48 |
49 | typedef void (*Il2CppLogCallback)(const char *);
50 |
51 | typedef enum {
52 | IL2CPP_UNHANDLED_POLICY_LEGACY,
53 | IL2CPP_UNHANDLED_POLICY_CURRENT
54 | } Il2CppRuntimeUnhandledExceptionPolicy;
55 |
56 | typedef enum {
57 | IL2CPP_GC_MODE_DISABLED = 0,
58 | IL2CPP_GC_MODE_ENABLED = 1,
59 | IL2CPP_GC_MODE_MANUAL = 2
60 | } Il2CppGCMode;
61 |
62 | typedef enum Il2CppStat {
63 | IL2CPP_STAT_NEW_OBJECT_COUNT,
64 | IL2CPP_STAT_INITIALIZED_CLASS_COUNT,
65 | IL2CPP_STAT_METHOD_COUNT,
66 | IL2CPP_STAT_CLASS_STATIC_DATA_SIZE,
67 | IL2CPP_STAT_GENERIC_INSTANCE_COUNT,
68 | IL2CPP_STAT_GENERIC_CLASS_COUNT,
69 | IL2CPP_STAT_INFLATED_METHOD_COUNT,
70 | IL2CPP_STAT_INFLATED_TYPE_COUNT,
71 | } Il2CppStat;
72 |
73 | typedef enum Il2CppTypeEnum {
74 | IL2CPP_TYPE_END = 0x00,
75 | IL2CPP_TYPE_VOID = 0x01,
76 | IL2CPP_TYPE_BOOLEAN = 0x02,
77 | IL2CPP_TYPE_CHAR = 0x03,
78 | IL2CPP_TYPE_I1 = 0x04,
79 | IL2CPP_TYPE_U1 = 0x05,
80 | IL2CPP_TYPE_I2 = 0x06,
81 | IL2CPP_TYPE_U2 = 0x07,
82 | IL2CPP_TYPE_I4 = 0x08,
83 | IL2CPP_TYPE_U4 = 0x09,
84 | IL2CPP_TYPE_I8 = 0x0a,
85 | IL2CPP_TYPE_U8 = 0x0b,
86 | IL2CPP_TYPE_R4 = 0x0c,
87 | IL2CPP_TYPE_R8 = 0x0d,
88 | IL2CPP_TYPE_STRING = 0x0e,
89 | IL2CPP_TYPE_PTR = 0x0f,
90 | IL2CPP_TYPE_BYREF = 0x10,
91 | IL2CPP_TYPE_VALUETYPE = 0x11,
92 | IL2CPP_TYPE_CLASS = 0x12,
93 | IL2CPP_TYPE_VAR = 0x13,
94 | IL2CPP_TYPE_ARRAY = 0x14,
95 | IL2CPP_TYPE_GENERICINST = 0x15,
96 | IL2CPP_TYPE_TYPEDBYREF = 0x16,
97 | IL2CPP_TYPE_I = 0x18,
98 | IL2CPP_TYPE_U = 0x19,
99 | IL2CPP_TYPE_FNPTR = 0x1b,
100 | IL2CPP_TYPE_OBJECT = 0x1c,
101 | IL2CPP_TYPE_SZARRAY = 0x1d,
102 | IL2CPP_TYPE_MVAR = 0x1e,
103 | IL2CPP_TYPE_CMOD_REQD = 0x1f,
104 | IL2CPP_TYPE_CMOD_OPT = 0x20,
105 | IL2CPP_TYPE_INTERNAL = 0x21,
106 | IL2CPP_TYPE_MODIFIER = 0x40,
107 | IL2CPP_TYPE_SENTINEL = 0x41,
108 | IL2CPP_TYPE_PINNED = 0x45,
109 | IL2CPP_TYPE_ENUM = 0x55,
110 | IL2CPP_TYPE_IL2CPP_TYPE_INDEX = 0xff
111 | } Il2CppTypeEnum;
112 |
113 | typedef struct Il2CppType {
114 | union {
115 | void *dummy;
116 | TypeDefinitionIndex klassIndex;
117 | const Il2CppType *type;
118 | Il2CppArrayType *array;
119 | GenericParameterIndex genericParameterIndex;
120 | Il2CppGenericClass *generic_class;
121 | } data;
122 | unsigned int attrs: 16;
123 | Il2CppTypeEnum type: 8;
124 | unsigned int num_mods: 6;
125 | unsigned int byref: 1;
126 | unsigned int pinned: 1;
127 | } Il2CppType;
128 |
129 | typedef struct MethodInfo {
130 | Il2CppMethodPointer methodPointer;
131 | } MethodInfo;
132 |
133 | typedef struct Il2CppObject {
134 | union {
135 | Il2CppClass *klass;
136 | Il2CppVTable *vtable;
137 | };
138 | MonitorData *monitor;
139 | } Il2CppObject;
140 |
141 | typedef struct Il2CppArray {
142 | Il2CppObject obj;
143 | Il2CppArrayBounds *bounds;
144 | il2cpp_array_size_t max_length;
145 | void *vector[32];
146 | } Il2CppArray;
147 |
148 | #endif
149 |
--------------------------------------------------------------------------------
/app/src/main/cpp/demo/il2cpp-tabledefs.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | /*
4 | * Field Attributes (21.1.5).
5 | */
6 |
7 | #define FIELD_ATTRIBUTE_FIELD_ACCESS_MASK 0x0007
8 | #define FIELD_ATTRIBUTE_COMPILER_CONTROLLED 0x0000
9 | #define FIELD_ATTRIBUTE_PRIVATE 0x0001
10 | #define FIELD_ATTRIBUTE_FAM_AND_ASSEM 0x0002
11 | #define FIELD_ATTRIBUTE_ASSEMBLY 0x0003
12 | #define FIELD_ATTRIBUTE_FAMILY 0x0004
13 | #define FIELD_ATTRIBUTE_FAM_OR_ASSEM 0x0005
14 | #define FIELD_ATTRIBUTE_PUBLIC 0x0006
15 |
16 | #define FIELD_ATTRIBUTE_STATIC 0x0010
17 | #define FIELD_ATTRIBUTE_INIT_ONLY 0x0020
18 | #define FIELD_ATTRIBUTE_LITERAL 0x0040
19 | #define FIELD_ATTRIBUTE_NOT_SERIALIZED 0x0080
20 | #define FIELD_ATTRIBUTE_SPECIAL_NAME 0x0200
21 | #define FIELD_ATTRIBUTE_PINVOKE_IMPL 0x2000
22 |
23 | /* For runtime use only */
24 | #define FIELD_ATTRIBUTE_RESERVED_MASK 0x9500
25 | #define FIELD_ATTRIBUTE_RT_SPECIAL_NAME 0x0400
26 | #define FIELD_ATTRIBUTE_HAS_FIELD_MARSHAL 0x1000
27 | #define FIELD_ATTRIBUTE_HAS_DEFAULT 0x8000
28 | #define FIELD_ATTRIBUTE_HAS_FIELD_RVA 0x0100
29 |
30 | /*
31 | * Method Attributes (22.1.9)
32 | */
33 |
34 | #define METHOD_IMPL_ATTRIBUTE_CODE_TYPE_MASK 0x0003
35 | #define METHOD_IMPL_ATTRIBUTE_IL 0x0000
36 | #define METHOD_IMPL_ATTRIBUTE_NATIVE 0x0001
37 | #define METHOD_IMPL_ATTRIBUTE_OPTIL 0x0002
38 | #define METHOD_IMPL_ATTRIBUTE_RUNTIME 0x0003
39 |
40 | #define METHOD_IMPL_ATTRIBUTE_MANAGED_MASK 0x0004
41 | #define METHOD_IMPL_ATTRIBUTE_UNMANAGED 0x0004
42 | #define METHOD_IMPL_ATTRIBUTE_MANAGED 0x0000
43 |
44 | #define METHOD_IMPL_ATTRIBUTE_FORWARD_REF 0x0010
45 | #define METHOD_IMPL_ATTRIBUTE_PRESERVE_SIG 0x0080
46 | #define METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL 0x1000
47 | #define METHOD_IMPL_ATTRIBUTE_SYNCHRONIZED 0x0020
48 | #define METHOD_IMPL_ATTRIBUTE_NOINLINING 0x0008
49 | #define METHOD_IMPL_ATTRIBUTE_MAX_METHOD_IMPL_VAL 0xffff
50 |
51 | #define METHOD_ATTRIBUTE_MEMBER_ACCESS_MASK 0x0007
52 | #define METHOD_ATTRIBUTE_COMPILER_CONTROLLED 0x0000
53 | #define METHOD_ATTRIBUTE_PRIVATE 0x0001
54 | #define METHOD_ATTRIBUTE_FAM_AND_ASSEM 0x0002
55 | #define METHOD_ATTRIBUTE_ASSEM 0x0003
56 | #define METHOD_ATTRIBUTE_FAMILY 0x0004
57 | #define METHOD_ATTRIBUTE_FAM_OR_ASSEM 0x0005
58 | #define METHOD_ATTRIBUTE_PUBLIC 0x0006
59 |
60 | #define METHOD_ATTRIBUTE_STATIC 0x0010
61 | #define METHOD_ATTRIBUTE_FINAL 0x0020
62 | #define METHOD_ATTRIBUTE_VIRTUAL 0x0040
63 | #define METHOD_ATTRIBUTE_HIDE_BY_SIG 0x0080
64 |
65 | #define METHOD_ATTRIBUTE_VTABLE_LAYOUT_MASK 0x0100
66 | #define METHOD_ATTRIBUTE_REUSE_SLOT 0x0000
67 | #define METHOD_ATTRIBUTE_NEW_SLOT 0x0100
68 |
69 | #define METHOD_ATTRIBUTE_STRICT 0x0200
70 | #define METHOD_ATTRIBUTE_ABSTRACT 0x0400
71 | #define METHOD_ATTRIBUTE_SPECIAL_NAME 0x0800
72 |
73 | #define METHOD_ATTRIBUTE_PINVOKE_IMPL 0x2000
74 | #define METHOD_ATTRIBUTE_UNMANAGED_EXPORT 0x0008
75 |
76 | /*
77 | * For runtime use only
78 | */
79 | #define METHOD_ATTRIBUTE_RESERVED_MASK 0xd000
80 | #define METHOD_ATTRIBUTE_RT_SPECIAL_NAME 0x1000
81 | #define METHOD_ATTRIBUTE_HAS_SECURITY 0x4000
82 | #define METHOD_ATTRIBUTE_REQUIRE_SEC_OBJECT 0x8000
83 |
84 | /*
85 | * Type Attributes (21.1.13).
86 | */
87 | #define TYPE_ATTRIBUTE_VISIBILITY_MASK 0x00000007
88 | #define TYPE_ATTRIBUTE_NOT_PUBLIC 0x00000000
89 | #define TYPE_ATTRIBUTE_PUBLIC 0x00000001
90 | #define TYPE_ATTRIBUTE_NESTED_PUBLIC 0x00000002
91 | #define TYPE_ATTRIBUTE_NESTED_PRIVATE 0x00000003
92 | #define TYPE_ATTRIBUTE_NESTED_FAMILY 0x00000004
93 | #define TYPE_ATTRIBUTE_NESTED_ASSEMBLY 0x00000005
94 | #define TYPE_ATTRIBUTE_NESTED_FAM_AND_ASSEM 0x00000006
95 | #define TYPE_ATTRIBUTE_NESTED_FAM_OR_ASSEM 0x00000007
96 |
97 | #define TYPE_ATTRIBUTE_LAYOUT_MASK 0x00000018
98 | #define TYPE_ATTRIBUTE_AUTO_LAYOUT 0x00000000
99 | #define TYPE_ATTRIBUTE_SEQUENTIAL_LAYOUT 0x00000008
100 | #define TYPE_ATTRIBUTE_EXPLICIT_LAYOUT 0x00000010
101 |
102 | #define TYPE_ATTRIBUTE_CLASS_SEMANTIC_MASK 0x00000020
103 | #define TYPE_ATTRIBUTE_CLASS 0x00000000
104 | #define TYPE_ATTRIBUTE_INTERFACE 0x00000020
105 |
106 | #define TYPE_ATTRIBUTE_ABSTRACT 0x00000080
107 | #define TYPE_ATTRIBUTE_SEALED 0x00000100
108 | #define TYPE_ATTRIBUTE_SPECIAL_NAME 0x00000400
109 |
110 | #define TYPE_ATTRIBUTE_IMPORT 0x00001000
111 | #define TYPE_ATTRIBUTE_SERIALIZABLE 0x00002000
112 |
113 | #define TYPE_ATTRIBUTE_STRING_FORMAT_MASK 0x00030000
114 | #define TYPE_ATTRIBUTE_ANSI_CLASS 0x00000000
115 | #define TYPE_ATTRIBUTE_UNICODE_CLASS 0x00010000
116 | #define TYPE_ATTRIBUTE_AUTO_CLASS 0x00020000
117 |
118 | #define TYPE_ATTRIBUTE_BEFORE_FIELD_INIT 0x00100000
119 | #define TYPE_ATTRIBUTE_FORWARDER 0x00200000
120 |
121 | #define TYPE_ATTRIBUTE_RESERVED_MASK 0x00040800
122 | #define TYPE_ATTRIBUTE_RT_SPECIAL_NAME 0x00000800
123 | #define TYPE_ATTRIBUTE_HAS_SECURITY 0x00040000
124 |
125 | /*
126 | * Flags for Params (22.1.12)
127 | */
128 | #define PARAM_ATTRIBUTE_IN 0x0001
129 | #define PARAM_ATTRIBUTE_OUT 0x0002
130 | #define PARAM_ATTRIBUTE_OPTIONAL 0x0010
131 | #define PARAM_ATTRIBUTE_RESERVED_MASK 0xf000
132 | #define PARAM_ATTRIBUTE_HAS_DEFAULT 0x1000
133 | #define PARAM_ATTRIBUTE_HAS_FIELD_MARSHAL 0x2000
134 | #define PARAM_ATTRIBUTE_UNUSED 0xcfe0
135 |
136 | // Flags for Generic Parameters (II.23.1.7)
137 | #define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_NON_VARIANT 0x00
138 | #define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_COVARIANT 0x01
139 | #define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_CONTRAVARIANT 0x02
140 | #define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_VARIANCE_MASK 0x03
141 | #define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_REFERENCE_TYPE_CONSTRAINT 0x04
142 | #define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_NOT_NULLABLE_VALUE_TYPE_CONSTRAINT 0x08
143 | #define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_DEFAULT_CONSTRUCTOR_CONSTRAINT 0x10
144 | #define IL2CPP_GENERIC_PARAMETER_ATTRIBUTE_SPECIAL_CONSTRAINT_MASK 0x1C
145 |
146 | /**
147 | * 21.5 AssemblyRefs
148 | */
149 | #define ASSEMBLYREF_FULL_PUBLIC_KEY_FLAG 0x00000001
150 | #define ASSEMBLYREF_RETARGETABLE_FLAG 0x00000100
151 | #define ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG 0x00008000
152 | #define ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG 0x00004000
153 |
--------------------------------------------------------------------------------
/app/src/main/cpp/demo/il2cpp_dumper.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Mrack on 2024/4/30.
3 | //
4 |
5 | #ifndef XPOSEDNHOOK_IL2CPP_DUMPER_H
6 | #define XPOSEDNHOOK_IL2CPP_DUMPER_H
7 |
8 | #include
9 | #include
10 | #include