jni调用
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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];
|
||||||
|
|||||||
Reference in New Issue
Block a user