目標:
我想檢索行程加載的動態庫的檔案路徑。
我的代碼:
struct task_dyld_info dyld_info;
mach_msg_type_number_t count = TASK_DYLD_INFO_COUNT;
struct dyld_image_info dyld_image_info;
char path[PATH_MAX];
if (task_info(task, TASK_DYLD_INFO, (task_info_t) & dyld_info, & count) == KERN_SUCCESS) {
printf("dyld_all_image_infos: %p\n", dyld_info.all_image_info_addr);
printf("%d\n", dyld_info.all_image_info_size);
struct dyld_all_image_infos * dyld_all_image_infos = (struct dyld_all_image_infos * ) dyld_info.all_image_info_addr;
for (int i = 0; i < dyld_all_image_infos -> infoArrayCount; i ) {
dyld_image_info = dyld_all_image_infos -> infoArray[i];
printf("%s\n", dyld_image_info.imageFilePath);
if (dyld_image_info.imageFilePath != NULL) {
if (strstr(dyld_image_info.imageFilePath, "GameCore_XP2.dll") != NULL) {
printf("Found GameCore_XP2.dll\n");
printf("%s\n", dyld_image_info.imageFilePath);
printf("%p\n", dyld_image_info.imageLoadAddress);
}
}
}
}
不幸的是,Xcode 在運行時給了我以下錯誤:“Thread 1: EXC_BAD_ACCESS (code=1, address=0x4002e2804002d54)”

uj5u.com熱心網友回復:
根據https://gist.github.com/xcxcxc/989018646b1f0f2f31f0873a32c4a658,您需要使用vm_read來獲取該資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/421223.html
標籤:
