安卓调试环境搭建

前言

前段时间电脑重装了系统,最近准备调试一个apk,没想到装环境的过程并不顺利,很让人火大,于是记录一下。

反编译工具下载

下载apktool.bat和apktool.jar 官网地址:https://ibotpeaches.github.io/Apktool/install/

把这两个下载后记得配置一下环境变量。

里面的资料相当全,Androidkiller这些都有,不过根据本人实际测试,jeb、Android stdio不能正常使用。

当然,sdk里的工具都能正常使用,例如ddms。

汇编层分析工具ida

由于apk的逆向构建在so层,所以还需要分析so层的工具:

[IDA] 加密与解密-ida的下载及详细安装过程(附有下载文件)_ida安装教程-CSDN博客

以上工具都是偏静态分析,我们还需要下载一些工具应对复杂的逆向。

动态调试环境

现在我们还需要动态调试的环境:一台ROOT后的手机、合适的ide等等。

手机调试环境

由于笔者使用的真机是小米8,因此记录一下ROOT过程,因为网上很多资源不好找。

首先先解锁bl,这个不用多讲了,教程很多。

然后需要刷入twrp,因为我们要通过 TWRP 安装 Magisk。

我们前往该地址:Download TWRP for dipper 下载twrp-3.5.2_9-0-dipper.img

参考教程:通过 TWRP 安装 Magisk 操作指南 – MIUI历史版本

至于magisk,笔者选择在Release Magisk v26.3 · topjohnwu/Magisk下载

我们还需要xposed框架,方便使用算法助手这些工具,在这里下载即可:Welcome to the Xposed ! | Xposed delta

算法助手下载地址:算法助手2.1.2.apk - 蓝奏云

安装xposed框架的教程,参考:Xposed下载与安装 - 陈晓猛 - 博客园

原博客的资源链接已经失效了,看看步骤就好。

安装完后,显示框架未激活,解决办法:XP已安装但未激活 解决方法【xposed框架吧】_百度贴吧

不过其实这是文件权限的问题,鉴于原帖太麻烦,所以直接使用shell命令chmod权限711即可。

以上手机调试环境就搭建完毕了。

像ddms这些东西,在sdk里,不过多赘述。

hook工具frida:Releases · frida/frida · GitHub

由于笔者还需要合适的ide动态调试apk,原本android stdio是一个很好的选择,但是大家都知道谷歌有点小毛病,导致配置过程有点玄学,jeb虽然功能很强大,但可能是笔者更换了系统的原因,一时间居然没找到可用的版本,因此笔者考虑使用idea。

idea动态调试

这里笔者就讲详细一点了。

idea的下载之旅居然也不顺畅,笔者直接从官网下载了最新版本,然后寻找脚本,奈何找了一个又一个,像是脚本执行、激活码这些,居然都不成功,顿时笔者人都麻了,当时准备更换旧版本,幸好,通过这篇博客成功了:IDEA 2024 安装激活教程(附激活补丁,亲测有效) - 码路编程 - 博客园

idea调试smali语言

我们需要下载smaliidea,虽然导入文件时idea会提醒我们并帮助我们下载smali support,但是这个插件会报错,因此我们需要额外下载,下载地址:JesusFreke / smali / Downloads — Bitbucket

选择smalidea-0.05.zip即可,在idea内进入File -> Settings -> Plugins 然后点击 Install plugin from disk,然后安装插件。

顺便一提,记得在File -> setting -> Editor -> file Types 里面找smali ,如果发现有两个,去掉自带的 *.smali。

然后给smaliidea加上*.smali。

创建一个”Remote” (Run->Edit Configurations),

我们在sdk文件夹内启动ddms,由于它使用8700端口,因此配置如下:

启动ddms,电脑连接手机,在ddms内点击对应的进程,idea点击调试按钮,就可以开始在idea内打断点开始调试了。

总结

介绍了安卓逆向的基本环境搭建,下载了各种静态分析工具,并使用idea作为smali的调试工具。

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

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

相关文章

【工具】音频文件格式转换工具

找开源资源、下载测试不同库的效果,然后找音频、下载音频、编写代码、测试转换、流程通畅。写一个工具花的时间越来越多了!这个 5 天 这个工具是一个音频文件格式转换工具,支持对 mp3.aac.wav.caf.flac.ircam.mp2.mpeg.oga.opus.pcm.ra.spx.…

在ARM Linux应用层下使用SPI驱动WS2812

文章目录 1、前言2、结果展示3、接线4、SPI驱动WS2812原理4.1、0码要发送的字节4.2、1码要发送的字节4.3、SPI时钟频率 5、点亮RGB5.1、亮绿灯5.2、亮红灯5.3、亮蓝灯5.4、完整程序 6、RGB呼吸灯7、总结 1、前言 事情是这样的,前段时间,写了一个基于RK3…

BERT:用于语言理解的深度双向 Transformer 的预训练。

文章目录 0. 摘要1. 介绍2. 相关工作2.1 无监督的基于特征的方法2.3 无监督微调方法2.3 从受监督数据中迁移学习 3. BERT3.1 预训练 BERT3.2 微调 BERT 4. 实验4.1 GLUE4.2 SQuAD v1.14.3 SQuAD v2.04.4 SWAG 5. 消融研究5.1 预训练任务的影响5.2 模型大小的影响5.3 使用 BERT …

在算网云平台云端在线部署stable diffusion (0基础小白超详细教程)

Stable Diffusion无疑是AIGC领域中的AI绘画利器,具有以下显著优势: 1、开源性质,支持本地部署 2、能够实现对图像生成过程的精确控制 虽然SD在使用上有很多的有点,但缺点也是不言而喻的,由于AI绘画的整个过程以及现…

设计模式——Chain(责任链)设计模式

摘要 责任链设计模式是一种行为设计模式,通过链式调用将请求逐一传递给一系列处理器,直到某个处理器处理了请求或所有处理器都未能处理。它解耦了请求的发送者和接收者,允许动态地将请求处理职责分配给多个对象,支持请求的灵活传…

macOS 15.1.1 (24B2091) 系统中快捷键符号及其代表的按键的对照表

以下是 macOS 15.1.1 (24B2091) 系统中快捷键符号及其代表的按键的对照表: 符号按键名称描述⌘Command (Cmd)常用的功能键,用于执行大多数快捷操作。⌥Option (Alt)Option 键,常用于辅助操作和特殊字符输入。⇧ShiftShift 键,常用…

el-table一键选择全部行,切换分页后无法勾选

el-table一键全选,分页的完美支持 问题背景尝试解决存在问题问题分析 解决方案改进思路如下具体代码实现如下 问题背景 现在有个需求,一个表格有若干条数据(假设数量大于20,每页10条,保证有2个以上分页即可)。 现在需要在表格上方…

【55 Pandas+Pyecharts | 实习僧网Python岗位招聘数据分析可视化】

文章目录 🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 去除重复数据2.4 调整部分城市名称 🏳️‍🌈 3. Pyecharts数据可视化3.1 招聘数量前20岗位3.2 各城市招聘数量3…

JAVA期末复习(30道填空题梳理知识点)

通过梳理一些常见的填空题,有效地复习知识点,帮助大家顺利通过考试。本文将总结30道典型的填空题,并分析其中涉及的知识点。 一、基本语法 JAVA程序的入口方法是: public static void main(String[] args) { }这个题目考察了JAVA…

C++11新特性之线程std::thread

C std::thread的定义和功能 std::thread是C11引入的标准库类,用于创建和管理线程。通过std::thread,程序可以并发执行多个任务,从而提高效率。 功能与作用: 创建线程:可以启动一个线程执行某个函数或任务。管理线程…

【赵渝强老师】PostgreSQL的控制文件

PostgreSQL数据库的物理存储结构主要是指硬盘上存储的文件,包括:数据文件、日志文件、参数文件、控制文件、WAL预写日志文件等等。 下面重点讨论一下PostgreSQL的控制文件。 视频讲解如下 【赵渝强老师】PostgreSQL的控制文件 控制文件记录了数据库运行…

在做题中学习(79):最小K个数

解法:快速选择算法 说明:堆排序也是经典解决问题的算法,但时间复杂度为:O(NlogK),K为k个元素 而将要介绍的快速选择算法的时间复杂度为: O(N) 先看我的前两篇文章,分别学习:数组分三块&#…

【linux】shell(32)-循环控制

for循环 在 Shell 脚本中,for 循环是一种常见的循环结构,用于遍历列表、数组或命令输出。 基本语法 for 循环的基本语法如下: #!/bin/bash for variable in list docommands donevariable 是一个临时变量,用于存储每次迭代中的…

Pydantic 动态字段:使用和不使用 `@computed_field` 的对比指南

Pydantic 动态字段:使用和不使用 computed_field 的对比指南 安装 Pydantic不使用 computed_field 的实现特性 使用 computed_field 的实现特性 使用和不使用 computed_field 的对比适用场景分析什么时候不需要 computed_field?什么时候使用 computed_fi…

Docker Engine多平台镜像构建(ARM64、x64、riscv64...)

Docker Engine多平台镜像构建(ARM64、x64、riscv64…) 1. Docker Engine安装 设置 Docker 的存储库# Add Dockers official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://do…

连续大涨,汉王科技跑步进入AI应用舒适区

OpenAI正在进行的“12天12场直播”让行业再次沸腾,二级市场也在寻找AI应用的机会。这刺激了12月首周同花顺sora概念涨超11%,远超同期大盘指数涨幅。 截至目前,“满血版”推理模型o1和月收费高达200美元的ChatGPT Pro订阅服务&…

[MySQL基础](三)SQL--图形化界面+DML

本专栏内容为:MySQL学习专栏 💓博主csdn个人主页:小小unicorn ⏩专栏分类:MySql 🚚代码仓库:小小unicorn的代码仓库🚚 🌹🌹🌹关注我带你学习编程知识 目录 图…

基于单片机的智能灯光控制系统

摘要 现在的大部分的大学,都是采用了一种“绿色”的教学方式,再加上现在的大学生缺乏环保意识,所以在学校里很多的教室,在白天的时候灯都会打开,这是一种极大的浪费,而且随时都有可能看到,这是…

数据分析及应用:滴滴出行打车日志数据分析

目录 0 日志数据集介绍 1 构建数据仓库 1.1 ods创建用户打车订单表 1.2 创建分区 1.3 上传到对应分区

解决Windows与Ubuntu云服务器无法通过Socket(udp)通信问题

今天在写Socket通信代码的时候,使用云服务器自己与自己通信没有问题,但是当我们把客户端换为Windows系统的时候却无法发送信息到Linux当中,耗时一上午终于搞定了😒。 问题: 如上图,当我在windows的客户端…