root@v

Are You OK?

Frida从入门到放弃_1

vorblock / 2019-01-22


0x00 Frida

Frida 官网:https://www.frida.re/

github: https://github.com/frida/frida

Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers.

0x01 安装

二进制安装 (推荐)

pip install frida-tools 就一个命令搞定

Failed to load the Frida native extension: DLL load failed: 找不到指定的模块

报了这个错 查了大半天 原来我用的版本是基于python3.7编译的。我现在用的3.6.。。。。

绑定:二选一就行

pip install frida       # Python bindings
npm install frida       # Node.js bindings
手动编译

依赖:

pip3 install colorama prompt-toolkit pygments

make

0x02 Android环境

设备:小米mix2 运行Android9.0 MIUI10开发版已解锁root

frida-server: 用的arm64版本

server文件下载

下载好对应的 frida-server 然后adb push 进去

adb push frida-server /data/local/tmp

然后chomd 755 frida-server修改权限

运行./frida-server

frida-server

这几个命令:

adb root
adb push frida-server /data/local/tmp
adb shell "chmod 755 /data/local/tmp/frida-server"
adb shell "/data/local/tmp/frida-server &"

查看架构:

aarch64

0x03 简单测试

命令行运行frida-ps -U

frida-ps

有显示就是连接成功

接下来对浏览器进行简单测试

frida-trace -U -i open com.android.browser

随便点一下浏览器

测试Diva

frida-trace -U -i "open*" jakhar.aseem.diva

进行Hook login.class checkout函数

逆向过程略

HOOK脚本:

Java.perfrom(function(){
    console.log("######")
    var logActivity = Java.use("jakhar.aseem.diva.LogActivity");
    logActivity.checkout.implementation = function(){
        console.log("Hook")
    }
})

命令行载入脚本运行

frida -U jakhar.aseem.diva -l diva1.js --no-pause

进入logging关卡 点击check out,成功hook到checkout函数。

0x04 总结


算是简单的入门了frida。

frida还有很多厉害的功能。多读读官方文档,收货会更多。