首页
社区
课程
招聘
[旧帖] [原创]优先体验IDA6.2 SEH 0.00雪花
发表于: 2012-3-16 05:19 3017

[旧帖] [原创]优先体验IDA6.2 SEH 0.00雪花

2012-3-16 05:19
3017
最近想查看DDraw的实现思路时发现:IDA6.1竟然不能正确反编译DD_Surface_UpdateOverlay的函数(也就是IDirectDrawSurface::UpdateOverlay的实现代码)
原因是IDA 对堆栈指针分析错误。

结合上下并通过查看本站文这篇文章《【求助】如何让IDA正确分析: __EH_prolog 函数? 》猜测可能,应该是IDA对SEH前导代码片段的分析出了问题。《手册》的说法是“Edit”->"Functions"->"Change Stack Pointer",但是我现在对SEH的原理不甚了解,不知道到底该如何修正ESP值。
所以只好希望新版本IDA能修正这个BUG,进入官网,下载到最新6.2试用版。
安装使用后,调试,发现真的修正了。


但是不能反编译,缺少那个插件嘛。
从IDA6.1中拷贝过来,发现不能用,执照错误。

根据字符串"sorry,this copy of decompliler can be used only with IDA"在OD中相关的模块中搜索,知道是hexrays.plw模块中的调用。
分析代码知道是1708EB90处函数被调用导致了检查了IDA的执照。不匹配则显示上面的提示框,并返回插件初始化失败,进而无法使用。
所以NOP掉调用到此处的函数(只有一处)。
OD保存。
结果成功。可以看到DD_Surface_UpdateOverlay的伪代码了,感觉IDA6.2的分析速度快了很多。

感觉现在做软件不加壳,就相当于裸奔。但是貌似大公司都大气,我不开源,但是欢迎你去逆向我的代码。
呵呵。
最后送上我修改了hexrays.plw.其他相关文件请从IDA6.1文件夹下复制。

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
堆栈分析错误可以自己手工调整的
2012-3-16 05:32
0
雪    币: 4324
活跃值: (4838)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
我说了的不会嘛,请赐教,谢谢。
2012-3-16 06:00
0
雪    币: 1644
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持....
2012-3-16 08:17
0
雪    币: 2329
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
IDA都出到6.2了!
2012-3-16 10:43
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
挺好,不错,赞
2012-3-16 10:45
0
雪    币: 4324
活跃值: (4838)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
2012-3-16 19:17
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好资料,谢谢
2014-6-12 18:40
0
游客
登录 | 注册 方可回帖
返回
//