做逆向调试的小伙伴应该都遇到过这种问题:在同时使用两大神器OD(或Windbg)和IDA逆向某程序时,调试中模块基址经常变化,而在IDA中默认为0x400000(或0x10000000),所以在调试到某个点想到IDA整体对比分析一下的时候,发现计算地址真的好麻烦,特别时在经常需要计算的时候,这个问题尤为明显。
通常步骤是:
打开calc.exe,切换到程序员项
复制当前地址0xD60F00D,复制模块基址0x5200000,算出偏移0x840f00d
复制IDA中对应模块基址0x10000000,加上刚才的偏移得到对应在IDA中地址,g跳转到对应地址
下次又要算一次,重复复制基址,减偏移,加偏移,如此往复。
特色功能
支持回车快速计算
支持windbg 64位地址格式,如00007ff6`6cbe825b
支持多窗口多模块计算
支持32位、64位地址
自动判断是否为16进制数据,支持0x,h标记,如果是12345之类纯数字无法判断,最好直接勾选16进制选框
支持10进制和16进制快速转换(也支持回车快速计算哦!)
描述一次典型使用场景:
复制调试中模块基址粘贴到基址(调试)框
复制IDA中模块基址粘贴到基址(IDA)框
复制调试中某地址粘贴到地址1(或地址2)
回车,得到对应IDA中地址1(或地址2)以及偏移1(或偏移2)
再次计算该模块其他地址,只需要重复3、4即可
如果从IDA地址计算到调试中,复制IDA地址到对应地址框,回车即可
如果还需要计算其他模块地址转换,点+按钮新增窗口,重复1-6即可
如果开窗口太多,在模块标记栏填入模块名字,防止混乱出错