分析微信视频号的过程

最近看了一会视频号的协议,核心原理还是没变,protobuf数据通过NetSC++ene请求再获取到protobuf。

那怎么从代码层入手呢?

  • hook日志,然后运行,然后日志里搜索视频号界面里看到的名称之类的。807809_N97TPAYSMRFJ9X8
  • 然后搜索日志的一些关键词,比如"contact info "之类的,然后找到相应的类。

807809_XUAAVUKDATN4GB9

  • 然后按照关键词《-bin/finder》进行搜索代码

807809_ZYN2WQ369TEMND6

  • 找到了一大堆类,这些类有个共同点,实现了void onGYNetEnd(int i, int i2, int i3, StRing str, q qVar, byte[] bArr);这么个接口方法,按经验差不多就能判断这是网络请求完成的时候回调的函数。
  • 剩下的事情就是找到参数封装了。研究过代码的人大概能感觉出怎么弄,参数封装也就是实例化这些请求实现类,丢进NetScene请求队列里,然后监听onGYNetEnd,onGYNetEnd触发后读取该类里的BaseResponse接口获取到响应的protobuf。

807809_3HY8T4WTPTHXDFD

807809_DCHGJ6PZS2GH7R2

整个流程就这些,参考学习讨论一下吧。

标签

firefox pwn 入门 - 33c3 feuerfuchs 复现