Loading... Native分两种情况 * 导出函数 * 未导出函数 若为导出函数可直接使用函数名作为Hook的参数 若为未导出函数,则需要用到地址。 每次加载So到内存,虚拟机都会为其分配个地址,为基地址。 地址为:基地址+相对地址(不同平台不同) 在Frida中有两种计算方式 * 手动 * Frida自动 手动方法如下 查看进程pid(第二个数字) ```sh ps | grep com.kuaiduizuoye.scan ``` 查看基地址 ```sh cat /proc/2275/maps |grep libanti_spam.so ``` 自动方法如下 `Module.findBaseAddress(“libanti_spam.so”).add(0x00001ddc)` ## 可参考的模板代码 ```js Java.perform(function () { var URL = Java.use('java.net.URL'); URL.$init.overload('java.lang.String').implementation = function (apiUrl) { send(apiUrl); printStack(); }; //打印堆栈 function printStack() { var threadef = Java.use('java.lang.Thread'); var threadinstance = threadef.$new(); var stack = threadinstance.currentThread().getStackTrace(); for (var i = 0; i < stack.length; i++) { send("Full call stack:" + stack[i].toString()); } } }); ``` 最后修改:2023 年 12 月 22 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏