能力值:
( LV2,RANK:10 )
|
-
-
2 楼
你这个是没办法实现的,只能开两个ollydbg调试 A.exe调试B.exe 通常是用命令行来传递数据进行初始化 命令行参数拷一下,在另一个ollydbg以相同的参数运行B.exe B.exe运行后如果要和A.exe通讯,那么通常是读取文件方式或者是内存共享 各下个断点就可以获取数据调试了
|
能力值:
( LV3,RANK:30 )
|
-
-
3 楼
用gflag去设置,当B进程启动的时候,调试器自动附加
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
在Ollydbg菜单下Option/Just-in-Time debugging中设置OD为即时调试器.将B.exe 的入口改为CC然后,记住原指令。此时直接运行A.exe其会调用B.exe,运行到INT3指令会异常,这时Ollydbg会启动,然后恢复原指令,继续调试就可以了。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
jit不会每次都成功 可以去到程序的入口点改一改jmp循环 让eip一直在原地循环 然后用调试器去附加
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
A调用B一般通过命令行传参数,可以像B注入一个dll,获取B执行时的命令行参数,然后OD里面设置命令行启动B,就可以调试B了 //LPWSTR *szArglist; //int nArgs; //int i; //FILE *fp = fopen("D:\\debuglog.txt", "w"); //szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs); //if (szArglist == NULL) //{ // MessageBox(NULL,"failed","提示", MB_ICONERROR); //} //else //{ // for (i = 0; i < nArgs; i++) // { // fprintf(fp, "%ws", szArglist[i]); // } // LocalFree(szArglist); // fclose(fp); //}
拿到命令行后,在dbg或者OD里面直接复制参数 启动B
最后于 2021-12-2 11:03
被aimhack编辑
,原因:
|
能力值:
( LV9,RANK:140 )
|
-
-
7 楼
之前调试word的公式编辑器程序,需要在EQNEDT32.EXE程序启动时挂到调试器上,使用如下方式
要调试子进程,采用修改注册表的方式来调试EQNEDT32.EXE程序。需要设置注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\EQNEDT32.EXE,如果没有此项,就新建一个。设置如下: 你这边可以新建一项 名称为 B.EXE,设置一个Debugger,是字符串,然后输入od的路径即可
|
能力值:
( LV1,RANK:0 )
|
-
-
8 楼
chinarenjf
在Ollydbg菜单下Option/Just-in-Time debugging中设置OD为即时调试器.将B.exe 的入口改为CC然后,记住原指令。此时直接运行A.exe其会调用B.exe,运行到I ...
启动了一个新的ollydbg窗口,但是显示"OllyDbg is unable to attach to process 0000204C as a "just in time" debugger"
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
是不是同时有两个调试器在调试B.EXE,检查下。
|
能力值:
( LV1,RANK:0 )
|
-
-
10 楼
用了chinarenjf和0346954的方法,可以了。谢谢大家了
|
|
|