安卓逆向小案例——某短视频APP搜索+推荐接口【rpc调用】

某短视频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());  
		}
      	}
});

安卓逆向小案例——某短视频APP搜索+推荐接口【rpc调用】_第1张图片

安卓逆向小案例——某短视频APP搜索+推荐接口【rpc调用】_第2张图片

  • 这种时候去看堆栈的话,其实也看不出个啥,基本都是开启线程来做一些事情。最好的方式应该是用刚才hook出来的请求链接去源码里面搜索。
  • 这里使用grep命令去查找指定字符串(因为APP太大了,直接jadx或者jeb反编译太吃配置了)<

你可能感兴趣的:(安卓逆向,android,rpc,java)