微信搜索视频号hook

近期在研究视频号的采集,市面上常见的方案是PC注入和ipad协议,这两种相对来说比较稳健,但是目前未见可以参考的开源项目。

于是笔者通过对移动端安卓视频号的hook,实现了数据采集。

采用的是adb shell + frida hook来拦截消息,因为视频号目前没有主动推送的功能,频繁调用接口又会导致被检测,并且造成应用程序崩溃,所以采取hook的方式来拦截消息。经测试,相对稳定。

真机环境,安卓11,app版本8.0.43,目前的最新版。

另外要说的是为什么选择对搜索接口hook,因为视频号作品列表中没有发布时间。

通过对搜索接口的拦截,不仅仅可以获取到视频号消息,也可以捕捉公众号文章、指数、账号等信息。


先说下视频号推荐页和用户作品列表的hook,能拦截到,但是没发布时间。

file

主要在feedData

file

file

hook代码

file

接着看搜索,经过分析后我直接hook了hash map

file

打印堆栈

java.lang.Exception
    at java.util.HashMap.put(Native Method)
    at org.json.JSONObject.put(JSONObject.java:273)
    at org.json.JSONTokener.readObject(JSONTokener.java:394)
    at org.json.JSONTokener.nextValue(JSONTokener.java:104)
    at org.json.JSONTokener.readArray(JSONTokener.java:440)
    at org.json.JSONTokener.nextValue(JSONTokener.java:107)
    at org.json.JSONArray.<init>(JSONArray.java:94)
    at org.json.JSONArray.<init>(JSONArray.java:110)
    at com.tencent.mm.plugin.websearch.f.b(SourceFile:267)
    at com.tencent.mm.plugin.websearch.f$a.run(SourceFile:5)
    at com.tencent.mm.plugin.websearch.m$b.run(SourceFile:90)
    at rd4.c.dispatchMessage(SourceFile:11)
    at com.tencent.mm.sdk.platformtools.MMHandler$3.dispatchMessage(SourceFile:10)
    at rd4.c$b.dispatchMessage(Unknown Source:2)
    at rd4.c$k.run(SourceFile:101)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at qd4.k.run(SourceFile:247)
    at rd4.e.run(SourceFile:9)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at jd4.c.run(SourceFile:3)
    at java.lang.Thread.run(Thread.java:923)

找到 com.tencent.mm.plugin.websearch.m

mMHandler负责消息处理

file

主要hook代码:
var websearchm = Java.use("com.tencent.mm.plugin.websearch.m");
websearchm.b.implementation = function (a, b,c,d) {
console.log(b)
return this.b(a,b,c,d);
}

打印出的b:

file

这里可以直接hook待响应的数据,所以到这里可以收工。

搜文章或者搜视频,搜公众号都可以拦截到。

【温馨提示:此处隐藏内容需要付费订阅后才能查看!】

点赞
  1. mstplm说道:
    Google Chrome Windows 10
    大佬,有微信或者星球啥的吗,想学习
    1. Lx Lx说道:
      Google Chrome Windows 10
      你好,公众号《pythonlx》有二维码
  2. 守陵人说道:
    Google Chrome Mac OS X 10.15.7
    现在还能用吗,大佬能否指点指点
  3. red说道:
    Google Chrome Windows 10
    请问下微信拦截单个视频号,获取的视频链接不能播放,这个要怎么处理呢
    1. Lx Lx说道:
      Google Chrome Windows 10
      得把视频文件下载下来 通过decodekey本地解密为可播放文件
  4. Daniel说道:
    Firefox Windows 10
    现在还能用吗?用的frida哪个版本?我这边执行后会报'type': 'error', 'description': 'Error: File not found', 'stack': 'Error: File not found\n at load (frida/node_modules/frida-java-bridge/lib/class-factory.js:1366)
    1. Lx Lx说道:
      Google Chrome Windows 10
      frida 16.0.19 frida-tools 12.1.2
      1. Daniel说道:
        Firefox Windows 10
        还是报错,是不是我没放r0gson的原因呀?r0gson.dex在哪下载?
  5. 枫原万叶说道:
    Google Chrome Mac OS X 10.15.7
    有没有教学视频呀
  6. 李四说道:
    Google Chrome Windows 10
    头大了,这个fastjson文件是干嘛的
  7. Lx Lx说道:
    Google Chrome Windows 10
    fastjson.dex下载链接: https://pan.baidu.com/s/1P8gahYpb8_z__B2y45bvmg 提取码: chjd
  8. 五文钱说道:
    Google Chrome Windows 10
    是不是缺了个fastjson.dex文件

发表回复