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

优采云 发布时间: 2020-08-09 07:59

  友情提示:阅读本文须要稍为有一点点Xposed开发基础,一点点Android逆向的基础,以及一点点Kotlin基础

  鸣谢:本项目基于@Gh0u1L5,开源的Xposedhook框架----WechatSpellbook,感谢,很不错的框架,推荐一波(虽然我用的东西都是基于WechatMagician魔改得到的)。

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

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

  恰巧此时我正在研究Xposed Hook 微信,所以就准备拿Android版陌陌来试试,需求是怎么样的呢?就是陌陌推送一条公众号消息,我们就接受一条,并且将其发送到对应的插口进行保存,以便于后续浏览。刚打算做的时侯我还认为没啥难度,直接去把陌陌数据库里的东西down下来就可以了嘛,太简单了好吧,然而。

  

  naive.jpg

  naive!!!

  微信数据表“message”中导入的数据是收录乱码的一堆鬼东西,而且解析下来的url也不全,比如一次推送中的五篇文章,只能取到三篇的url,这就让人觉得太难过。

  

  image.png

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

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

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

  我们看见前面导下来的数据是存在一些乱码的,那么我猜想陌陌内部实现了一个解码工具,如果我们能否hook到这个解码工具,是不是就可以获取到解码以后的正确数据了呢?

  说到解码,根据陌陌往年的数据传输来看,这些数据很有可能是以XML的格式进行传输的,既然涉及到xml,那就一定是通配符对的方式,我们去到的数据中不仅有乱七八糟的方块,还有例如“.msg.appmsg.mmreader.category.item”这类看起来有用的内容。

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

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

  

  image.png

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

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

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

  

  image.png

  那么我们就将眼神置于后第一行的Map上,是不是ay.WA(String str)这个方式做了解析操作呢?

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

  WA()这个方式将昨天的内容解析成了一个以便我们读取的map。其中收录了该条推送收录的图文消息数目,以及公众号的id,名称,对应的文章url,图片url,文章描述等信息。

  晚餐终于可以加鸡腿了。啊哈哈哈哈。

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

  贴一下相关的hook代码

  

  image.png

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线