黑客教你加对方微信  搜狗微信下线了怎么获取公众号文章

访客4年前关于黑客接单1019
关于微信公众号《云爬虫技术研究笔记》可以看到更多哦!

背景

  最近发现搜狗微信在2019.10.29号的时候悄然下线了一个功能,也就是不能在搜狗搜索中指定公众号的名称,如下图

  很多媒体以及社区也在讨论相关的话题

  这样的话,我们就没有办法准确的搜索到某个公众号的最新的文章了,所以我们要是想要去实时追踪到某个公众号的最新文章的话,就不能通过搜狗这个渠道来爬取了。
  于是,我整理了一下截止目前的微信公众号的爬取方式

  1. 搜狗微信渠道(已放弃)
  2. AnyProxy+Appium
  3. X-Wechat-Key(万能key)
  4. Hook微信,获取微信公众号推送
      比较一下这几种方式
  • 第二种的话使用模拟人工操作的自动化工具,AnyProxy的话可以替换成MitmProxy,也就是做一个中间人拦截的作用,具体的话可以看看陈文管的博客来看看具体操作,不过中间人拦截在App层面总会有些隐患。
  • 第三种的话在业界统称为微信万能key,也就是像公众号文章点赞、阅读什么的都需要通过这个Key来进行操作,所以一些黑产(刷赞、刷阅读量)什么的都喜欢拿这个东西搞,获取Key的话无非就是逆向重写源码逻辑或者Hook拿Key,这个目前市面上暂时没有相关的文章。
  • 最后一种就是我们今天要采取的方式了,就是Hook微信的公众号推送,因为逻辑上公众号推送也是微信官方向我们发送消息的过程,我们可以Hook这个过程,每当收到推送我们就采取我们自己的一些处理逻辑,这样在设计上来说是四种中最“实时”的。

实战

  实战方面参考了四哥的文章做了些改进,下面我们开始边分析边实战

  讲一个常识,像微信这种社交类的App,我们和对方在发消息的过程中的聊天记录都是会保存在我们本地,所以我们通常都能看到我们的聊天记录,也可以清理他们,所以如果我们想要拦截微信的消息的话,就得Hook微信的Insert *** ,也就是他们插入数据库的 *** 。
  那我们该从哪里入手呢?相信大家百度搜索Hook微信的时候都会搜到一类内容,就是如何解密微信本地的数据库,而微信在我们手机上的存储位置又有一个关键词–EnMicroMsg.db,这个就是我们的入口,我们需要在微信源码中全文搜索这个词,我们使用的微信是6.5.3,工具是Jadx,实际操作如下


  我们搜索出EnMicroMsg.db之后就要每个结果去分析看哪个是比较有“眼缘”的结果。我们可以看到,第三条名字是onSQLExecuted,嗯?有点像,跟进去看看。

  主要看最后一条,引用了另一个 *** 进行存储,再跟进去

  看到了涉及数据库的Help类,我们猜测这个类应该是一个辅助类,那么Insert *** 应该在这个类下面,我们在这个类中搜索


  好的,我们跟到这里能够看到很直观的Sql语句拼接的过程,那么这个 *** 的参数应该是我们收到的消息的值,只要Hook这个 *** ,我们就可以去拿到插入数据库时的值了。

  代码片段就是这个样子,下面我们把这个代码打包成Apk,勾选,重启Xposed,下面可以发送消息测试看看效果了。
  我们首先先用另一个微信号给我们自己发送普通的消息

  看到这里,Content的字段,值就是我们发送的1
  接着我们再用另一个微信号给我们发送公众号文章

  可以看到一大段代码,我们看到Reversed字段是由很多乱码和字段以及值组成的,那么我猜测微信内部实现了一个解码工具,如果我们能够Hook到这个解码工具,是不是就可以获取到解码之后的正确数据了呢?说到解码,根据微信以往的数据传输来看,这些数据很有可能是以XML的格式进行传输的,既然涉及到xml,那就一定是键值对的形式,我们去到的数据中除了有乱七八糟的小方块,还有诸如“.msg.appmsg.category.item”这类看起来有用的内容。
  我们在全文搜索一下

  奇怪?我们并没有发现什么值得的东西?怎么回事,回想一下是不是我们发送的消息有问题?对!我们应该拿的是微信公众号的推送,而不是别人向我们推的公众号文章,那我就用我的公众号给我自己推一个预览消息,结果如下

  我们再根据刚才的逻辑,全文搜索msg.appmsg.mmreader.category.item,之后我们一个个分析,看到下面这个部分,跟进去

  我们查看这一段代码,看到下面这个部分有我们之前拦截到的消息的参数


  我们发现我们需要的字段的值都来自于Yd,而Yd来自于az.Yd,那很可能这个就是我们想要Hook的解密器,我们跟进去看看

  这段代码看起来很像是解码的,话不多说,Hook试试!


  不出我们的猜想,这个 *** 果然是,我们再进行解析,得到如图的效果。

总结

这次Hook算是比较简单的案例,主要是寻找Hook *** 的思路,把微信公众号的推送当成一个消息,我们去Hook这个消息存入数据库的过程从而得到原生数据,再找到原生数据解密的地方,从而通过Hook原生数据解密的 *** 得到正确的解码数据,最后完成我们的实时获取微信公众号推送的目的。

坑点

  1. 代码只是完成了功能,在额外的微信风控部分、Xposed检测部分估计还需要做额外工作。
  2. 项目基于手机微信来开发,需要保持手机常开,稳定性需要额外考虑。

注意:  项目已经完成,想要获得源码可以关注下面的微信号,回复“hook微信公众号”即可获得项目地址以及现成的Apk

号主介绍

  • 前两年在二线大厂工作,目前在创业公司搬砖

  • 接触方向是爬虫云原生架构方面

  • 丰富的反爬攻克经验以及云原生二次开发经验

  • 其他诸如数据分析黑客增长也有所涉猎

  • 做过百余人的商业分享以及多次开办培训课程

  • 目前也是CSDN博客专家华为云享专家

震惊 | 只需3分钟!极速部署个人Docker云平台

深入理解Python的TLS机制和Threading.local()

我为什么不建议你使用Python3.7.3?

下一代容器架构已出,Docker何去何处?看看这里的6问6答!!

公众号内回复“私藏资料”即可领取爬虫高级逆向教学视频以及多平台的中文数据集


免责声明: 本文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请读者自负。

相关文章

农村孕妇在家怎么赚钱的方法(足不出户可以挣

农村孕妇在家怎么赚钱的方法(足不出户可以挣

宅在家里怎么赚钱,现在年轻人都不喜欢朝酒晚五的蚁族生活,都在寻找在家就能赚钱的方法,如今是互联网的时代,网上有很多赚钱的方法,在家赚钱不用奔波,何乐不为。 如今网络挣钱变成时下最潮流的挣钱方法,不论...

痣后天是怎么形成的?形成的原因以及祛痣的方

痣后天是怎么形成的?形成的原因以及祛痣的方

(普通黑痣)长痣的原因一般为黑色素细胞增多所致,色素痣人人身上都有,但能够恶变的只是极少数。一般地,成熟的痣不会恶变,如毛痣,一般都是成熟的痣,因此,毛痣一般不会恶变。而成人出现交界痣,则很可能是...

长毛腊肠犬多少钱?好养活吗?饲养方法其实就

长毛腊肠犬多少钱?好养活吗?饲养方法其实就

长毛腊肠犬好养么,对于长毛腊肠犬因为非常的好养,而且非常聪明,所以是大家都非常喜欢饲养的一种宠物狗狗,但大家不知道的是,如果不知道长毛腊肠犬怎么饲养的话那肯定是养不好的,所以大家在饲养的时候还是需要知...

怎么通过手机号码定位定位出别人的位置

. 奶粉是在宝宝没有奶水或者断奶后的重要营养来源,不过奶粉不是像那种速溶咖啡是一小袋一小袋的,要喝奶粉必须一罐一罐的冲泡,不过怎么保存奶粉呢,保存奶粉的方法是什么呢,友谊长存小编给大家带来相关解答。...

win7怎么进入安全模式?详细的步骤和方法

win7怎么进入安全模式?详细的步骤和方法

简介:安全模式可以修复系统、还原系统、删除顽固文件,比重做系统方便。 工具:windows7 步骤: 方法一:开机在进入Windows系统启动画面之前按下F8键 方法二:启动计算机时按...

实用的网络推广方法和网络推广技巧

实用的网络推广方法和网络推广技巧

说起网络推广,您可能不是很了解,伴随行业之间的竞争日益激烈,您有没有想过如何在这场大战中立于不败之地呢?您有没有考虑过用网络推广的方法提高自己的竞争优势呢?如果有,请容我慢慢为您道来。 网络推广...