微信插件之护妻宝(微信自动回复机器人)1

前介

更多精彩文章,点这里

现如今最常用的 交工具是什么呢是 ,不得不说现在的微信不在简简单单是一个 交程序,它已经和我们生活紧密相关了。

做为一个程序员要的是什么呢p>

但是做为一个程序员没日没夜的敲代码,经常没有时间回复女朋友的微信或者。

做为一个资深的程序员,怎么能被这种小挫折打败呢要用程序的去维护我们的 因此我要开发一款自动回复女朋友消息的微信插件。

你的 再也不能打断你 丶 丶 ,让你的 和机器人聊吧(维护家庭和谐)!

  1. 自动回复高情商话术
  2. 微信无感知回复,在后台也不能遗漏回复
  3. 开关设置,能指定自动回复的娇妻(我们的娇妻可不止一个)
  4. 热修复,兼容多版本微信
  5. 找到女朋友

方案定制

我个人习惯,再开发之前,先做准备。把思路屡清楚事半功倍。

  1. 自动回复高情商话术

我的第一想法是先去下载类似 的 ,然后逆向其接口,接入我们的程序。

然后找到了 图灵机器人 ,提供完整的聊天机器人 ,并且话术还是很精湛的,因此果断注册开发中账 。

  1. 微信无感知回复,后台也不能遗漏回复

这种没有很好的办法,因为要想在后台回复,只能想办法向微信注入我们的代码(也就是说我们的代码要在微信的进程中运行,在专业点就是我们要想办法拿到微信的 )。

我的方案还是使用 框架 + 实现免 注入。

如何开发 插件,请参看本人文章 参考链接

  1. 开关设置,能指定自动回复的娇妻(我们的娇妻可不止一个)

逆向分析微信的聊天界面,找一个合适的地方,通过 注入一个开关按钮。这个难点是分析微信代码,并且寻找到的 代码尽量保证版本兼容(我不希望微信版本更新,就要重新发布或安装插件)。

这里补充下,为啥要 点尽量保证版本兼容呢说白了就是寻找微信没有混淆的点做入口。为啥呢一旦微信版本升级,肯定会再次混淆。若你 点是混淆的,那若微信版本升级,若要兼容新版本必定要从新寻找混淆后新的 点(我们可不得不到微信混淆后的 mapping 文件)。

  1. 热修复,兼容多版本微信

在第 点我讲过,尽量寻找没有混淆的点做 ,但是若死活寻找不到没有混淆的 点呢只能想办法进行动态修复插件了,让用户无感知使用,我提供的方案是通过 去修复 点代码。
这套技术方案我在曾经在我的项目 微信语音助手 使用过(以停止维护),具体方案看下图。

开始敲代码

都准备好啦,接下来我们开始

接下来创建上图中所提到的入口类。

寻找消息 Hook 点

其实寻找 点就是一个细心的活,我们要在微信的代码海中去寻找合适的 点,寻找尽量没有混淆的 点。

如何能尽量快速找到呢文章篇幅问题,请 参考 鄙人文章。

最终通过不断的断点,分析,看源码,找到了一个非常好的 点。这个流程非常的长,我就不细讲了。具体如何逆向丶断点丶分析代码教程可以 参考 此文章。

部分核心代码,如下:

来看看效果:

在分析过程中我一直想寻找没有混淆的发消息 点,我找了很久,也想尽了所有的办法,包括构造上面的开关按钮 点 对象,通过调用 的方法。

我这里就跑题下,我当时想寻找到一个合适的微信发消息的 点(没有混淆的点),顺便给大家分享下我当时巧夺天工的想法

思路很简单,我通过遍历 寻找到消息输入框,然后调用 设置文本,然后在寻找 按钮,在调用其 方法。

然后查看微信 源码,在其构造方法中看到了。

接下来只需要递归遍历,寻找到消息输入框的 对象。

在开发过程中我发现个优化点,现在我们是通过递归查找到了,输入框 对象,本来还需要通过递归查找发送按钮的 对象,这样效率有点低,但是突然我想到了输入框,按回车也能发消息,因此从新去看了下微信代码,如下图:

妈的,既然无效,不应该啊。接下里我断点看了下,发送按钮的点击事件方法。

死的心都有了,这个 对象又被混淆了,还是不行啊!回头我又想了想,腾讯微信这种大厂怎么可能将 层和逻辑层代码写在一起呢p>

最终这种方案我还是放弃了,花费了这么长的篇幅讲这个,只是给大家提供一个思路,有时候我们可以通过这种手段去 ,虽然微信不适用不代表,其他应用不适用,我曾经分析过 聊天工具就用的这种方案。

总结

当前效果

微信插件之护妻宝(微信自动回复机器人)1

补充

我是用我公司的 360分身大师X版 做的免 使用 (微信版本是7.0.7哦)。

代码仓库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年11月2日
下一篇 2019年11月2日

相关推荐