今天在 看雪论坛 上看到有一个人提议希望x64dbg添加上两个小功能. 如下图:
提了两个小建议, 一个是内存操作大小显示, 这个cpudbg已经有了.
另一个是显示立即数的问题.(之前写反汇编的时候就想到了,一直没有处理,今天既然遇到了,就实现了吧.)
如果你够细心的话,你就会发现, od有的时候显示是完整的HEX, 但有的时候, 又是显示DEC.
OD1.X(我记得默认od1.x是不显示0x的,应该是某个插件加上的.)
ODX64
OD到底是何时显示HEX, 何时显示DEC呢?想知道完全不用去逆,我们只需用折半法,就能知道他转换的值是多少.
我们先输入 CMP EAX, 0xFFFFFFFF 看它会不会转换. 看它转换了,我们再 输入 CMP EAX, 0xFFF0FFFF, 以此类推.
试个几轮就能确定 OD直到 输入 CMP EAX, 0xFFFFC000, 还是会转换, 但如果再小一个值,
输入 CMP EAX, 0xFFFFBFFF, 就不会转换了. 那我们就找到这个阈值了. 就是 0xFFFFC000
我们只需要拿 0x1 0000 0000 减去 0xFFFFC000 得到 0x400, 也正是WINDOWS上的一个分页的大小.
知道了阈值, 想实现个一样的功能也就简单了.
同样我试了ODX64, 也是一样的阈值.
于是我就随手将OD的立即数显示功能,加上去了 :)
当功能写好后,我测试od2.x的时候,发现了一处显示没有转换的地方,应该算是BUG吧.
OD2.X未转换BUG
|