微信用CE打开微信进程,不断扫码,测试基址。

724C7184,下断点运行。

使用Cheat Engine定位微信二维码地址-Nomar

发现该二维码不能正常显示,感觉就是基址了。

od教程电子书:下载地址

提取码:d81g

od反编译码:lock xadd dword ptr ds:[0x724c7184],esi

使用Cheat Engine定位微信二维码地址-Nomar

LOCK:这是一个指令前缀,在所对应的指令操作期间使此指令的目标操作数指定的存储区域锁定,以得到保护。

XADD:先交换两个操作数的值,再进行算术加法操作。多处理器安全,在80486及以上CPU中支持。

DWORD: 双字 就是四个字节。

PTR:pointer (既指针)得缩写。汇编里面 ptr 是规定 的 字 (既保留字),是用来临时指定类型的。

ESI/EDI 分别叫做"源/目标索引寄存器"(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串.

更通俗说法:

ESI:(SI is source index)ESI称为源变址寄存器,通常存放要处理的数据的内存地址。

EDI:(DI is destination index.)EDI称为目的变址寄存器,通常存放处理后的数据的内存地址。

OD界面介绍:

使用Cheat Engine定位微信二维码地址-Nomar

DEC 自减1

OD常用快捷键:

F2:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。(相当于 SoftICE 中的 F9)

F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到 CALL 等子程序不进入其代码。(相当于 SoftICE 中的 F10)

F7:单步步入。功能同单步步过(F8)类似,区别是遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。(相当于 SoftICE 中的 F8)

F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停。(相当于 SoftICE 中的 F7)

F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。(相当于 SoftICE 中的 F5)

CTR+F9:执行到返回。此命令在执行到一个 ret (返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。(相当于 SoftICE 中的 F12)

ALT+F9:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空。(相当于 SoftICE 中的 F11)

上面提到的几个快捷键对于一般的调试基本上已够用了。要开始调试只需设置好断点,找到你感兴趣的代码段再按 F8 或 F7 键来一条条分析指令功能就可以了。