小时候很萌 发表于 2018-3-1 14:55

申请会员ID:小时候很萌

申请ID:小时候很萌个人邮箱:cssxn@qq.com
原创技术文章:分析微信PC版客户端消息撤销功能




========================= 正文 =========================


微信PC版本:2.6.1

1. 定位关键模块

下载好微信windows客户端,登陆后使用x64dbg附加调试,附加的进程选择"wchat.exe"



附加成功后,默认暂停在系统断点,在反汇编窗口,右键菜单:搜索->所有模块->字符串





搜索完成后,在下面搜索框的地方,输入字符串:"revoke",来过滤相关的字符串,revoke中文的意思是"撤回"。


可以看到搜索出来了很多含有"revoke"这个英文单词相关的字符串,但是大部分字符串在"winchatwin.dll"这个模块中,所以推测这个模块里面有撤回消息相关的功能





2. 对wechatwin.dll模块的字符串下断点


进入wechatwin模块领口,有两种方法

[*]第一种:在刚才所有模块的字符串搜索结果中,双击一个wechat模块相关的字符串,自动切换到wechatwin模块的反汇编窗口
[*]第二种:选择符号菜单,然后在左侧筛选一下wechatwin,筛选后双击wechatwin.dll,自动切换到wechatwin.dll模块的反汇编窗口





进入wechatwin模块领口的反汇编窗口后,右键菜单:搜索->当前模块->字符串





搜索完成后,在下面重新过滤与revoke相关的字符串,然后右键菜单:在所有命令上设置断点



断点设置好以后,按F9,可以让软件跑起来了!


用另一个微信号,给当前调试的微信号发送消息,再撤回消息,被调试的微信客户端会断下来





经过调试发现,大概断了3次,停到这个地方的时候,可以看到上面有条汇编指令je跳转,改成jne可以直接绕过这块的代码执行,即可绕过客户端消息撤回的操作。


修改完成后,保存patch模块的时候,会提示该文件正在占用,可以先把dll复制一份,patch给蓝本





效果:










3.反调试


调试微信的时候,可能不小心触发反调试,微信会自动关闭,然后弹出窗口





然后超过3次就会提示让你下载最新的微信客户端,重新安装微信。





之前通过火荣剑监控进程名称,然后筛选监控日志,可以发现微信客户端会写入一个配置文件





打开配置文件可以看到里面有记录crash次数达到5次的时候,就会提示让你重新安装微信,我们把crash次数改成0就可以打开微信了










Hmily 发表于 2018-3-2 11:20

抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

ps:你这个内容为怎么好像在哪见过?另外那个地方要么nop要么jmp,你改反向跳转可能适得其反,最后的崩溃是因为发调试?

恶意进程 发表于 2018-3-2 17:24

马上10周年开放注册了,支持吾爱,加油吾爱。。。。。。。。
页: [1]
查看完整版本: 申请会员ID:小时候很萌