「java集成frida」java集成python

博主:adminadmin 2022-12-26 08:51:06 71

本篇文章给大家谈谈java集成frida,以及java集成python对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

怎样用frida直接调用函数

逆向时经常遇到某函数逻辑十分复杂,或者被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;i0x100;i++){

        arr[i]=decode(i);

    }

    vars="{";

    for(vari=0;i16;i++){

        for(varj=0;j16;j++){

            s=s+arr[16*i+j]+",";

        }

        s=s+"\n";

    }

    console.log(s);

});

跑出来的结果如下

使用jnitrace-engine和frida-compile

调试app时,想要知道它调用了哪些java函数可以使用jnirace-engine。

首先安装,npm install jnitrace-engine

写frida脚本jnitraceuse.js可以直接调用

此脚本需要由frida-compile编译才能执行

全局安装frida-compile: npm install -g frida-compile。如果本地安装总会出错。

frida-compile编译

奇怪的事情发生了,会出现错误

搜遍了网络也没找到原因,无奈之下采取了如下方法才得以成功编译

1、修改frida-agent-example/package.json中的build和watch,指向需要编译的文件

2、运行npm run build

编译后生成了_agent.js,使用frida附加,注意要使用 --runtime=v8

运行后的截图如下

原生安卓开发app的框架frida安装和Python小试牛刀

本教程只用于学习探讨,不允许任何人使用技术进行违法操作,阅读教程即表示同意!

frida是一个hook原生 安卓开发app 的一个框架,也不止安卓,像ios和win等,都支持,但是好像看到用的不太多。

注意,是原生,就是用Java+安卓开发的app。

还有些是H5之类的,这些是hook不成的,当然,市面上最起码80%的app都是原生开发,不必担心。

再说,H5开发的不是更容易破解?懂的都懂!

hook英文是钩子的意思,可以理解为一堆水管流水,我在某个水管中间挖一个洞,操作一波再继续流。

当然,我也可以只看看某个水管有没有水。

上述这个过程就叫做修改和验证!

可以使用编写的简单Python环境管理器快速创建一个虚拟环境,可视化就是好,再也不用记该死的命令了!

相关链接:

这里已经创建完毕,虚拟环境名为 frida_env

当然,这是一个差不多的参考价值,不一定准,具体情况具体分析。

在安装frida时,尽量科学上网,因为frida好像会下载一些东西,不科学上网非常慢...可能会卡住很长时间!

根据我的环境,这是我的依赖包,在虚拟环境中pip安装即可!

安装完成之后,分别执行 frida --version 和导入 frida ,如果没有报错则表示安装成功!

frida-server下载链接:

综上所述,我pip的frida版本为14.2.18,手机是arm64,所以要下载这个!

确实存在,ok。

这样就已经运行起来了,他是不会有提示的,是直接wait在这的!

注意啊,这个cmd窗口是不能关的,一直挂这就行!

激活上述创建好的虚拟环境,执行以下命令。

如果出现以下信息,表示正确!这是手机的一些信息,表示能获取到。

到这,pc端的frida和手机端的frida-server就建立成功了,主要流程就是

如果frida版本=12,好像是要进行端口转发的

pc上配置frida没什么好说的了,创建一个虚拟环境,安装frida就好了。

手机上的话,第一次需要把frida-server拷贝到 /data/local/tmp 下和 chmod

然后运行这个frida-server,命令总结一下大概为:

下次使用直接复制就可以了!

因为frida使用的是js语言,并且需要安装一个代码自动提示插件,所以WebStorm最合适,官网下载点击下一步下一步即可。

这里不做叙述。

嗯,还需要安装node,自己折腾吧!

创建一个空项目,选择合适的目录。

打开项目,点击下面的Terminal,输入 npm i @types/frida-gum 安装frida代码自动提示。

这不,关于frida的代码就能自动提示了!

题外话

通过Charles+postern进行抓包,发现登录用的接口为

可以发现带的数据是一个 {"Encrypt":"xxx"} ,擦,这是什么玩意啊???

这个apk是没有加固的,通过反编译搜索一下 user/login 试试!!!

找到了两处 user/login ,其中一个是login函数!

那么,现在问题来了,到底 user/login 走的是不是login?如何验证?

此时点击手机上面的登录按钮,然后看pc上控制台的输出!

确实输出了,经过验证,确实是执行了这个login。

然后你再进行一遍hook和分析即可。

下节课就来分析如何自动登录这个app!

想要玩转hook,大概分为以下几步

人生没有白走的路,加油!

关于java集成frida和java集成python的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-26,除非注明,否则均为首码项目网原创文章,转载请注明出处。