文章实时采集(微信公众号采集工具被封号,需求是怎么样的呢?)
优采云 发布时间: 2022-04-18 10:46文章实时采集(微信公众号采集工具被封号,需求是怎么样的呢?)
由于之前基于itchat开发的微信公众号采集工具使用的账号被封禁,非常郁闷。
由于之前基于itchat开发的微信公众号采集工具使用的账号被封禁,非常郁闷。
正好这个时候在研究Xposed Hook微信,所以打算试试安卓版的微信。需求是什么?也就是微信推送一条公众号消息,我们接受一条,发送到对应界面保存,方便后续浏览。刚要去做的时候,觉得难度不大。直接下去下载微信数据库里的东西就行了。然而,这太简单了,好吧。
天真.jpg
幼稚的!!!
微信数据表“消息”中导出的数据是一堆乱码,解析出来的网址不全。比如五篇文章文章一次推送只能获取三篇文章的url,这让人很不舒服。
图像.png
但是苦就是苦,问题还是要解决的。如何解决?看源代码!
之前我把微信的几个dex包的代码反编译了放在一个文件夹里,然后用VSCode打开,日常查看。
微信反编译出来的源码虽然乱七八糟,但还是能看懂一些代码。
我们看到上面导出的数据有一些乱码,估计微信实现了解码工具。如果能hook这个解码工具,解码后能得到正确的数据吗?
说到解码,根据微信之前的数据传输,这些数据很可能是以XML格式传输的。由于涉及到 XML,所以它必须是键值对的形式。除了我们要去的数据之外,还有一堆看起来很有用的小方块和诸如“.msg.appmsg.mmreader.category.item”之类的东西。
我打开 vscode 并在全球范围内搜索“.msg.appmsg.mmreader.category.item”。令人高兴的是,结果并不多,这意味着这个值确实是一个有意义的值。一一检查这些源代码。一个包是:"
com.tencent.mm.plugin.biz;”我在一个名为“a”的类中发现了一些有趣的东西。
图像.png
该方法是一个名为 ws 的方法,它接收一个 String 类型的值,并在内部进行一些数据获取工作。
这个 str 参数可以是我想要的标准 xml 吗?
经过hook验证,打印其参数后,发现不是,参数内容的格式与之前数据库中的格式一致。
图像.png
然后我们将重点放在第一行的地图上。ay.WA(String str) 方法做解析操作吗?
我在 com.tencent.mm.sdk.platformtools.ay 中钩住了 WA() 方法来获取它的返回值,这是一个 Map 类型的数据。打印出它的内容后,我的猜测得到了验证。
WA() 方法将刚才的内容解析成一个便于我们阅读的地图。包括推送收录的图文消息数量,以及公众号的id、名称、对应的文章url、图片url、文章描述等信息。
我终于可以在晚餐时加鸡腿了。啊哈哈哈。
此文章仅供研究学习,请妥善食用,谢谢。
粘贴相关的钩子代码
图像.png