大多数的逆向分析人士还是喜欢在XP下进行一系列的分析共做,我也是比较喜欢XP的兼容性和稳健型。但是在除此之外的时间用的基本都是Windows 7 64bit的系统,因为对于32位的XP来说,8G的内存已经成了浪费,虽然偶尔还是会切换到XP下,但是也只能识别2.3G的内存,由于平时不怎么用也就不关心这个鸟系统到底能识别多少内存了。在看雪学院有篇文章是关于如何让xp支持大内存的,但是我的测试效果是直接让膝系统分区表挂掉,于是后来也就懒得试了~
但是在Win7 64位的系统下进行调试会出现诸多的问题,比如上图就是很明显的例子,这个东西和Ollydbg 1.1遇到的状况是一样的。详细可以参考这篇文章:《OllyDbg v1.10 And Wow64》 。至于原理文章中已经解释的很清楚了,着了也就没有必要进行详细的说明了。
其实问题的代码就是下图的一行:
对此waliedassar 大牛也给出了详细的解释,文章地址:http://waleedassar.blogspot.tw/2012/03/ollydbg-v110-and-wow64.html 。这里简单的引用说明一下,免得还得到处跳转:
The original instruction “OR DWORD PTR[EBX+0xC0],0x100” sets the trap flag (EBX points at the CONTEXT structure and at offset 0xC0 is the EFLAGS). The asm code block in the first image above is related to activating Debug Registers. I can’t find any good reason why Olly sets the trap flag when activating Debug Registers.
OllyDbg v1.10 and Immunity Debugger v1.85 share the same bug, while OllyDbg v2.0 is not affected.
OllyDbg is not subject to ASLR as it does not have the “IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE” flag set in the “Dll Characteristics” field of its PE header.
其实出现这个问题倒是不难解释,因为Immdbg的代码就是在Ollydbg的代码上进行的二次开发,但是不幸的是开发的时候没有把这个问题fix掉,于是就延续到了现在。
其实补丁的代码和Od的是一样的,只需要编译一个支持Immdbg的插件就可以了,安装插件之后程序就可以正常加载了:
技术总是在发展,固步自封也不是很么好事,现在很多的游戏已经抛弃了xp,但是却还有很多的人在xp下开发调试。哈哈,这句是废话,
最后关键的来了,猛击此处下载该插件,目前支持的版本为1.85.其余的没有测试,应该不支持~
9 comments
我只是进来瞄瞄火星话是怎样的,没指望看懂。哼。
嗯嗯,其实呢,火星话就是这҉个҉样҉纸҉滴҉。不҉但҉好҉玩҉,还҉好҉看҉。嘎҉嘎҉
博主,你之前有下载到看雪上面发布的IDA6.1这个程序吗?(http://bbs.pediy.com/showthread.php?t=139967&highlight=ida)。我想下载来用一下,谁知道链接过期了,当时下载的都不知道在哪了?如果你有下载的话,能不能麻烦你给我发送一份,先谢谢了。
怎么发不出去了呢?博主,你之前下载过看雪上面的IDA6.1吗?(链接是:http://bbs.pediy.com/showthread.php?t=139967&highlight=ida)。我想下载来用一下,但是里面的链接失效了,如果你有下载的话,能不能麻烦你上传一份?谢谢。
怎么发不出去了呢?难道是不能发外链?博主,你之前下载过看雪上面的IDA6.1吗?我想下载来用一下,但是里面的链接失效了,如果你有下载的话,能不能麻烦你上传一份?谢谢。
有连接的都被过滤了,这个东西还有地方有下载地址吧。密码:www.h4ck.ws http://dl.vmall.com/c0krtbbmqi
非常感谢帮忙,以前在看雪下过了,不过不记保存哪了,真是郁闷,再次感谢你的帮忙,谢谢。
不客气撒,最好自己往网盘里存一份,免得别人删除了或者地址挂了没法下载。