Исправил получение базового адреса
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#include <cstring>
|
||||
#include <cstdio>
|
||||
#include <android/log.h>
|
||||
#include <jni.h>
|
||||
#include <thread>
|
||||
#include <chrono>
|
||||
#include "main.h"
|
||||
#include "util/util.h"
|
||||
#include <link.h>
|
||||
#include <unistd.h>
|
||||
|
||||
// Callback для dl_iterate_phdr
|
||||
static int find_libapp_callback(struct dl_phdr_info *info, size_t size, void *data) {
|
||||
if (strstr(info->dlpi_name, "libapp.so")) {
|
||||
libapp = (void *) info->dlpi_addr;
|
||||
return 1; // Останавливаем перебор
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) {
|
||||
// Ищем libapp.so
|
||||
dl_iterate_phdr(find_libapp_callback, NULL);
|
||||
|
||||
if (libapp) {
|
||||
__android_log_print(ANDROID_LOG_INFO, "MyLib", "libapp.so base: %p", libapp);
|
||||
} else {
|
||||
__android_log_print(ANDROID_LOG_ERROR, "MyLib", "libapp.so not found!");
|
||||
return JNI_ERR;
|
||||
}
|
||||
|
||||
return JNI_VERSION_1_6;
|
||||
}
|
||||
Reference in New Issue
Block a user