Frida安装与使用,对nu1lbook第四章-数字壳的传说题目进行脱壳

工具介绍:

PKID-查壳工具:可以对apk包进行查壳处理。

下载链接:

window:apk查壳工具下载 apk查壳神器PKiD v0.12 中文绿色免费版 下载-脚本之家 (jb51.net)

Mac:APK查壳工具PKID - SecPulse.COM | 安全脉搏

Java版:[下载]PKID-APP查壳工具-Android安全-看雪-安全社区|安全招聘|kanxue.com

ADB-调试桥,连接Android和windows间的桥梁。

下载链接:ADB Download - Get the latest version of ADB and fastboot

下载完成后需要进行环境变量配置:

此电脑 -> 高级系统设置 -> 高级 -> 环境变量 -> 系统变量 -> 变量 Path -> 编辑环境变量

->新建一个与下载路径一样的环境变量。

形如../../../ platform-tools

安装完成后Win+R启动cmd命令行窗口可以通过adb version验证是否安装成功。

基本使用命令:

adb help //帮助文档
adb connect IP:port //连接
adb shell //命令行模式-使用linux命令
adb kill-server
adb start-server //关闭和开启服务

我使用的mumu模拟器,使用命令adb connect 127.0.0.1:7555完成连接。 

Frida-基于python+java-hook框架

Windows安装:

pip install python3 //需要python3,自习安装
pip install frida
pip install frida-tools //安装frida和工具包,%注意版本

网传的比较好用的版本,我没有尝试
frida              12.11.18
frida-tools        5.3.0
frida-server       12.8.10
 
 
frida              12.7.26
frida-tools        5.3.0
frida-server       12.8.10

Android服务端安装:

//注意手机型号,我使用的mumu模拟器进行的。

https://github.com/frida/frida/releaseshttps://github.com/frida/frida/releasesReleases · frida/frida (github.com)

 从上面链接找与刚才的Frida版本相同的,然后进行下载相应版本的server后进行解压。

 将文件重命名为frida-server,再使用push命令将文件发送到/data/local/tmp中。

adb push .\frida-server /data/local/tmp

通过ls命令,frida-server存在于tmp目录中,然后给予授权777权限于当前目录下即/data/local/tmp进行chmod 777 frida-server。

安装完成。

Frida-DECDump-脱壳

pip3 install frida-dexdump

jadx-反编译工具

GitHub - skylot/jadx: Dex to Java decompiler

 有JDK的就可以下载第一个,然后在lib中打开这个jadx-gui-1.4.7.jar文件。

N1BOOK

题目链接:https://book.nu1l.com/tasks/#/pages/apk/4.4

下载下来一个n1book1_android的apk包,

使用APK进行查壳

 

然后安装进模拟器。

然后adb connect  127.0.0.1:7555,之后进行adb shell

进入前面下载了frida-server的地方,cd /data/local/tmp

启动

 开启另一个命令框,以frida-ps -U,查看有哪些进程

frida-dexdump -U -p port //通过端口
frida-dexdump -U -n n1book1 //通过名字

然后就会在相关的文件夹下面出现相关的dex包。比如我的就是c:\users\18134中。

再通过jadx对大于500K的dex包查看按理来说就可以找到重要信息。

问题与不足:

并没有找到相关的flag,根据官方WP:

按照文章中提到的几种脱壳方式完成脱壳,
脱壳之后发现密文为u0uYYmh4yRpPIT/zSP7EL/MOCliVoVLt3gHcrXDymLc=,
采用AES加密,
密码为n1book,
iv为123456,
解密得到flag为:n1book{h3ckF0rfun}

然后看了另一位大佬的WP,是从dex中找到了onCreate()与secrect()类,在secrect类中存在以上密码与解密,但是我没有找到,大佬解出来是三个包,我解出了23个,也有可能是版本问题。

声明:

好好学习,跪拜大佬。仅供学习与参考。

Frida是一款强大的动态分析工具,可以用于脱壳测试。下面是使用Frida进行脱壳测试的详细教程: 1. 安装Frida 首先需要在电脑上安装Frida,可以从Frida官网下载安装进行安装安装完成后,可以在终端中输入以下命令来检查Frida是否安装成功: ``` frida-ps -U ``` 如果输出了设备中运行的进程信息,则Frida安装成功。 2. 查找目标应用程序 使用以下命令来查看设备上所有运行的应用程序: ``` frida-ps -U ``` 找到目标应用程序的进程ID或名称。 3. 编写Frida脚本 编写Frida脚本来实现脱壳功能。以下是一个简单的脚本示例: ``` function dump_memory(address, size, file_path) { var buffer = Memory.readByteArray(ptr(address), size); var file = new File(file_path, 'wb'); file.write(buffer); file.flush(); file.close(); console.log('Dumped memory to ' + file_path); } Interceptor.attach(Module.findExportByName(null, 'memcpy'), { onEnter: function(args) { if (args[0].toInt32() == 0x12345678) { dump_memory(args[1], args[2], '/sdcard/dump.bin'); } } }); ``` 这个脚本会在应用程序调用memcpy函数时,判断目标内存地址是否为0x12345678,如果是则将内存内容保存到指定的文件中。 4. 运行Frida脚本 使用以下命令来运行Frida脚本: ``` frida -U -l script.js -f com.example.app ``` 其中,-U表示连接USB设备,-l指定脚本文件,-f指定目标应用程序。 5. 测试脚本 运行目标应用程序,触发脚本中的条件,查看指定的文件是否成功保存了内存内容。 注意:脚本中的条件和保存路径需要根据实际情况进行修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想造一顶白cap

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值