首页
社区
课程
招聘
问一个debugapi的问题:
发表于: 2007-3-11 20:34 4960

问一个debugapi的问题:

2007-3-11 20:34
4960
我想做一个内存注册机,下面不知道哪里错了:
先创建一个进程,然后DebugActiveProcess,在要中断的地址插入cc,中间省略,到最后为什么用GetThreadContext得到的寄存器数据不对?DebugActiveProcessStop之后被调程序错误退出:下面是错误信息:
AppName: wordtoexe7.0.exe         AppVer: 7.0.0.0         ModName: msvbvm60.dll
ModVer: 6.0.97.82         Offset: 000e60d2
好像程序已经错误退出,请各位帮忙看看

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
2
使用API不对,目的不太明确,你是要做个Loader吧?可参考一些教程,论坛搜索一下,应该有你可参考的例子。懒的就。。。随便随便

if CreateProcess()== true
while WaitForDeubgEvent(DebugEvent, INFINITE)==true
{
do Case (dwDebugEventCode)-> do ExceptionCode==EXCEPTION_BREAKPOINT-> do your work
ContinueDebugEvent();
}
2007-3-12 08:39
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
呵呵,谢谢楼上,我的目的就是想做一个load,做一个内存注册机,地址424461,字节FF,我的流程和你的一样,只是在DebugActiveProcess后,我在要停的地方(424461)插入一个int3,想让程序执行在424461时候发生cc异常,然后判断异常地址是不是424461(我用的ExceptionAddress==424461),如果是就停下来,取各个寄存器的值,可是取出来寄存器的值都不是我要的,我已经用od调试知道我的注册码在eax,用我做的load取出来的是错的,然后我用DebugActiveProcessStop后,程序就异常退出了
2007-3-12 11:21
0
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
4
你是在eip为424461有异常的吗?
跟od中调试的话, context的差别除了eax其他差别大不?
最好能把寄存器多贴出来对比。

你debugactiveprocessstop前是不是恢复了ff。
2007-3-14 15:43
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
谢谢楼上,是在eip为424461有异常,在这里有异常的时候取得寄存器值跟我在od里面的都不一样,在debugactiveprocessstop之前我也恢复了ff,是不是被调试程序已经崩溃了?停止调试就异常退出
00424461      FF15 78124000 call    dword ptr [<&MSVBVM60.__vbaStrMo>
我取得的eip是42446200,应该是00424461才对
2007-3-14 16:34
0
游客
登录 | 注册 方可回帖
返回
//