参考文章 及资源下载
- 先下载 androidAsync.dex, 然后adb push 到手机 /data/local/tmp 路径下
- 复制下方脚本,然后改成自己要编写的脚本就行了
- 启动 FridaManager.apk 设置好js 就好了
function Log(info) {
Java.perform(function () {
var LogClass = Java.use("android.util.Log");
LogClass.e("FridaManager", info);
})
}
function main() {
function map_list(args) {
var array = Java.use("java.util.ArrayList");
var arrayList = array.$new();
arrayList.add(args);
return arrayList;
}
Java.openClassFile('/data/local/tmp/androidAsync.dex').load();
const HttpServerRequestCallback = Java.use('com.koushikdutta.async.http.server.HttpServerRequestCallback');
const RequestTestCallback = Java.registerClass({
name: "RequestTestCallback",
implements: [HttpServerRequestCallback],
methods: {
onRequest: function (request, response) {
response.send(JSON.stringify({
"code": 0,
"message": " 服务已经注册成功, 默认端口8181"
}));
}
}
});
const dy_Xg = Java.registerClass({
name: "dy_Xg ",
implements: [HttpServerRequestCallback],
methods: {
onRequest: function (request, response) {
var requestJsonData = request.getBody().get();
const str_url = JSON.parse(requestJsonData)['url'];
const str_stub = JSON.parse(requestJsonData)['stub'];
const ua = JSON.parse(requestJsonData)['ua'];
const xgs = Java.use('com.bytedance.frameworks.baselib.network.http.NetworkParams').$new();
var HashMap = Java.use('java.util.HashMap');
var hm = HashMap.$new();
hm.put("x-ss-stub", map_list(str_stub));
hm.put("user-agent", map_list(ua));
var xglist = xgs.tryAddSecurityFactor(str_url, hm);
var FastJson = Java.use('com.alibaba.fastjson.JSON');
var result = FastJson.toJSONString(xglist);
Log("xg " + result)
response.send(result);
}
}
});
try {
const AsyncHttpServer = Java.use('com.koushikdutta.async.http.server.AsyncHttpServer');
const androidAsync = AsyncHttpServer.$new();
const prot = 8181
androidAsync.get('/', RequestTestCallback.$new());
androidAsync.post("/get_xg", dy_Xg.$new());
androidAsync.listen(prot);
Log('注册服务成功, 端口为 ===> ' + prot);
} catch (e) {
Log('注册服务失败!!!, e:' + e);
}
}
Log("开始");
Java.perform(function () {
var bRunServer = 0;
Log("start hook");
var NetworkParams = Java.use("com.bytedance.frameworks.baselib.network.http.NetworkParams");
NetworkParams.tryAddSecurityFactor.implementation = function (a, b) {
if (bRunServer == 0) {
Log("开始设置开关函数");
bRunServer = 1;
main();
}
var result = this.tryAddSecurityFactor(a, b);
return result;
}
});
![在这里插入图片描述](https://img-blog.csdnimg.cn/df3dc731f0a04655bb2ca7b4e9155d59.png)