微信转发器!记录我的从零开始的hook之路!

前言

由于**女朋友**有时给我发送消息无法及时回复,女朋友会生气!
工作和个人需求,我有2部手机3个微信,得把工作生活都划分清楚嘛。
虽然每个微信都有女朋友的号,但是女人急起来是不和你讲道理的。
有时候发给微信A,恰好我带了微信B去吃饭,这样就无法回复了,所以我要做一个微信转发器。
**产生自我需求,是促使自我学习的必须条件!**

明确需求目的

明确我需要达到什么效果?我需要学习什么?
  • 由于我微信A常年PC在线,我要在PC微信进行开发
  • 要及时回复,那我得实时读取消息,那只能hook!不会,我要学习hook!
  • 要能回复所有消息,但是发现并不能!由于我后期使用转发来处理。
  • 因为大多数视频都是c++教程,所以我还得学C++。

难度有点大,我没有系统学习过C C++,只会python(因工作学的)。我只能耐心看源码!

思考:那我要不要先学C,要不要先学C++,要不要先学汇编?
搞事:先吃起来,缺醋加醋,缺盐加盐,缺辣椒加辣椒。

学习记录

  1. 7.22 周4,风和日丽的一天,搜一搜教程!@侃遍天下无二人 就看他的教程吧
    毕竟dll怎么添加的,都说到了,真详细!适合我!
    先完成获取消息吧。
  2. 7.23 周5,大太阳的一天,学习了一天获取微信个人信息,真好完成。
  3. 7.24 周6,认真工作。回家在撸了教程3,学习二维码,这小伙子说得不太好,还是百度看看其他的吧。搞定
  4. 7.25 周7,半摸鱼的上班。看看接收消息hook教程,5,还是去B站原视频看看吧,说得不错。
  5. 7.26 周1,发送消息怎么hook,都说得有点懵了,B站搜搜@Hellmessage,这个教程比较新,思路从调试日志开始,不错。
  6. 7.27 周2,摸鱼上班。
  7. 7.28 周3,发送消息的char* wcha_t wstring 结构体 等等 搞晕了。放弃去打球。
  8. 7.29 周4,打球、王者荣耀上分。
  9. 7.30 周5,终于搞定,我的微信转发器开始。
    开搞!
    原本思路:接收信息 》》 再发送消息
    偶尔看到 ,改变思路

微信HOOK 关于转发消息功能开发的一些开发心得
新思路:通过转发功能,这样我就不需要再搞发送图片、表情、文字、名片===
转发过程:右键单击-选择转发-选择转发人-点击发送

糟糕,没有转发的教程。先看看相关的教程吧 。和发送名片、xml信息比较相近。
搞到半夜,放弃~,找不到转发点。

  1. 7.31日 周6,雨,摸鱼上班开搞。一步步跟。找到了。
    分析发现 一个消息id 一个看上去是句柄 一个接受人id。
    猜测是写入数据库,再取出消息id。
    那我要先找找句柄了,搜索 微信hook 数据库
  • 先看他们教程,找数据库句柄。居然没有代码!上github,竟然都是广告、没有数据库操作的源码。没错!没有源码的我,一无是处!
  • 终于找到了赵庆明@zmrbak系列的教程。看看他的教程,视频教程被下架了
  • 还是多搜搜吧 ,写得比较高深,不适合我看再搜搜。看雪的@freeGod有数据库的操作教程,很详细,用的还是赵老师的源码。
  • 试试微信句柄靠谱不靠谱,sqlite_exec 不对我得从微信找这个,不会找,得到一个仁兄提示。
    虽然提示了,但是还是报错啊。放弃~

PC微信逆向分析の绕过加密访问SQLite数据库
pc版微信 数据库备份(5)外挂程序编写确定hook位置
【大学】有事直说看到就回复(xxxxxx)
’ FF 75 14 FF 55 10 83 C4 10 特征码所在的位置的CALL就是了
还有就是找关键字符串 PRAGMA 这个的下面基本都是

  1. 8.1 周7 放弃,打球。
  2. 8.2 周1 还是再试试,直接先试试微信转发hook吧。照着其他源码,终于写了一份转发hook源码。注入运行靠谱!分析发现这个好像edx不是句柄 指向了微信资源的一个数据。猜测为微信资源。放弃句柄思路。进入下一步找消息id。
    通过转发端口的id,预知下一个消息id,直接上CE搜索,下个内存写入断点。
    一顿查找.,转不出去啊。
    分析:微信id并不是写入数据库才有的,那么他旁边肯定有相关的消息内容。
    找啊找,找不到放弃。
    王者荣耀,上分
  3. 8.3 周2 我看看日志输出。还用试试微信调试日志吧,一顿hook下来输出日志。神奇发现消息id正在其中,下断点,直接定位。完事。试试读取内容吧,又是一顿搜索c++读内存地址、转换的。
  4. 8.4 周3 直接实现了初步转发call,糟糕这个转发竟然只有文字 emoj标签 ,聊天最多的图片、表情包(微信的)没有啊,(自行添加的)表情图片也没有啊。
    肯定是我的延迟。上c++多线程延时执行转发,不行。
  5. 8.5 周4 找不到打算放弃,晚上突然发现。
    在这里插入图片描述
    淦!淦!淦!
    随即把(自行添加表情)新下载处理好,图片搞定完事。
    在完成主要代码的过程中,也涉及了c++函数引用==

结论:多看教程,多动脑,多动手,多分析,多搜索。 有时候方向比努力更重要!

说说功能

在这里插入图片描述

支持的

  1. 支持转发文字、表情、自行添加的表情、照片、名片、地理位置、小程序、文章
  2. 可填两个转发号,如果填自己的,就可以“跨网聊天”了。

已知缺点

  1. 填写微信号太麻烦,有时候显示的微信号不一定是对。如显示对方微信号为AAAAA1000,但实际上在微信中是wxid_xxxx格式。
  2. 关闭窗口就没了
  3. 最小化占用着,看着不爽。
  4. 使用太麻烦了

可拓展点

  1. 增加遍历微信好友二叉树hook点,直接选择。解决第一个问题。
  2. 增加自己的exe+dll作为注入器和界面使用。需要解决通信。解决234。

适用版本

微信3.3.0.115

结语

感谢各位@侃遍天下无二人@Hellmessage@zmrbak 等等相关热心回复的网友。
感谢对求助帖回答的各位大佬。

使用方法

使用dll注入器注入使用。
链接: RemoteDLL(dll注入器).
dll下载地址:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值