1. 定位jsBridge
- Smali静态查找
- 调用 addjavascriptinterface函数
- 静态 使用@JavascriptInterface annotation的
- 动态hook
- hook addjavascriptinterface函数
- 第三方webview, 枚举所有类,看是否有addjavascriptinterface函数,进而hook
- Chrome远程调试,window.object找到导出的js对象
2. 找到所有WebView组件
- 跟踪Menifest文件里带webview的组件
- Activity里继承WebView的
- 第三方webview, 枚举所有类,看是否继承webview,或有webview的成员函数
3. 找特权域白名单
如果存在,在每次执行导出的java方法时都会判断
- getHost
- getUrl
- contain, indexof, startswith等
4. 打开debug模式
- 调用setWebContentsDebuggingEnabled函数
- 少数app里有隐藏的开关