Frida从入门到放弃_1(重置)

frida 1

Frida从入门到放弃_1(重置)

0x00 Frida

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

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

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

  • Scriptable

  • Portable

  • Free

  • Battle-tested

0x01 安装

二进制安装 (推荐)

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

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

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

绑定:二选一就行

1
2
pip install frida       # Python bindings
npm install frida       # Node.js bindings

手动编译

依赖:

pip3 install colorama prompt-toolkit pygments

  • Linux

make

  • MacOS and iOS
1
2
3
export MAC_CERTID=frida-cert
export IOS_CERTID=frida-cert
make
  • Windows
1
frida.sln #VS2017

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

img

frida-server

这几个命令:

1
2
3
4
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 &"

查看架构:

img

aarch64

0x03 简单测试

命令行运行frida-ps -U

img

frida-ps

有显示就是连接成功

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

img

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

img

随便点一下浏览器

img

测试Diva

img

img

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

img

进行Hook login.class checkout函数

逆向过程略

img

HOOK脚本:

1
2
3
4
5
6
7
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函数。

img

0x04 总结


算是简单的入门了frida。

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

(*╹▽╹*)
Built with Hugo
主题 StackJimmy 设计