Frida从入门到放弃

  • A+
所属分类:逆向工程

Frida工具的介绍

Frida是个轻量级so级别的hook框架,它可以帮助逆向人员对指定的进程的so模块进行分析。它主要提供了功能简单的python接口和功能丰富的js接口,使得hook函数和修改so编程化,值得一提的是接口中包含了主控端与目标进程的交互接口,由此我们可以即时获取信息并随时进行修改。使用frida可以获取进程的信息(模块列表,线程列表,库导出函数),可以拦截指定函数和调用指定函数,可以注入代码,总而言之,使用frida我们可以对进程模块进行手术刀式剖析。

Frida的主要工作方式是将脚本注入到目标重新的进程中,而且在执行过程中可以实时看到其中的变化,通过它返回给我们的信息可以更快更加精准的锁定目标函数,通过对脚本的编写,可以对程序的流程进行控制,实现我们希望实现的一些功能。

frida分为两个部分,服务端运行在目标机器当中,通过注入进程的方式控制程序运行,另一部分运行在本机当中,可根据脚本与服务端进行交互。

Frida的安装

Frida是依赖于python的一款工具,所以在安装前需要先配置python环境,这里就不过多赘述 在python安装完成后,即可开始安装Frida,使用pip进行安装即可

  1. pip install frida python -m pip install frida

由于我已经成功安装,所以信息会有所不同

Frida从入门到放弃

已踩的坑
1.python3.7安装失败的坑 可以看一下frida的安装仓库(传送门)

Frida从入门到放弃

可以看到官方仓库中并没有py3.7的文件,所以会造成安装失败,为解决这个问题,可以使用如下方式:Windows 简答粗暴,直接放进python所在文件夹下Libsite-packages目录中,再次安装即可解决问题

Frida从入门到放弃

Linux 以kali系统为例,需要使用easy_install.py进行处理,下载完成*.egg文件后,使用终端进入文件所在位置,运行如下命令

  1. python3 easy_install.py所在位置 *.egg文件

运行完成,出现如下内容,即可使用 Ctrl + C 键取消任务,由于我已经安装成功了,所以内容可能有所不同

Frida从入门到放弃

之后再次安装即可成功解决无法安装的问题

MAC os
由于我太菜了,所以没有找到解决方法,如果有大佬知道,希望能学习一下

安装完成frida后即可开始安装frida-tools

  1. pip install frida-tools python -m pip install frida-tools

由于我已经成功安装,所以信息会有所不同

Frida从入门到放弃

有的师傅好像是先安装frida-tools再安装的frida,由于我的python环境版本为3.7,先安装frida-tools无法成功,所以我是先解决frida的安装问题,再安装的frida-tools,具体情况根据具体情况而定即可。

使用frida解决CTF当中的Android逆向赛题

在2020网鼎杯中有一道名为bang的安卓逆向题,今天以此为例演示frida的一个用法
准备工作 安装安卓模拟器(这里我使用的是网易的mumu模拟器)
下载对应的frida-server文件(传送门)
adb工具
frida-dexdump脚本(传送门)
jd-gui(传送门)
dex2jar(传送门)

在安卓模拟器中安装题目文件,启动后会看到如下内容

Frida从入门到放弃

使用adb连接安卓机器
命令:
【win版】
adb connect 127.0.0.1:7555
adb shell

【mac版】
adb kill-server && adb server && adb shell

出现如下内容代表连接成功

Frida从入门到放弃

查询系统信息,下载对应的frida-server文件

  1. getprop ro.product.cpu.abi

Frida从入门到放弃

使用adb工具将 frida-server 文件放入 /data/local/tmp 目录当中

  1. adb push frida-server-12.11.14-android-x86 /data/local/tmp

Frida从入门到放弃

进入/data/local/tmp并运行server文件

Frida从入门到放弃

使用frida查看安卓当中启动的应用信息

Frida从入门到放弃

使用frida-dexdump脚本拿到应用的dex文件

Frida从入门到放弃

使用dex2jar工具将dex文件转化为jar文件

Frida从入门到放弃

使用jd-gui反编译jar文件,即可看到源代码

Frida从入门到放弃

可以看到登陆账号密码和flag都直接写在了源代码中,使用账号密码进行登陆,可以成功登陆,并弹出flag

Frida从入门到放弃

Frida从入门到放弃


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: