xposedHook-给web页面添加自己的js
项目地址:https://github.com/sepyeight/HookWebViewRunCostomeJs主要需求:一次面试公司需要抓取手机app内部web页面的数据,当时说python人家表示不行,需要xposed到手机,今天有时间,实现了demo,给需要的人
主要点:
被hook的app代码,简单写了几行
1.如果执行自己的js
private class MyWebViewClient extends WebViewClient{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
XposedBridge.log(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// Execute your javascript below
String jsLine = initJS();
XposedBridge.log("jsLine->>"+jsLine);
view.loadUrl("javascript:"+jsLine);
}
}
继承webViewClient重写onPageFinished加入你的js,然后添加WebViewClient进去
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.beforeHookedMethod(param);
XposedHelpers.findAndHookMethod("android.webkit.WebView", lpparam.classLoader, "setWebViewClient", WebViewClient.class, new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
param.args = new MyWebViewClient();
}
});
}
2.回调方法到java层
window.android.startFunction(book_json);
基本就这样了,测试无法直接修改html添加jquery代码等,大佬会的可以告诉我。
iwang110 发表于 2018-7-20 10:26
能否hookjs里面的参数
可以看看Proxy
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy
再结合楼主的方法试试 自己做沙发 谢谢楼主分享研究下Js 楼主不能这样啊你怎么又是楼主又是沙发 也不留些给兄弟 可以可以,感谢分享。 能否hookjs里面的参数 谢谢分享 ~~~ 好厉害,新手好好学习一下,感谢分享。 可以替换里面的参数 小白一枚前来学习
页:
[1]
2