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

news2024/11/25 10:43:23

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1071073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图片素材免费下载,高清无水印,无需担心版权问题。

找图片素材就上这8个网站,免费可商用,建议收藏起来~ 1、菜鸟图库 https://www.sucai999.com/pic.html?vNTYwNDUx 网站主要为新手设计师提供免费素材,这些素材的质量都很高,类别也很多,像平面、UI、电商、视频、图片…

JVM命令行监控工具

JVM命令行监控工具 概述 性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。 Java作为最流行的编程语言之一,其应用性能诊断一直受到业界广泛关注,可能…

【Spring MVC研究】MVC如何浏览器请求(service方法)

文章目录 1. DispatcherServlet 的 service 方法1.1. processRequest 方法1.2. doService 方法 背景:平时我们学习 MVC 重点关注的时DispatcherServlet 的 doDispatcher 方法,但是在 doDispatcher 方法之前 还有请求处理的前置过程,这个过程…

B站涨粉,UP主涨粉技巧有哪些?

B 站作为深受年轻人喜爱的社交媒体平台,是一个不断生产优质内容的多元化文化社区,有不少视频出圈。随着视频行业的成熟发展,视频创作者们的竞争愈发激烈,不少创作者有涨粉难,曝光差的困扰。而UP主连续不断的涨粉不仅取…

CS5210芯片设计|CS5210设计方案|HDMI转VGA方案|

CS5210方案应用,CS5210方案设计,HDMI转VGA方案,国产集睿致远研发CS5210 HDMI到VGA转换器结合了HDMI输入接口和模拟RGB DAC输出。支持内部LDO,节省成本,优化电路板空间。CS5210适用于各种市场和显示应用程序&#xff0c…

ToBeWritten之车联网安全中常见的TOP 10漏洞

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬…

MySql 终端常用指令

一、开发背景 利用数据库实现数据的增删改查 二、开发环境 Window10 mysql-8.0.33-win64 三、实现步骤 1、管理员模式打开终端 2、登录数据库(停止 开启 登录) 具体指令参考 MySql 安装篇 ​​​​​​​ ​​…

Redis中zSet类型的操作

一、什么是zSet zSet是一种特殊的set集合,它的值不能重复,但会对值进行排序。它有个score值,按照Score值从小到大进行排序。score称为分值,它的值是任意正浮点数。数值越小的排序越靠前。如果score相同,则按值的编…

NPM使用

nodejs 安装查看:windows11 安装Nodejs-CSDN博客 一、初始化项目 1、创建文件夹 E:\vue\projectCode\npm-demo 2、打开cmd 进入E:\vue\projectCode\npm-demo目录输入cmd 点击回车 3、先看看npm命令是否可用 npm -v 4、初始化项目 npm init package name: (npm…

动态内存管理函数(malloc,calloc,realloc,free)

动态内存函数 1.1malloc和free C语言提供了一个动态内存开辟的函数: void* malloc (size_t size); 这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。 如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败&#…

基于YOLOv8模型的120类狗狗目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要:基于YOLOv8模型的120类狗狗目标检测系统可用于日常生活中检测与定位车辆目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法训练数…

CMYK to RGBA

1、 算法原理 我们首先来看算法原理: 显而易见,CMYK是存储起来的四个值,通过变换可以转换成RGBA值,其中A值始终为255 2、原始代码 // The original code uses a macro UNROLL8 to unroll code and // each iteration processes eight pixels. // // The macro actually…

Spring的AOP开发-AOP简介

目录 AOP简介 AOP概念 AOP思想的实现方案 模拟AOP的基础代码 AOP相关概念 AOP简介 AOP概念 AOP,Aspect Oriented Programming,面向切面编程,是对面向对象编程OOP的生化,OOP是纵向对一个事务的抽象,一个对象包括静…

AIGC之下的创意革命,每个人都是文明的设计师

创意,人类文明的灵魂和火花。人类族群进入文明社会以来,创作基本由少数精英主导,以孔子为代表的东方教育家、哲学家提出由“学在民间”替代“学在官府”的知识传播体系也并未得到真正构建,作品一贯通过有限的渠道传播,…

rsync 远程同步实现快速、安全、高效的异地备份

目录 1 rsync 远程同步 1.1 rsync是什么? 1.2 rsync同步方式 1.3 rsync的特性 1.4 rsync的应用场景 1.5 rsync与cp、scp对比 1.6 rsync同步源 2 配置rsync源服务器 2.1 建立/etc/rsyncd.conf 配置文件 3 发起端 4 发起端配置 rsyncinotify 4.1 修改rsync…

VB编程实现股票量化交易之K线图显示

最近在一个朋友的推荐下,开始研究股票的量化交易系统的开发,这里除了股票数据接口 要实现量化交易不难,基本点就是要有股票数据接口和股票交易接口,还有一些针对指标的策略算法。 Private Function CursorInfo(x As Integer, y A…

java:代理模式

概念代理模式 概念: 真实对象:被代理的对象,背景的联想总部代理对象:也就是那个西安联想代理商代理模式:代理对象代理真实对象,达到增强真实对象功能的目的 实现方式: 静态代理:有一…

vuejs中使用axios时如何追加数据

前言 在vuejs中使用axios时&#xff0c;有时候需要追加数据,比如,移动端下拉触底加载,分页加载,滑动滚动条,等等,这时候就需要追加数据了,下面我们来演示下. 代码演示 <template><div><div><el-button type"primary" click"handleBtnGetJ…

AK F.*ing leetcode 流浪计划之最近公共祖先(倍增算法)

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 本期话题&#xff1a;在树上查找2个结点的最近公共祖先 问题提出 最近公共祖先定义 最近公共祖先简称 LCA&#xff08;Lowest Common Ancestor&#xff09;。两个节…

STM32MP157汇编流水灯

.text .global _start _start: /* 使能GPIOE、GPIOF寄存器 RCC_MP_AHB4ENSETR * 基地址: 0x50000000 偏移地址: 0xA28 0x50000A28* RCC_MP_AHB4ENSETR[4]->1 RCC_MP_AHB4ENSETR[5]->1*/ LDR R0,0x50000A28LDR R1,[R0]ORR R1,R1,#(0x1<<4)STR R1,[R0]LDR R0,0x…