怎样用frida直接调用函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用frida直接调用函数相关的知识,希望对你有一定的参考价值。

参考技术A 逆向时经常遇到某函数逻辑十分复杂,或者被OLLVM处理。有时并不需要了解内部流程,通过输入得到结果即可,在这种情况下就可以用frida直接调用函数。

以近日遇到的某app中.so的函数为例,说明怎么进行操作。打开app,获取函数所在地址为0xF33DFF18+1,frida附加并运行下面的脚本。

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);

);

跑出来的结果如下

怎样用java调用https接口

参考技术A 下面这个函数可以直接用:
public static String requsetUrl(String urls) throws Exception
BufferedReader br = null;
String sTotalString= "";
try
URL url = new URL(urls);
URLConnection connection = url.openConnection();
connection.setConnectTimeout(3000);
connection.setDoOutput(true);
String line = "";
InputStream l_urlStream;
l_urlStream = connection.getInputStream();

br = new BufferedReader(new InputStreamReader(l_urlStream, "UTF-8"));
while ((line = br.readLine()) != null)
sTotalString += line + "\r\n";

finally
if(br!=null)
try
br.close();
catch (IOException e)
br = null;



return sTotalString;
本回答被提问者采纳

以上是关于怎样用frida直接调用函数的主要内容,如果未能解决你的问题,请参考以下文章

Frida + AndroidAsync 实现 RPC

用c语言在linux怎样调用reboot函数重启系统

怎样用python调用dll

Python中子类怎样调用父类方法

怎样查看一个dll文件的调用方法

使用jnitrace-engine和frida-compile