【逆向】PC微信获取二维码基址


CE文本搜索IHDR

黑色地址下拉全部 右键  更改 智能编辑   填 -c

找到地址打开不是 模块+偏移的地址,那个就是我们需要的

然后4字节 16进制 搜索 地址

出现第一个地址就是成功

0291E724 这个就是我们要找的二维码地址


然后去OD ,左下角  dd + 地址     进到这个地址,然后下断点

之后再去微信界面重新获取一次二维码,当即将更新二维码的时候程序会被断下


一步步断点

当执行到这个call之后 ,二维码就能正常显示,这是二维码处理完毕的call,我们需要hook这里

地址              特征码                汇编代码

6A511829    E8 325AD200     call WeChatWi.6B237260                   ; hook这里啊


在看右边寄存器

esi 地址是 029AFDF4

二维码指向地址是  029AFDF4

双击左边地址,变成箭头,【OD有点小毛病,有时候会提示不能读取内存,等一会就可以了】

在右边的寄存器  

点击esi的数据,右键数据窗口跟随

数据窗口跟随后

esi地址 和 二维码指向地址相等 ,所以不需要在进行计算

esc + 0 = 二维码地址


现在我们计算 hook的偏移,我们在这可以看到这里是调用了wechatWi.dll 模块   所以我们在od按字母E进入模块窗口,找到这个模块,复制模块基址

二维码模块基址 69FA0000

6A511829    E8 325AD200     call WeChatWi.6B237260                   ; hook这里啊

hook偏移 =  最左边地址 - 模块基址 = 6A511829 - 69FA0000=571829

现在我们用这个图里面的   WechatWi.6B237260   来获取call的偏移

6B237260   - 模块基址 = 偏移 

6B237260 - 69FA0000 = 1297260

所以总结上面,我们一共得到了  

二维码指向地址 = esi地址  = 029AFDF4

二维码模块基址 69FA0000

hook偏移  571829

call偏移  1297260