jni调用

This commit is contained in:
jiqiu2021
2024-10-28 22:20:58 +08:00
parent fd5799cc95
commit be5208409d
3 changed files with 16 additions and 12 deletions

View File

@@ -5,6 +5,6 @@
#ifndef ZYGISK_IL2CPPDUMPER_GAME_H #ifndef ZYGISK_IL2CPPDUMPER_GAME_H
#define ZYGISK_IL2CPPDUMPER_GAME_H #define ZYGISK_IL2CPPDUMPER_GAME_H
#define AimPackageName "com.sankuai.meituan" #define AimPackageName "com.tencent.mobileqq"
#endif //ZYGISK_IL2CPPDUMPER_GAME_H #endif //ZYGISK_IL2CPPDUMPER_GAME_H

View File

@@ -89,18 +89,18 @@ void load_so(const char *game_data_dir, JavaVM *vm, const char *soname) {
} }
// 查找 JNI_OnLoad 并调用 // 查找 JNI_OnLoad 并调用
void (*JNI_OnLoad)(JavaVM *, void *); // void (*setupSignalHandler)();
*(void **) (&JNI_OnLoad) = dlsym(handle, "JNI_OnLoad"); // *(void **) (&setupSignalHandler) = dlsym(handle, "setupSignalHandler");
if (JNI_OnLoad) { //
LOGI("JNI_OnLoad symbol found, calling JNI_OnLoad."); // if (setupSignalHandler) {
JNI_OnLoad(vm, NULL); // LOGI("setupSignalHandler symbol found, calling setupSignalHandler.");
} else { // setupSignalHandler(); // 调用找到的函数
LOGE("JNI_OnLoad symbol not found in %s", new_so_path); // } else {
} // LOGE("setupSignalHandler symbol not found in %s", new_so_path);
// }
} }
void hack_start(const char *game_data_dir,JavaVM *vm) { void hack_start(const char *game_data_dir,JavaVM *vm) {
load_so(game_data_dir,vm,"test"); load_so(game_data_dir,vm,"test");
} }
std::string GetLibDir(JavaVM *vms) { std::string GetLibDir(JavaVM *vms) {

View File

@@ -25,7 +25,11 @@ public:
void preAppSpecialize(AppSpecializeArgs *args) override { void preAppSpecialize(AppSpecializeArgs *args) override {
auto package_name = env->GetStringUTFChars(args->nice_name, nullptr); auto package_name = env->GetStringUTFChars(args->nice_name, nullptr);
auto app_data_dir = env->GetStringUTFChars(args->app_data_dir, nullptr); auto app_data_dir = env->GetStringUTFChars(args->app_data_dir, nullptr);
LOGI("preAppSpecialize %s %s", package_name, app_data_dir); // if (strcmp(package_name, AimPackageName) == 0){
// args->runtime_flags=8451;
// }
LOGI("preAppSpecialize %s %s %d", package_name, app_data_dir,args->runtime_flags);
preSpecialize(package_name, app_data_dir); preSpecialize(package_name, app_data_dir);
env->ReleaseStringUTFChars(args->nice_name, package_name); env->ReleaseStringUTFChars(args->nice_name, package_name);
env->ReleaseStringUTFChars(args->app_data_dir, app_data_dir); env->ReleaseStringUTFChars(args->app_data_dir, app_data_dir);
@@ -47,7 +51,7 @@ private:
size_t length; size_t length;
void preSpecialize(const char *package_name, const char *app_data_dir) { void preSpecialize(const char *package_name, const char *app_data_dir) {
if (strcmp(package_name, AimPackageName) == 0) { if (strcmp(package_name, AimPackageName) == 0||strcmp(package_name, "com.tencent.mobileqq:MSF") == 0) {
LOGI("成功注入目标进程: %s", package_name); LOGI("成功注入目标进程: %s", package_name);
enable_hack = true; enable_hack = true;
_data_dir = new char[strlen(app_data_dir) + 1]; _data_dir = new char[strlen(app_data_dir) + 1];