如何在windows使用frida
介绍
firda一个在Android逆向十分常用的 native 层动态调试的工具。
但是它有没有办法在windows的hotspot使用。 根据我目前找到关于jvm hotspot的frida文章,提问等都无法使用
即使你导入了pdb表也一样会显示无法使用
这篇就来整合一下信息,让你能够在windows运行残血版frida (哈哈,够用了亲)
安装
首先你得要有python环境,安装这两个玩意
第二个 frida-tools 是用来编译或者其他的,如果你不写自己的脚本,可以不安装
1 | pip install frida |
从这里面下载openjdk 17 版本,目前frida-java对17稳定性较好一些(实际上我没测过其他的版本,用的就openjdk17)
下载上图的两个文件即可,解压pdb表即可了捏
启动
命令行:
frida -l F:\main.js -f "C:\Program Files\Java\jdk-17.0.14+6\bin\java.exe" -- -jar 1.jar
这边的 --
后面的所要添加的参数捏。非常的简单哈
局限性
目前 Java.use
, Java.cast
和一些 jni
相关的api能够正常使用
对某个函数进行overload它的method入口会报错捏,只能等有缘人修复了啊啊啊(
脚本
windows java hotspot 的脚本比较怪,如果你在脚本直接调用 Java.available
是不可以滴!
由于win的frida加载script时机比jvm.dll早,我们需要用setTimeout 等待jvm.dll
加载某个函数,才可以用捏。 我这边是对JVM_DefineClassWithSource
进行了hook ,在这个时机后调用是可以使用
代码可能写的比较垃圾见谅
1 | let start = new Promise((resolve) => { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 snowflak3的小博客!