0
通過NSCreateObjectFileImageFromMemory函數從內存加載包是可能的。有沒有人有這方面的成功經驗?有沒有人有工作樣本這個功能? 我的代碼:從內存加載和執行包
text srcPath = "/Applications/TextEdit.app/Contents/MacOS/TextEdit";
data_t data;
data.loadFromFile(srcPath);
void *addr;
kern_return_t err;
NSObjectFileImage img = nil;
NSObjectFileImageReturnCode dyld_err;
err = vm_allocate(mach_task_self(), (vm_address_t *)&addr,
data.length(), true);
if(err == 0)
{
//err = vm_write(mach_task_self(), (vm_address_t)addr,
//(vm_address_t)(char*)data, data.length());
memcpy(addr, (char*)data, data.length());
if(err == 0)
dyld_err =
NSCreateObjectFileImageFromMemory(addr, data.length(), &img);
// error is NSObjectFileImageFailure
}
的IMG變量爲空(錯誤是NSObjectFileImageFailure)。爲什麼?
謝謝。
謝謝,我也已經創建了一個由XCode(具有.bundle擴展名)的簡單包,但沒有成功。 – 2012-08-03 13:08:06
好吧,我檢測到問題,1. MH_BUNDLE文件可以加載,並且2. loader和bundle都應該具有相同的體系結構(32位或64位)。 – 2012-08-03 13:39:32