前言

近期要针对微信聊天记录进行分析和拦截,通过xposed工具制作成机器人回复系统。

为此对整个的微信代码结构分析了一遍,找到了核心的消息记录类-sql工具类。

分析过程

收到消息->写入数据库

针对整个拦截,首先从界面的ui入手 。

从对方消息发送 再到消息通知 再到界面显示红点 再到打开界面框读取消息。

整个的过程最终走向的就是数据存储。

也就是微信在第一时间收到消息并储存到了sql记录里面。

清晰的知道了:

收到消息==写入数据库

数据库操作类

按照经验 db 就是和数据库相关的包名和类。正好微信没有混淆该部分的包名路径,很容易的找到了一个路径

com.tencent.wcdb.database

明眼人一瞧 这不就是所谓的数据库操作类

SQLiteDatabase

管他呢,先把他的方法全部勾上测试

拦截数据库HOOK测试

我们用 XposedBridge.hookAllMethods()
com.tencent.wcdb.database.SQLiteDatabase的所有相关方法勾上去测试 在所有的方法里面打印

而且很明显有个方法名字叫插入数据 重点的关注他

public Operation<Long> onDatabaseInserted(@NotNull Object thisObject, @NotNull String table, @Nullable String nullColumnHack, @Nullable ContentValues initialValues, int conflictAlgorithm, @Nullable Long result) {if (table == "message") {LogXUtils.e("New Message:"+initialValues);}return null;}

启动hook 消息发送

果然所有的消息写入都经过了这个所谓的Inserted方法

编写机器人插件

基于之前的hook逻辑,我们把hook主体放到我们的微信群里面。

因为大多数情况下 我们都想做一个管理微信群的机器人。

本机处理or后台处理

如果单纯的把机器人相关的逻辑都插入到hook模块的本身 后期更新维护逻辑都比较麻烦 我建议是要搭个后台,转发群聊天并且返回机器人应答逻辑。

整体的逻辑就像这样:

微信群消息->机器人后台->应答返回消息->发送回微信群消息

后台搭建

碍于篇幅这里不细说,大家可以参考我的项目地址

消息回复

说的机器人 除了理解消息还有核心的部分就是消息回复。这部分将在下一部分里面说到。

项目地址

https://github.com/HuRuWo/WeChatSimpleBot

微信机器人_微信聊天消息记录拦截分析相关推荐

  1. php 微信机器人_微信小程序机器人自动客服功能

    现在微信小程序在开发中比较流行,本文就教大家一种微信新功能:客服机器人的小程序,这个小程序也可以做其他类型的自动客服程序,在olami平台加上相应的问题和答案,就可以了. 整个小程序界面包含2个部分, ...

  2. 微信开发SDK使用教程--手机微信好友发来聊天消息通知服务端

    微信开发SDK使用教程--手机微信好友发来聊天消息通知服务端 case FriendTalkNotice: {// 微信好友发来聊天消息 log.debug("socket:msgtype= ...

  3. 微信发单机器人_微信多客服系统SDK通信接口

    淘宝客微信发单机器人微信多客服系统SDK通信接口定义 手机客户端上传的通知类消息 (删除了没用的) 8.手机客户端微信上线通知 9.手机客户端微信下线通知 10.微信个人号新增好友通知 11.微信个人 ...

  4. 微信app清空群聊天消息的方法

    微信app是一款非常好用的社交软件,这款软件给用户提供了很多实用的功能,包括聊天功能.生活缴费.朋友圈等,极大的方便了我们的生活.我们在使用这款软件的时候,常常会加入一些群聊,并且在群中进行聊天,这样 ...

  5. 微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)

    1.点评 对于IM系统来说,如何做到IM聊天消息离线差异拉取(差异拉取是为了节省流量).消息多端同步.消息顺序保证等,是典型的IM技术难点. 就像即时通讯网整理的以下IM开发干货系列一样: <I ...

  6. 微信技术分享:微信的海量IM聊天消息序列号生成实践(容灾方案篇)

    1.引言 在本文的上篇<微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)>中介绍了微信的消息序列号生成器 seqsvr 的算法原理.架构核心思想,以及 seqsvr 随着业 ...

  7. delphi 企业微信消息机器人_nodeJS实现企业微信机器人每天定时发消息实例 定时任务...

    nodeJS实现企业微信机器人每天定时发消息实例 背景 由于企业微信办公需要,"每天定时推送某消息用来提醒群里面所有人或者部分人",于是决定用企业微信自带的机器人来实现此功能,来代 ...

  8. python微信定时发消息_Python开发企业微信机器人每天定时发消息实例

    由于办公需要"每天定时推送某消息用来提醒群里面所有人",有同事提议用企业微信自带的机器人来实现此功能.我觉得企业微信的这个工具还不错,具体使用方法我来一一讲述. 企业微信API 企 ...

  9. python实现微信自动发信息_Python实现企业微信机器人每天定时发消息实例

    1.背景 由于办公需要"每天定时推送某消息用来提醒群里面所有人",于是决定用企业微信自带的机器人来实现此功能.具体方法我来一一讲述. 2.企业微信API 3.想法 想到几种方式: ...

最新文章

  1. 闪退怎么看logcat_iPhone手机点开软件就闪退如何解决?
  2. java正则表达式及api_JAVA常用API:正则表达式regular expression
  3. bottle+jquery 前后端分离
  4. ethz研究生申请官网
  5. php 图片上传 水印,PHP - 图片上传并添加水印
  6. 轮廓检测_轮廓检测| Richer Convolutional Features | CVPR | 2017
  7. 如何为JBoss Developer Studio 8设置集成和SOA工具
  8. ieee期刊_论文绘图神器来了:一行代码绘制不同期刊格式图表,哈佛博士后开源...
  9. 使用durid的ConfigFilter对数据库密码加密
  10. linux搭建vsftp服务器_Linux配置VSFTP服务器的方法
  11. IP 和子网掩码(干货)
  12. PHP学习笔记02:自然数列求和
  13. 如何从开发小白到音视频专家
  14. 【Elasticsearch】 es primary shard 主分片 PrimaryOperationTransportHandler
  15. Linux环境SOCKET编程2:epoll分析
  16. 设置GRUB密码及重置密码
  17. Java数据库面试题
  18. 知识蒸馏 | 知识蒸馏的算法原理与其他拓展介绍
  19. 大话设计模式之爱你一万年:大话设计模式之爱你一万年由来
  20. 学生成绩录入及查询(C语言)-PTA

热门文章

  1. 云虚拟主机bch 和 云服务器bcc,虚拟主机bch和云服务器bcc
  2. Cassandra CQL使用详解
  3. numpy 5 study task
  4. 三战南京大学计算机学硕上岸,初试403经验贴
  5. python 战舰_419. 甲板上的战舰(Python)
  6. CITA v0.15 Release
  7. 数云融合丨知识图谱在烟草零售数字化转型中的应用
  8. Go语言核心之美 2.5-字符串
  9. 多点生活的分布式服务框架DSF
  10. 海外权威媒体好评连连,一加5T中国11月28号发布