首页
社区
课程
招聘
[求助][求助]软件创建新进程问题
发表于: 2010-6-24 07:12 8462

[求助][求助]软件创建新进程问题

2010-6-24 07:12
8462
今天调试了一软件,发现软件在启动过程中会创建一个新进程,然后验证等工作都是在新进程中完成了,怎样能在启动时断下这个新进程?用附加的方式不行,因为他要在启动时验证。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 359
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
新进程的exe入口点改int3保存,将OD设为默认调试器,OD里面不能设置传递int3。
启动软件,新进程会出错,问你要不要调试,点调试OD就附加进去了,这时再把入口的int3改回来。如果F9还是不能正常运行,可以先F7或F8一次将这次的int3异常过掉。
2010-6-24 09:07
0
雪    币: 284
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢指点,我先试试!
2010-6-24 14:10
0
雪    币: 284
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
刚才试了,没成功,在什么时机用OD载入启动的进程?
2010-6-24 15:03
0
雪    币: 284
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
上传下程序,帮看看是什么原因?
2010-6-24 15:29
0
雪    币: 284
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
大体明白了,他是把自己做成了一个服务来启动的,在服务里点启动就可以启动程序了,怎样来调试这个服务?
2010-6-24 15:46
0
雪    币: 359
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
貌似没有什么好方法调试服务程序,不过或许可以直接跟踪调试。
先到服务管理里面看一下该服务器有没有参数,把参数加上直接扔OD里面,下断StartServiceCtrlDispatcher,去MSDN查这个函数,断下后可以到栈上面根据指针得到回调函数地址,伪造该回调函数的参数,直接把EIP设置到此函数入口。下断RegisterServiceCtrlHandler,断下后,正常运行的话会返回非0,但是现在是强制手段,应该是返回0,不过这是一个表示服务状态的句柄,可以强制改为非零,然后下断SetServiceStatus,它会传入刚才强制修改的那个句柄值作参数,强制修改其返回值为非0,这样在程序退出前,下面运行应该都没有问题了(退出时有问题也不用管它了)。
2010-6-25 10:06
0
雪    币: 260
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
镜像劫持。。。。。。
2010-6-25 11:46
0
雪    币: 156
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
注册表有个地方可以设进程的调试器吧,然后用windbg吧,od调不了ring0服务的
2010-6-25 18:25
0
雪    币: 496
活跃值: (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
静态分析
同问
对于利用svchost.exe、Rundll32.exe启动的dll,如何动态调试?
2010-6-25 22:16
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习啦,嘿嘿!
2010-7-23 15:55
0
游客
登录 | 注册 方可回帖
返回
//