为了账号安全,请及时绑定邮箱和手机立即绑定

Xposed实时获取微信公众号推送

标签:
Maya

由于之前的基于itchat开发的微信公众号采集工具使用的账号被封号了,就很郁闷。

由于之前的基于itchat开发的微信公众号采集工具使用的账号被封号了,就很郁闷。
恰巧此时我正在研究Xposed Hook 微信,所以就打算拿Android版微信来试试,需求是怎么样的呢?就是微信推送一条公众号消息,我们就接受一条,并且将其发送到对应的接口进行保存,以便于后续浏览。刚准备做的时候我还觉得没啥难度,直接去把微信数据库里的东西down出来就可以了嘛,太简单了好吧,然而。

webp

naive.jpg

naive!!!

微信数据表“message”中导出的数据是包含乱码的一堆鬼东西,而且解析出来的url也不全,比如一次推送中的五篇文章,只能取到三篇的url,这就让人感觉很难受。

webp

image.png

但是难受归难受,问题总还是要解决的,怎么解决呢?看源码!

之前我将微信的几个dex包的代码分别反编译出来以后放到了一个文件夹下,然后使用VSCode打开,用于平时的查看,

虽然微信反编译出来的源码乱七八糟, 但是有的代码能看的。

我们看到上面导出来的数据是存在一些乱码的,那么我猜测微信内部实现了一个解码工具,如果我们能够hook到这个解码工具,是不是就可以获取到解码之后的正确数据了呢?

说到解码,根据微信以往的数据传输来看,这些数据很有可能是以XML的格式进行传输的,既然涉及到xml,那就一定是键值对的形式,我们去到的数据中除了有乱七八糟的小方块,还有诸如“.msg.appmsg.mmreader.category.item”这类看起来有用的内容。

我打开vscode,全局搜索“.msg.appmsg.mmreader.category.item”,令人高兴的是,搜索出来的结果并不多,这说明这个值确实是有意义的值,挨个查看这些源码,在一个包为:“

com.tencent.mm.plugin.biz;”下中一个名为“a”的类中,我发现了一些有意思的东西。

webp

image.png

方法名为wS的一个方法,接收了一个String类型的值,且其内部做了一些数据取出的工作。

难道这个str参数就是我想要的标准xml吗?

经过hook验证,打印其参数后发现,并不是,参数内容的格式和之前数据库中的格式是一致的。

webp

image.png

那么我们就将目光放在后第一行的Map上,是不是ay.WA(String str)这个方法做了解析操作呢?

我对com.tencent.mm.sdk.platformtools.ay中WA()这个方法进行了hook,取得其返回值,这个返回值是一个Map类型的数据,在打印出其内容后,我的猜想被验证了。

WA()这个方法将刚才的内容解析成了一个便于我们读取的map。其中包含了该条推送包含的图文消息数量,以及公众号的id,名称,对应的文章url,图片url,文章描述等信息。

晚餐总算可以加鸡腿了。啊哈哈哈哈。

本文章只用于研究学习,请正确食用,谢谢。

贴一下相关的hook代码

webp

image.png



作者:NOspy
链接:https://www.jianshu.com/p/61b6e384d1cf


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消