首页
社区
课程
招聘
新手对rjjjj crackme3的疑问及一些问题
2006-9-6 14:54 4469

新手对rjjjj crackme3的疑问及一些问题

2006-9-6 14:54
4469
这是rjjjj的原文链接
http://bbs.pediy.com/showthread.php?s=&threadid=8155
有以下疑问
1.原文破除SetUnhandledExceptionFilter干扰调试是直接把call SetUnhandledExceptionFilter换成jmp到处理异常的位置,但是之前push了一个参数,直接jmp这个堆栈不会有问题吗?
2.跟踪时发现前第一次异常时会由004024D0处理,但后还会多次回来这儿来,在异常处理中又异常了,为什么会又回到了这个异常处理函数?什么时候跳出的?为此我想监视fs:[0],怎么对这个寄存器下断点呢?又比如怎么对eax,ebx的读写下断点?
3.最后顺便请教一个问题,某块内存开始未分配,如何对那块内存下写入的断点?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
打赏
分享
最新回复 (5)
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
riijj 7 2006-9-6 16:13
2
0
1. 这是我的错误,那个 push 可以不要   (这篇文章是很久以前,很多内容我都忘了)

2. 当异发生,没有 SHE 处理的话, windows 便把它掉到 unhandled exception handler 去

对缓存器 register 本身的断点,应该没有了

3. 是不是要对特别的位置下断点 ?  
如果是对一个内存区块下断,可以在 OD 的 Memory 里,选了内存区块后按 F2,整片区块变红色

希望对你有帮助
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zheng 2006-9-6 18:20
3
0
呵呵,多谢版主热心解答,我正在看你的教程,打扰了.
第三个问题不是这样,某块内存一开始未分配,查看内存什么都没有啊.

另外,另一个网友问你的问题我也顺便能问你一下,你写了一个函数

void godie()
{
  __asm push -1;
  __asm ret -1;

}

我是用vc编译的,结果函数前后多了无数修饰性成分,比如以上的代码,会自动创建栈桢什么的.有什么办法让编译器不修饰,call godie是直接就跳到你的 __asm push -1上执行?
雪    币: 1325
活跃值: (502)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
dreaman 11 2006-9-6 20:53
4
0
最后这个问题是函数没有加__declspec(naked)修饰的原因,加了之后VC就不会生成那些代码了。
void __declspec(naked) godie()
{
  __asm push -1;
  __asm ret -1;
}
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
riijj 7 2006-9-6 23:31
5
0
最初由 zheng 发布
呵呵,多谢版主热心解答,我正在看你的教程,打扰了.
第三个问题不是这样,某块内存一开始未分配,查看内存什么都没有啊.

另外,另一个网友问你的问题我也顺便能问你一下,你写了一个函数

........


你的 vc 编译时,使用 debug profile 或是 release profile  ?
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zheng 2006-9-6 23:46
6
0
多谢dreaman,问题解决了.
也多谢rjjjj,我一开始都是debug的,发布了才release不管怎么样,用__declspec( naked ) 修饰一下就不会有多余的代码了
游客
登录 | 注册 方可回帖
返回