我已經做了一個自簽名的代碼協同設計 - 但不知道爲什麼vm_write失敗(我使用10.6.6)vm_write回報(OS /克恩)地址無效
試圖找出什麼是缺少讓它工作 - 我很感謝這個問題的一些幫助。
#include <mach/vm_map.h>
#include <mach/mach_traps.h>
#include <mach/mach_error.h>
int main (int argc, const char * argv[])
{
//get the task for PID
kern_return_t err;
int pid = 73002; // PID of process in the system
mach_port_name_t t;
err = task_for_pid(mach_task_self(), pid, &t);
if(0 != err)
{
printf("task_for_pid : %s",mach_error_string(err));
}
vm_address_t address;
vm_size_t size = 108;
err = vm_allocate(t,&address,size,TRUE);
if(0 != err)
{
printf("vm_allocate : %s",mach_error_string(err));
}
vm_offset_t data = pid;
mach_msg_type_number_t dataCnt = sizeof(pid);
err = vm_write(t,address,data,dataCnt);
if(0 != err)
{
printf("vm_write : %s",mach_error_string(err));
}
return 0;
}
更新:
自簽名的代碼協同設計---我已經生成系統證書和用於協同設計。
vm_write返回(OS /克恩)無效的地址(返回值是 「1」)
你的問題沒有意義。 「自嘆號代碼嘆氣」是什麼意思? –
另外,'vm_write'返回的錯誤是什麼? – DarkDust
@Rob Keniger有錯別字 - 我已更新該帖子。 –