首页
论坛
课程
招聘
[已解决] 跟踪一个exe调用另一个exe 200.00雪花
2021-12-1 15:25 8086

[已解决] 跟踪一个exe调用另一个exe 200.00雪花

2021-12-1 15:25
8086

我用ollydbg跟踪一个A.exe,该程序调用了另一个B.exe,我想调试的是B.exe,我怎么能让B.exe的代码出现在ollydbg中?A.exe是要向B.exe发数据的。我勾选了ollydbg最新版的option选项里的Debug child processes,可是还不行呢。本人不是学计算机的,哪位大侠帮帮忙?


【看雪培训】目录重大更新!《安卓高级研修班》2022年春季班开始招生!

收藏
点赞0
打赏
分享
最新回复 (9)
雪    币: 1806
活跃值: 活跃值 (419)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wonghouleong 活跃值 2021-12-2 09:36
2
0
你这个是没办法实现的,只能开两个ollydbg调试
A.exe调试B.exe 通常是用命令行来传递数据进行初始化
命令行参数拷一下,在另一个ollydbg以相同的参数运行B.exe
B.exe运行后如果要和A.exe通讯,那么通常是读取文件方式或者是内存共享
各下个断点就可以获取数据调试了
雪    币: 5860
活跃值: 活跃值 (1030)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
TopC 活跃值 2021-12-2 09:38
3
0
用gflag去设置,当B进程启动的时候,调试器自动附加
雪    币: 3197
活跃值: 活跃值 (773)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chinarenjf 活跃值 2021-12-2 10:27
4
0
在Ollydbg菜单下Option/Just-in-Time debugging中设置OD为即时调试器.将B.exe 的入口改为CC然后,记住原指令。此时直接运行A.exe其会调用B.exe,运行到INT3指令会异常,这时Ollydbg会启动,然后恢复原指令,继续调试就可以了。
雪    币: 2950
活跃值: 活跃值 (1159)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 活跃值 2021-12-2 10:36
5
0
jit不会每次都成功 可以去到程序的入口点改一改jmp循环 让eip一直在原地循环 然后用调试器去附加
雪    币: 213
活跃值: 活跃值 (92)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aimhack 活跃值 2021-12-2 11:01
6
0

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编辑 ,原因:
雪    币: 4609
活跃值: 活跃值 (1955)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
0346954 活跃值 2 2021-12-2 17:23
7
0

之前调试word的公式编辑器程序,需要在EQNEDT32.EXE程序启动时挂到调试器上,使用如下方式 要调试子进程,采用修改注册表的方式来调试EQNEDT32.EXE程序。需要设置注册表项: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\EQNEDT32.EXE,如果没有此项,就新建一个。设置如下:

你这边可以新建一项 名称为 B.EXE,设置一个Debugger,是字符串,然后输入od的路径即可

雪    币: 203
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_sinigoau 活跃值 2021-12-3 12:15
8
0
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"
雪    币: 3197
活跃值: 活跃值 (773)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chinarenjf 活跃值 2021-12-4 10:02
9
0
是不是同时有两个调试器在调试B.EXE,检查下。
雪    币: 203
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_sinigoau 活跃值 2021-12-6 10:02
10
0
用了chinarenjf和0346954的方法,可以了。谢谢大家了
游客
登录 | 注册 方可回帖
返回