微信机器人_微信聊天消息记录拦截分析
前言
近期要针对微信聊天记录进行分析和拦截,通过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
微信机器人_微信聊天消息记录拦截分析相关推荐
- php 微信机器人_微信小程序机器人自动客服功能
现在微信小程序在开发中比较流行,本文就教大家一种微信新功能:客服机器人的小程序,这个小程序也可以做其他类型的自动客服程序,在olami平台加上相应的问题和答案,就可以了. 整个小程序界面包含2个部分, ...
- 微信开发SDK使用教程--手机微信好友发来聊天消息通知服务端
微信开发SDK使用教程--手机微信好友发来聊天消息通知服务端 case FriendTalkNotice: {// 微信好友发来聊天消息 log.debug("socket:msgtype= ...
- 微信发单机器人_微信多客服系统SDK通信接口
淘宝客微信发单机器人微信多客服系统SDK通信接口定义 手机客户端上传的通知类消息 (删除了没用的) 8.手机客户端微信上线通知 9.手机客户端微信下线通知 10.微信个人号新增好友通知 11.微信个人 ...
- 微信app清空群聊天消息的方法
微信app是一款非常好用的社交软件,这款软件给用户提供了很多实用的功能,包括聊天功能.生活缴费.朋友圈等,极大的方便了我们的生活.我们在使用这款软件的时候,常常会加入一些群聊,并且在群中进行聊天,这样 ...
- 微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)
1.点评 对于IM系统来说,如何做到IM聊天消息离线差异拉取(差异拉取是为了节省流量).消息多端同步.消息顺序保证等,是典型的IM技术难点. 就像即时通讯网整理的以下IM开发干货系列一样: <I ...
- 微信技术分享:微信的海量IM聊天消息序列号生成实践(容灾方案篇)
1.引言 在本文的上篇<微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)>中介绍了微信的消息序列号生成器 seqsvr 的算法原理.架构核心思想,以及 seqsvr 随着业 ...
- delphi 企业微信消息机器人_nodeJS实现企业微信机器人每天定时发消息实例 定时任务...
nodeJS实现企业微信机器人每天定时发消息实例 背景 由于企业微信办公需要,"每天定时推送某消息用来提醒群里面所有人或者部分人",于是决定用企业微信自带的机器人来实现此功能,来代 ...
- python微信定时发消息_Python开发企业微信机器人每天定时发消息实例
由于办公需要"每天定时推送某消息用来提醒群里面所有人",有同事提议用企业微信自带的机器人来实现此功能.我觉得企业微信的这个工具还不错,具体使用方法我来一一讲述. 企业微信API 企 ...
- python实现微信自动发信息_Python实现企业微信机器人每天定时发消息实例
1.背景 由于办公需要"每天定时推送某消息用来提醒群里面所有人",于是决定用企业微信自带的机器人来实现此功能.具体方法我来一一讲述. 2.企业微信API 3.想法 想到几种方式: ...
最新文章
- 闪退怎么看logcat_iPhone手机点开软件就闪退如何解决?
- java正则表达式及api_JAVA常用API:正则表达式regular expression
- bottle+jquery 前后端分离
- ethz研究生申请官网
- php 图片上传 水印,PHP - 图片上传并添加水印
- 轮廓检测_轮廓检测| Richer Convolutional Features | CVPR | 2017
- 如何为JBoss Developer Studio 8设置集成和SOA工具
- ieee期刊_论文绘图神器来了:一行代码绘制不同期刊格式图表,哈佛博士后开源...
- 使用durid的ConfigFilter对数据库密码加密
- linux搭建vsftp服务器_Linux配置VSFTP服务器的方法
- IP 和子网掩码(干货)
- PHP学习笔记02:自然数列求和
- 如何从开发小白到音视频专家
- 【Elasticsearch】 es primary shard 主分片 PrimaryOperationTransportHandler
- Linux环境SOCKET编程2:epoll分析
- 设置GRUB密码及重置密码
- Java数据库面试题
- 知识蒸馏 | 知识蒸馏的算法原理与其他拓展介绍
- 大话设计模式之爱你一万年:大话设计模式之爱你一万年由来
- 学生成绩录入及查询(C语言)-PTA