百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

安卓逆向ADB工具的使用

liuian 2025-02-13 13:05 27 浏览

1.安卓系统分区

安卓系统分区主要包括system分区、Data分区、Cache分区和SDcard分区。

2.adb及adb指令的使用

2.1 adb工具介绍

adb 是 Android Debug Bridge的缩写,是一个调试工具,允许模拟器或已连接的 Android 设备进行通信,并为各种设备操作提供便利。它可以在 Android SDK/platform-tools 中找到,也可以下载 ADB Kits。adb工具可以通过PC端控制手机设备完成APP安装、管理、测试等功能。

2.2 adb控制设备命令

在执行相关指令前,确保设备上安装了adb服务软件,同时需要确保PC端和手机端通过USB数据线或局域网建立连接。

通过adb devices命令查看当前连接手机端安卓设备的情况。

adb devices

2.3 adb控制安卓系统

通过adb shell命令进入到安卓系统的shell界面。

adb shell

也可通过su root命令将切换用户操作shell界面。

su root

可通过adb connect命令指定连接模拟器设备。

adb connect 192.168.57.101:5555

假设安卓系统存在文件
/tmp/app-uiautomator-test.apk,可通过adb pull将文件传输到本地。

adb pull /tmp/app-uiautomator-test.apk ./1.txt

当同时管理多个安卓系统时,可通过adb -s命令指定控制安卓系统操作。

adb -s 192.168.57.101:5555 pull /tmp/app-uiautomator-test.apk ./1.txt

可通过adb install命令直接将本地apk文件安装到安卓系统中。

adb install /app_detective/apk_test/1613623805080063025_fb52c97cdc86d0ba15bb4a911ba6f991.apk

2.4 安卓系统的用户权限操作

通常情况下安卓系统的用户角色包括system、root和shell三种,进入到shell界面之后“#”提示符表示root权限,“$”提示符表示shell用户权限。进入到安卓系统的shell界面之后,可以使用linux命令对安卓系统的文件系统进行操作。

通过df命令可以查看安卓系统的分区情况。

df

df命令展示了安卓系统目前所有的文件系统(Filesystem)、占用空间情况(1K-blocks,单位KB)、分区的使用情况(Used)、分区剩余空间(Available)、已挂载的分区目录(Mounted on)。

通过cd /data/local/tmp切换绝对路径,通过cd ..切换到上层相对路径,通过cd ./tmp切换文件相对路径。

cd /data/local/tmp
cd ..
cd ./tmp

通过ls显示当前文件夹中文件目录列表,ls -a可显示所有文件包括隐藏文件,隐藏文件以.开头。

ls
ls -a

当需要在安卓系统中执行程序时,需要通过绝对路径或相对路径的方式输入命令行,然后回车执行。

可通过ls -l命令查看当前路径下的文件或文件夹内容的权限情况。左侧第一列展示了十位符号展示了文件或文件夹的权限详细信息,第一位符号为是d、-、l,d表示文件夹,-表示是普通文件,l表示符号链接。第二位至第四位符号是当前所属用户对该文件或文件夹的权限。r表示可写、w表示可读、x表示可执行。也可通过数字表示权限,r=4,w=2,x=1。第五位至第七为表示当前用户所属组对该文件或文件夹的权限。第八至第十位表示其他用户对该文件或文件夹的权限。从左数第三列和第四列分别表示文件或文件夹所属用户和所属组名称。

ls -l

下面的一系列操作是切换至/data/local/tmp/目录下,通过mkdir test命令创建了一个名为test的空文件夹,通过ls -l命令查看权限情况发现新创建的test文件夹是777权限,最后通过chmod命令将其改成了776权限并且查看删除文件夹。rm -rf为强制删除文件夹中所有数据的命令。

cd /data/local/tmp/
mkdir test
ls -l
chmod 776 test
ls -l
rm -rf test

2.5安卓系统常见分区

可通过命令切换至data分区,并查看分区中的文件系统情况。

cd /data
ls -l

app目录用于存储手机端安装的移动应用程序。对于安卓5.0系统之前版本,安装APK文件可直接将文件移动到/data/app。

可通过adb push命令将PC端的文件传输至安卓系统文件完成上述操作,使用命令之前需要通过exit退出shell界面,rm -f为强制删除文件的命令。

exit
adb push /app_detective/apk_test/1613623805080063025_fb52c97cdc86d0ba15bb4a911ba6f991.apk /data/app/123.apk
adb shell
cd data
cd app
ls -l

rm -f 123.apk

/data/data目录存储应用程序的数据文件。

cd /data/data
ls -l

/data/msic目录用于存储vpn或wifi密码数据。其中,/data/msic/wifi下的文件wpa_supplicant.conf为明文保存的wifi密码文件。可通过cat命令查看该文件的内容。

cd /data/misc
ls -l
cd wifi
ls -l
cat wpa_supplicant.conf

可通过命令切换至system分区,查看system分区的文件系统情况。

cd /system
ls -l

/system/app主要用于存放系统应用程序文件。

cd /system/app
ls -l

/system/lib主要用于存放系统应用库文件。

cd /system/lib
ls -l

/system/framework主要用于存放jar包。

cd /system/framework
ls -l

/system/bin存储了操作安卓系统常用的命令如cat、chmod等。

cd /system/bin
ls -l

2.6安卓系统的进程管理

通过ps命令查看和管理安卓系统正在使用的进程资源信息。其中,包含了名为PID的进程ID号,可以通过结合kill命令杀死相应的进程。

ps

如果目前安卓系统进程资源过多可结合管道符|和grep命令进行显示过滤。

ps | grep sh

可通过命令md5sum实现计算文件md5操作

md5sum ls

可通过以下命令找到sd卡存储路径,一般存在于/路径或/mnt路径下。二者均为软连接指向路径/storage/self/primary。

cd /
ls -l


cd /mnt
ls -l

相关推荐

教你把多个视频合并成一个视频的方法

一.情况介绍当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。m3u8文件打开后像这样:m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。视频片段像这...

零代码编程:用kimichat合并一个文件夹下的多个文件

一个文件夹里面有很多个srt字幕文件,如何借助kimichat来自动批量合并呢?在kimichat对话框中输入提示词:你是一个Python编程专家,完成如下的编程任务:这个文件夹:D:\downloa...

Java APT_java APT 生成代码

JavaAPT(AnnotationProcessingTool)是一种在Java编译阶段处理注解的工具。APT会在编译阶段扫描源代码中的注解,并根据这些注解生成代码、资源文件或其他输出,...

Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

在我们构建了UnitMesh架构之后,以及对应的demo之后,便着手于实现UnitMesh架构。于是,我们就继续开始UnitRuntime,以用于直接运行AI生成的代码。PS:...

挣脱臃肿的枷锁:为什么说Vert.x是Java开发者手中的一柄利剑?

如果你是一名Java开发者,那么你的职业生涯几乎无法避开Spring。它如同一位德高望重的老国王,统治着企业级应用开发的大片疆土。SpringBoot的约定大于配置、SpringCloud的微服务...

五年后,谷歌还在全力以赴发展 Kotlin

作者|FredericLardinois译者|Sambodhi策划|Tina自2017年谷歌I/O全球开发者大会上,谷歌首次宣布将Kotlin(JetBrains开发的Ja...

kotlin和java开发哪个好,优缺点对比

Kotlin和Java都是常见的编程语言,它们有各自的优缺点。Kotlin的优点:简洁:Kotlin程序相对于Java程序更简洁,可以减少代码量。安全:Kotlin在类型系统和空值安全...

移动端架构模式全景解析:从MVC到MVVM,如何选择最佳设计方案?

掌握不同架构模式的精髓,是构建可维护、可测试且高效移动应用的关键。在移动应用开发中,选择合适的软件架构模式对项目的可维护性、可测试性和团队协作效率至关重要。随着应用复杂度的增加,一个良好的架构能够帮助...

颜值非常高的XShell替代工具Termora,不一样的使用体验!

Termora是一款面向开发者和运维人员的跨平台SSH终端与文件管理工具,支持Windows、macOS及Linux系统,通过一体化界面简化远程服务器管理流程。其核心定位是解决多平台环境下远程连接、文...

预处理的底层原理和预处理编译运行异常的解决方案

若文章对您有帮助,欢迎关注程序员小迷。助您在编程路上越走越好![Mac-10.7.1LionIntel-based]Q:预处理到底干了什么事情?A:预处理,顾名思义,预先做的处理。源代码中...

为“架构”再建个模:如何用代码描述软件架构?

在架构治理平台ArchGuard中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在ArchGuard中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个...

深度解析:Google Gemma 3n —— 移动优先的轻量多模态大模型

2025年6月,Google正式发布了Gemma3n,这是一款能够在2GB内存环境下运行的轻量级多模态大模型。它延续了Gemma家族的开源基因,同时在架构设计上大幅优化,目标是让...

比分网开发技术栈与功能详解_比分网有哪些

一、核心功能模块一个基本的比分网通常包含以下模块:首页/总览实时比分看板:滚动展示所有正在进行的比赛,包含比分、比赛时间、红黄牌等关键信息。热门赛事/焦点战:突出显示重要的、关注度高的比赛。赛事导航...

设计模式之-生成器_一键生成设计

一、【概念定义】——“分步构建复杂对象,隐藏创建细节”生成器模式(BuilderPattern):一种“分步构建型”创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建...

构建第一个 Kotlin Android 应用_kotlin简介

第一步:安装AndroidStudio(推荐IDE)AndroidStudio是官方推荐的Android开发集成开发环境(IDE),内置对Kotlin的完整支持。1.下载And...