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

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就可以了

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

sudo sysctl kernel.yama.ptrace_scope=0

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

20231008104803

之后我们新建一个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([m["name"] 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,然后我们直接把上面的这个代码换成下面这个

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

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

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

[‘cat’, …, ‘ld-2.15.so’]

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

安装frida-server

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

sudo apt-get install android-tools- adb

20231008112728

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

对了这个链接在这里

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

20231008161300

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

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

20231008163146

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

frida-ps -U 

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

20231008150334

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

使用CamoDroid

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

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

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

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

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

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

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

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

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

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

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

20231008162246

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

20231008162528

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值