逆向时经常遇到某函数逻辑十分复杂,或者被OLLVM处理。有时并不需要了解内部流程,通过输入得到结果即可,在这种情况下就可以用frida直接调用函数。
以近日遇到的某app中.so的函数为例,说明怎么进行操作。打开app,获取函数所在地址为0xF33DFF18+1,frida附加并运行下面的脚本。
frida -FU -l getTable.js --no-pause
Java.perform(function(){
var FindAddr = newNativePointer(0xF33DFF18+1);
var decode = newNativeFunction(FindAddr,'pointer',['int']);
var arr=newArray(256);
for(vari=0x00;i<0x100;i++){
arr[i]=decode(i);
}
vars="{";
for(vari=0;i<16;i++){
for(varj=0;j<16;j++){
s=s+arr[16*i+j]+",";
}
s=s+"\n";
}
console.log(s);
});
跑出来的结果如下
![](https://img.haomeiwen.com/i11594169/e664681877f18aa2.png)
网友评论