Frida初体验-安卓CTF逆向

admin 2020年12月18日09:35:49评论49 views字数 1079阅读3分35秒阅读模式

最近简单学习了一下Frida,确实是一个神器。


用一个安卓apk的题目来简单学习一个frida的使用。


先看一下apk,文末会给出apk的下载链接

Frida初体验-安卓CTF逆向

随便输入字符,会提示

Frida初体验-安卓CTF逆向

反编译一下这个apk,我使用的jadx

我们通过搜索 错误,来定位到逻辑代码

Frida初体验-安卓CTF逆向

最重要的函数是MainActivity.this.ccc.cc他接受了两个参数,一个是我们输入的文本,一个是内部生成的 ,至于怎么生成的我们不用关心,Frida了面前无秘密。


接下来安装一下frida


使用pip安装

pip3 install frida

pip3 install frida-tools

安装完成以后验证


Frida初体验-安卓CTF逆向


然后下载frida的服务端

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



在adb里面执行getprop ro.product.cpu.abi,然后根据cpu的指令集下载服务端文件


Frida初体验-安卓CTF逆向

我是mumu的模拟器,我下载的是

frida-server-14.1.3-android-x86.xz


然后把文件复制到安卓模拟器的/data/local/tmp/ 目录,chmod u+x frida添加执行权限


启动服务端

Frida初体验-安卓CTF逆向


测试,如果能正确显示安卓的进程,就是已经安装好了

Frida初体验-安卓CTF逆向



HOOK脚本

import frida
import sys

jscode = '''
Java.perform(function () {
//这里是要Hook的软件具体位置的 包名 + 类名
var Testsig = Java.use('com.example.easyapk.c');
//这里写要Hook的方法名 以及参数
Testsig.cc.implementation=function(str,str2){
//直接返回为true
console.log(str);
console.log(str2);
return true;
};
});
'''
def on_message(message, data):
print(message)

process = frida.get_usb_device().attach('com.example.easyapk') # 要Hook的软件包名
script = process.create_script(jscode)
script.on('message', on_message)
print('Hook成功')
script.load()
sys.stdin.read()

模拟器里面启动要hook的软件,然后再启动python

随便输入,验证码即可验证成功

Frida初体验-安卓CTF逆向

并且在console打印出函数的参数,成功~

Frida初体验-安卓CTF逆向


本文始发于微信公众号(漏洞推送):Frida初体验-安卓CTF逆向

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年12月18日09:35:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Frida初体验-安卓CTF逆向http://cn-sec.com/archives/208049.html

发表评论

匿名网友 填写信息