某短视频APP搜索+推荐接口rpc调用

爱好学习及分享,若文章侵权,优先联系本人删帖处理。

一、目标

完成推荐列表和搜索列表的数据抓取。推荐列表可不用传参,搜索列表传入一个搜索词进行搜索。

二、实现

1. 下载apk并做好相应的准备工作

在豌豆荚下载对应版本的apk文件(apk-v: 6.87)

用平头哥感染该文件,并将感染后的apk安装到手机

2. 入口查找与分析

这里我们从URL入手,去hook所有的URl构造,手动触发相应的请求,此时会打印该请求的url:关键子串为api/sns/v6/homefeed

RposedBridge.hookAllConstructors(URL.class, new RC_MethodHook() {

@Override

protected void afterHookedMethod(MethodHookParam param) throws Throwable {

super.afterHookedMethod(param);

URL url = (URL) param.thisObject;

Log.d(TAG, "access url: " + url);

}

});

根据找到的url来修改hook逻辑,同理搜索方法也一样

RposedBridge.hookAllConstructors(URL.class, new RC_MethodHook() { @Override

protected void afterHookedMethod(MethodHookParam param) throws Throwable {

super.afterHookedMethod(param);

URL url = (URL) param.thisObject;

// Log.d(TAG, "access url: " + url);

// 推荐

if (url.toString().contains("api/sns/v6/homefeed")) {

Log.d(TAG, "推荐 url: " + url, new Throwable());

}

// api/sns/v10/search/notes

if (url.toString().contains("search/notes")) {

Log.d(TAG, "搜索 url: " + url, new Throwable());

}

}

});

这种时候去看堆栈的话,其实也看不出个啥,基本都是开启线程来做一些事情。最好的方式应该是用刚才hook出来的请求链接去源码里面搜索。

这里使用grep命令去查找指定字符串(因为APP太大了,直接jadx或者jeb反编译太吃配置了)<

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: