Rytter 发表于 2023-10-8 22:19

Android安全(二)frida的配置与CamoDroid的介绍和使用方法

本帖最后由 Rytter 于 2023-10-9 17:09 编辑

# CamoDroid 与 Frida Android动态分析工具搭建流程(linux)



## 写在前面

这个东西配置起来比较复杂,其实最主要就是配置frida,如果你之前就使用过frida框架的话问题就不是很大

## 介绍camodroid

CamoDroid 是一个开源和开放架构的 Android 应用程序动态分析环境(沙盒),可以抵御模拟器规避。它能够模仿考虑各种级别和功能的真实设备。具有以下功能:

1. CamoDroid 可以通过掩盖分析环境的存在来模仿实际设备来运行应用程序。它监控可用于识别 Android 沙箱的 Java 和本机 (C++) API,并提供类似于真实设备提供的返回值。
2. 它将传感器模拟到正在运行的应用程序,并为正在运行的应用程序提供传感器读数。
3. CamoDroid 模仿实际的用户数据(通过受益于包含各种文件类型的文件数据集)。
它记录应用程序发出的受权限保护的 API 调用的执行。

## 配置流程

这个的大体流程可以分为三个部分

1. 安装一个android模拟器
2. 安装frida-tools在电脑上,安装frida-server在模拟器上面,同时确保模拟器上的frida-server在运行中
3. 下载相应的数据包并放在这个device中的文件夹里面

听起来很简单对不对,但是如果不踩坑的就不叫编程了

### 安装模拟器

我用的xdroid,就直接跳过了,当然你也可以用其他的模拟器,作者推荐的是国外的GenyMotion

https://www.genymotion.com/

### 安装frida-tools

这个比较简单,我ubuntu上有好几个版本的python,我是用的python310,然后直接就pip安装frida-tools就可以了

```shell
pip install frida-tools
```

首先我们打开一个终端,然后输入

```shell
sudo sysctl kernel.yama.ptrace_scope=0
```

之后再打开一个终端输入cat,然后就放着不管就可以了



之后我们新建一个python文件,输入下面这些代码,然后运行一下,如果输出正常的话就说明没有问题

```python
import frida

https://github.com/frida/frida/releases
session = frida.attach("cat")

script = session.create_script("""
rpc.exports.enumerateModules = () => {
return Process.enumerateModules();
};
""")
script.on("message", on_message)
script.load()

print( for m in script.exports.enumerate_modules()])

```

当然不出意外的话就要出意外的,如果你是这样运行那么很有可能会出现下面这个问题

> frida.ProcessNotFoundError: ambiguous name; it matches: cat (pid: 15581), cat (pid: 15582), cat (pid: 28379)

这就说明你的电脑中同时存在的三个名字相同的进程,程序不知道到底是哪一个所以就报错了,然后我们的解决方法就是找到我们终端的进程的pid才可以

我们可以暂停之前的cat,然后输出一下是哪两个cat在后台运行,然后再启动cat,看看新增加的cat是哪一个,记下pid,一般来说的话,都是最后一个pid是我们需要的pid,比如我这里就是28379这个pid,然后我们直接把上面的这个代码换成下面这个

```python
# 原来的代码是这样的
session = frida.attach("cat")

#我们改成下面这样
session = frida.attach(28379)
```

这样就可以得到类似这种输出

> ['cat', …, 'ld-2.15.so']

如果出现一个warning的话忽略就好,warning一般不重要

### 安装frida-server

首先需要安装adb,这个对于linux用户就是一行代码的事情

```shell
sudo apt-get install android-tools- adb
```



然后通过开发助手获得android系统的cpu信息,但是!!!!注意!!!如果是虚拟机,即使这里写的是可以跑arm,但是还是要下载x86_64的,我就踩了这一个坑

对了这个链接在这里

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



> 这里我要提一嘴,我不明白为什么google就是不去完善他的arm架构模拟器,我尝试过很多次android studio的arm架构在电脑上跑,结果都是会有问题,按说这也不应该是很难的事情,因为其他的模拟器比如雷电或者xdroid都有相应的arm模拟器,但是android studio的就是跑不起来,无法运行带有arm架构下编译native code的软件,就很奇怪


然后下载好之后我们按这样搞



之后我们打开一个终端输入

```shell
frida-ps -U
```

然后我们就可以看到这些进程了



这样就说明我们的frida什么的都配置好了

### 使用CamoDroid

这个官方的使用方法在这里

> https://github.com/farnoodfaghihi/CamoDroid/wiki/Usage

首先打开一个终端,使用adb安装这个软件

```shell
adb install xxx.apk
如果报错的话就加上一个参数,就像下面这样
adb install -t xxx.apk
```

之后使用命令行运行上面的frida-server,如果之前运行过了就不要再运行了

之后我们运行这个代码,就是别忘了cd到camodroid的解压目录中再运行

官方给出的命令是,但是!!!这个命令不能用,有问题

```shell
frida -U -f com.example.application -l CamoDroid.js --no-pause
```

因为frida和这个软件的更新不同步,所以出了问题,正确命令应该是

```shell
frida -U -f com.example.application -l CamoDroid.js
```

注意:com.example.application是你的包名字,如果你不知道的话可以直接用开发助手查出来



之后我们运行完命令之后就是这样的

鱼儿Zz丶 发表于 2023-10-9 03:26

支持一个

zjtzjt 发表于 2023-10-9 06:43

学习学习,支持

Crazy001 发表于 2023-10-9 09:06

学习点个赞。

debug_cat 发表于 2023-10-9 09:15

好详细的教程,感谢感谢

zwtstc 发表于 2023-10-9 10:05

教程简单明了,学到了

BAllen007 发表于 2023-10-9 14:58

保姆教学

Rytter 发表于 2023-10-9 17:02

BAllen007 发表于 2023-10-9 14:58
保姆教学

谢谢支持!

ouzhenwei 发表于 2023-10-9 17:22


学习了点个赞。

xiaobaixuepj 发表于 2023-10-10 09:36

感谢分享学习
页: [1] 2
查看完整版本: Android安全(二)frida的配置与CamoDroid的介绍和使用方法