【逆向】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