看雪论坛
发新帖
13

[原创]自己动手恢复显示OllyICE数据栏地址偏移

不问年少 2017-3-20 20:49 535

一、问题的起源

从看雪首页下载OllyICE1.1,分别加载调试记事本,发现原版OD数据窗口双击会显示地址偏移,而OllyICE双击却无反应。

    

    这个双击显示地址偏移的功能非常实用,这么好的功能为什么OllyICE里面给去掉了呢?我真想不通。难不成为了使用这个功能我得另外下载其它修改版的OD?不行!我不喜欢那种被改得面目全非的OD,害得我强迫症又犯了!我必须要把它分析明白。

二、分析OD显示偏移功能

   在OD的汇编窗口、堆栈窗口双击地址,都可以显示$+偏移量,那说明可能都是同一个功能函数调用。怎么分析呢?可以用OllyICE加载原版OD(原版OD加载记事本),这样就开始测试吧:

    

    

    双击原版OD数据窗口地址,OllyICE中立即断下了,来到这里:


    F8向下单步走,在这里我主要关心的是它的消息处理函数在哪里:

    向下走一会,不远处就发现一个Tablefunction调用。这名字很是可疑,应该看看:

    顺着流程继续走,看来离目标不远了:

 

    好了,终于来到了鼠标双击消息的处理处:

    看来这里就是其发送显示地址偏移的地方了。此处是调用SendMessage发送自定义消息,lParam为双击的行,wParam为双击时相对于行首的字符偏移数。至于它是如何画出$和计算偏移的,我就不关心了。这里主要是摸清它处理双击时的一个消息流程。那么为什么OllyICE双击没有反应呢,很可能就是因为消息没有走到此处来。

    好了,是时候让原版OD调试OllyICE了!(原版OD笑了,小样,也该让我来调戏调戏你了!)主要是找出为什么OllyICE中这个“表格函数”会没反应。用原版OD加载OllyCEOllyICE加载记事本。(记事本:我冤枉啊,为什么次次都让我来垫底!)然后同样用上面的消息断点。


    被断下来以后,来到这里,发现有个“三连跳”,第一个还是无条件跳转,这难道就是它绕过了“表格函数”?为验证这一点,先不打草惊蛇,继续顺着原路向下走走看:

看来0x425E57处的无条件跳转应该是造成双击不显示偏移的罪魁祸首。直接NOP掉吧!不行!!!NOP以后左下的数据窗口无响应了。怎么办?唉,还得拿原版OD来看,重点关注0x425E57处的代码。(原版OD:你干脆折腾死我算了!)不过这一次可以不用加载记事本了(记事本:555~,直接CTRL+G到指定地址处。


  

 原版OD里面0x425E57处的代码为cmp eax,200,是进入到一个select分支。而OllyICE1.1中却是直接跳转后最终转入了默认处理。

 知道了原因了就好处理了。因为原版OD没有Dump插件,只好用OllyICE加载自己进行处理。(OllyICE:我错了,我自己动手解决!)


修改此处无条件转移为原版的比较语句,然后用dump插件进行处理:

运行DUMP后的OllyICE,最后一次加载记事本。(记事本:我已的泪已干,不哭了!)双击数据窗口地址栏,看到偏移终于恢复了:

    大功告成!谢谢记事本兄弟的鼎力支持。有了这个功能,调试时计算地址方便多了!

上传的附件:
本主题帖已收到 0 次赞赏,累计¥0.00
最新回复 (8)
hxsoft 2017-3-20 21:28
2
大牛能附1个修改后的ollyice.exe文件吗?
13
不问年少 2017-3-20 21:51
3
hxsoft 大牛能附1个修改后的ollyice.exe文件吗?
我也是菜鸟。我加上了修改后的附件OllyICE。
Diabloking 2017-3-20 22:47
4
为什么要DMUP? 右键 --> copy to executable --> save file 不就好了吗
Kisesy 2017-3-20 23:37
5
这个我也改过,也是这样改的,不过忘记怎么找的了,奇怪
13
不问年少 2017-3-21 08:24
6

Diabloking 为什么要DMUP? 右键 --> copy to executable --> save file 
嗯,有这个选项。也可以这样。

ssarg 2017-3-21 13:48
7
不用OD2.0吗
13
不问年少 2017-3-21 14:30
8
ssarg 不用OD2.0吗
感觉2.0没有1.1好用
lzgking 2017-5-1 21:29
9
谢谢楼主分享    终于知道原理了
返回



©2000-2017 看雪学院 | Based on Xiuno BBS | 知道创宇带宽支持 | 微信公众号:ikanxue
Time: 0.013, SQL: 11 / 京ICP备10040895号-17