Frida练习——Frida-labs
Frida 练习——Frida-labs
这个项目可以从看 frida 相关视频过渡到实战,没有 ctf 这么难,感觉不看 frida 相关视频直接打这个练习也行。
项目地址: https://github.com/DERE-ad2001/Frida-Labs/tree/main
frida_0x1
从应用的界面看这是要你输入一个数字
查看源代码,很容易的看出这是要你找到这个随机数 i
下面的声明的 obj 是要在 app 界面中输入的数字
然后把存有随机数 i 与输入的数字 obj 传到 check 函数中进行检查
在 check 函数中发现输入的 obj 也就是 check 函数声明的 i2
判断条件是(i*2)+4==i2
所以我们要输入的 obj 应该是随机数 i*2+4
这里有两个解法:
解法一:hook get_random
这里我们可以直接 hook 掉 get_random 来查看 get_random 生成的随机数
也可以直接返回一个特定值然后按照计算式输入,但是随机数是在程序初始化生成的,所以要在程序初始化时进行注入。
1 | frida -U -f com.ad2001.frida0x1 -l .\hook.js |
查看 get_random exp:
1 | function hookTest1() { |
返回特定数字 exp:
1 | function hookTest1() { |
然后输入 4 即可进入下一个界面
解法二:hook check
check 函数是在程序初始化之后才运行的,所以不必在初始化的时候进行 hook
1 | frida -U "Frida 0x1" -l ./hook.js |
这样 hook 之后随便输入一串数字之后就可以进到下一个页面
1 | function hookTest1() { |
frida_0x2
感觉这个题没有上一个难,hook静态方法。
打开软件,发现只有一个“HOOK ME!”
查看源码
发现main函数下面有一个get_flag函数
这串代码是把下面的经过base64加密过的aes密文进行解密
而且这是个静态函数,有静态标识符,直接按照静态函数hook模板hook就行
exp:
1 |
|
frida_0x3
这题也是hook一个静态方法,但是这次的静态方法不在Mainactivity
而是在Checker函数中
先打开这个App界面,如下图,点击完click me会提示try again
查看源码
发现判断条件是Checker.code == 512
跟进Checker.code
发现只是个静态函数,并且有个increase函数每次加2,所以我们只需要用让这个increase函数循环256次就能得到flag
exp:
1 | //定义一个名为hookTest1的函数 |