一、frida简介 frida是一款基于python + javascript 的hook框架,可运行在androidioslinuxwinosx等各平台,主要使用动态二进制插桩技术。本期“安仔课堂”,ISEC实验室为大家详解frida,认真读完这篇文章会让你在逆向工作中效率成倍提升哦!1 插桩技术 插桩技术是指将额外的代码注入程序中以收集运行时的信息,可分为...
首先我们使用Module.enumerateImports("libfrida0x8.so")查看导入表。 可以发现strcmp来自于libc.so,那么我们就可以使用Module.findExportByName("libc.so","strcmp");来获取strcmp的地址了。 获取了strcmp的地址就可以使用之前给的模板进行Hook了。 function hook(){ var targ...
打开jadx,把apk拖拽进去,全局搜索"pwd",挨个分析,明显来自于这条代码,后面是md5,可以判断pwd加密是md5,我们hook该地方 三、Frida环境搭建 1、首先安装frida和frida-tools pip install frida pip install frida-tools 2、adb环境配置,将安卓模拟器安装目录里的adb,添加到环境变量 3、运行adb shell,进入模拟器内,说...
2.接着定义了一个名为main的JavaScript函数,其中包含了Frida的Java.perform()方法,用于执行指定的hook逻辑。 3.最后,通过setImmediate()函数调用main函数,确保在Frida脚本启动后立即执行。 hook check方法 如果我们检查check函数的参数,第一个参数i表示随机数,而第二个参数i2对...
frida在命令行中的使用方式: frida -U -f 包名 -l *.js启动应用并注入脚本 frida-U "程序名" -l *.js可以先启动程序,再注入脚本 常规hook: python function hook(){ console.log("Inside java perform function") let MainActivity = Java.use("com.ad2001.frida0x1.MainActivity"); MainActivity["ch...
现在,让我们尝试在一个应用程序中钩取一个方法。我们将使用JavaScript API 来完成这个任务,但值得注意的是,Frida也支持Python。 1、使用Hook修改被调用的方法的逻辑,返回值,传入参数 基本模板 首先让我提供给你一个模板,然后我们一步步来解释。 Java.perform(function() { ...
第二个方案以及其他更多的可能性,就留给读者自行探索,在这里送上 Frida 官方 JavaScript API 链接:https://frida.re/docs/javascript-api/ ,可以通过这个链接找到你所需要的 JS 函数。 通过示例可以看到 Frida 实现 Hook 功能的强大能力,它可以定位到类的实例,并且对实例中的数据进行直接的修改,达到场景构建的目的...
pip install frida-tools:通过 pip 安装 Frida 工具,这是与 Python 集成的支持库。 2. 编写 Hook 脚本 接下来,编写一个 JavaScript 脚本来 Hook 你的目标函数。例如,我们要 Hook 一个MyClass的myMethod方法: AI检测代码解析 Java.perform(function(){varMyClass=Java.use("com.example.MyClass");// 获取 ...
Frida-trace常用命令 1、spawn - 冷启动 $ frida-trace -U -f com.apple.ExampleCode -m “+[NSURL URLWithString:]” 2、attach - 热启动 $ frida-trace -UF -m “+[NSURL URLWithString:]” 3、Hook类方法 $ frida-trace -UF -m “+[NSURL URLWithString:]” ...
另外还有四个分别是: frida-trace, frida-discover, frida-ls-devices, frida-kill 由于不是经常用到,这边就不一一详细介绍了, 感兴趣的同学可以去frida的官网查看他们的详细介绍和用法。 4.Java Api 在Hook开始之前,有必要对Java注入相关的api做一个简单介绍, frida的注入脚本是JavaScript, 因此我们后面都是通过j...