能力值:
( LV2,RANK:10 )
|
-
-
2 楼
解决了第一个问题:使用VirtualProtectEx API函数设置内存的读写等属性。
以下是设置内存不可写的部分代码:
DWORD dwPID = 0;
dwPID = Plugingetvalue(VAL_PROCESSID);
if (dwPID == 0)
{
Addtolist(0, 1, "[SetWriteAccess] Failed to get process id");
return 1;
}
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, dwPID);
if (!hProcess)
{
Addtolist(0, 1, "[SetWriteAccess] Failed to OpenProcess");
return 1;
}
DWORD dwOldFlag = 0;
BOOL bRst = VirtualProtectEx(hProcess, ea1, mem_len, PAGE_EXECUTE_READWRITE, &dwOldFlag);
if (!bRst)
{
Addtolist(0, 1, "[SetWriteAccess] Failed to disable write access");
return 1;
}
解决第二个问题,我是通过extc void _export cdecl ODBG_Pluginmainloop(DEBUG_EVENT *debugevent) 来做的,里面有个while循环等待异常,可惜没有成功,最终放弃了。原因是:启动OD,完全死掉了一样,唉
哪位给点意见吧,谢谢了
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
自己顶
是不是太简单了
|
能力值:
(RANK:330 )
|
-
-
4 楼
参考 odbgscript source
|
|
|