PC微信hook --获取登录二维码地址

PC微信hook --获取登录二维码地址

说明

记录逆向学习,基于微信2.6.8.51,易语言,用到工具有CE,Ollydbg,汇编转易语言工具。仅供学习,有人感兴趣在发下一篇吧,下一篇获取实时消息call。

获取登录二维码

首先打开CE附加微信,附加后搜索IHDR(png头部声明,不懂的自行了解,另一种思路搜二维码网络地址,经实践没有这种快。)
校正地址-c,显示出 png。(指针地址一般不变(除非多重指针,但是一般比较少),数据地址会变(经验),所以不能随便切换二维码,否则找不出)
地址比较多时,可以根据刷新二维码来筛选地址,筛选剩下几个之后,迅速搜出指针(因为指针不变),再用读二维码的工具读指针看是否正确。
在这里插入图片描述
在这里插入图片描述
根据找出来的指针地址,来找偏移,用od附加
在这里插入图片描述
dd找出来的指针地址

在这里插入图片描述
写入断点(内存写入,当内存被改写的时候调用该断点。(只可以下一个(好像是cpu断点)))
扫码,改变刷新二维码,找出刷新二维码的call,用读二维码的工具辅助
在这里插入图片描述
边F8边看二维码有没有刷新出来,找出call
在这里插入图片描述
刷新出来说明就是这个call
下面找偏移在这里插入图片描述
看这一步的寄存器,最接近二维码指针的地址(寄存器传值,一般)。图中是ESI最接近,然后算出ESI和地址的偏移(因为后面hook就传这个esi的参数过来)ESI-03E62EE0=4B0
再找call和被call函数的偏移(根据当前模块的基址来找,后面会获取模块基址)在这里插入图片描述
点e找到当前模块基址
在这里插入图片描述
计算出call的偏移和被call的偏移
606D19D2 E8 D984C900 call WeChatWi.61369EB0
基址60580000
call偏移=606D19D2 -60580000=1519D2
被call偏移=61369EB0-60580000=DE9EB0
在这里插入图片描述
根据偏移读出图片
其中置入的汇编为
pushad (备份寄存器)
push esi esi入栈(传参,根据具体找偏移的寄存器写)
call label1(图中就是调用回调地址里传过去的子程序(第二维码地址)esi就是传的参数)
label1:(占位符,调用hookpro回调子程序)
popad (恢复寄存器)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值