安卓调试环境搭建

前言

前段时间电脑重装了系统,最近准备调试一个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的调试工具。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

shell基础知识4----正则表达式

一、文本搜索工具——grep grep -参数 条件 文件名 其中参数有以下: -i 忽略大小写 -c 统计匹配的行数 -v 取反,不显示匹配的行 -w 匹配单词 -E 等价于 egrep ,即启用扩展正则表达式 -n 显示行号 -rl 将指定目录内的文件打…

git branch -vv(显示本地分支与远程分支的最新状态和提交信息)(very verbose mode)

文章目录 字段说明下一步操作建议字段说明当前状态分析相关操作建议 -vv功能说明-vv 与单个 -v 的区别总结 出现如下状况,是因为我把本地的develop分支没有提交到gitlab上的develop分支。 而是把develop分支的内容提交到了gitlab上的master分支,这样是不…

树莓派4B android 系统添加led灯 Hal 层

本文内容需要用到我上一篇文章做的驱动,可以先看文章https://blog.csdn.net/ange_li/article/details/136759249 一、Hal 层的实现 1.Hal 层的实现一般放在 vendor 目录下,我们在 vendor 目录下创建如下的目录 aosp/vendor/arpi/hardware/interfaces/…

Apache DolphinScheduler 限制秒级别的定时调度

背景 Apache DolphinScheduler 定时任务配置采用的 7 位 Crontab 表达式,分别对应秒、分、时、月天、月、周天、年。 在团队日常开发工作中,工作流的定时调度一般不会细化到秒级别。但历史上出现过因配置的疏忽大意而产生故障时间,如应该配…

MTK Android12 开机向导

文章目录 需求-场景参考资料:博客资料官网参考资料:参考资料注意点 附件资料文件说明:推荐工具:配置定制的 声明叠加层 APK需求实现替换字符、删减开机向导界面、添加开机向导界面删除部分界面需求,官网说明如下更新部…

Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战

Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战 前言1.何为Text2SQL(NL2sql)2.Text2SQL结构与挑战3.金融领域实际业务场景4.注意事项5.总结 前言 随着信息技术的迅猛发展,人机交互的方式也在不断演进。…

长沙数字孪生工业互联网三维可视化技术,赋能新型工业化智能制造工厂

长沙正积极拥抱数字化转型的浪潮,特别是在工业互联网和智能制造领域,长沙数字孪生技术的广泛应用,为新型工业化智能制造工厂的建设与发展注入了强劲动力。 在长沙智能制造工厂内,三维可视化技术被广泛应用于产线设计仿真优化和产…

FPGA工作原理、架构及底层资源

FPGA工作原理、架构及底层资源 文章目录 FPGA工作原理、架构及底层资源前言一、FPGA工作原理二、FPGA架构及底层资源 1.FPGA架构2.FPGA底层资源 2.1可编程输入/输出单元简称(IOB)2.2可配置逻辑块2.3丰富的布线资源2.4数字时钟管理模块(DCM)2.5嵌入式块 …

计算机网络期末常见问答题总结

1、试说明为什么在运输建立时使用三报文握手,如果不采用三报文握手会出现什么情况? TCP三次握手的目的是确保客户端和服务器都能够接收对方的连接请求,并建立起可靠的连接。如果只进行两次握手,可能会导致以下情况的发生: - 如果客户端发送的SYN包在网…

Redis篇-4--原理篇3--Redis发布/订阅(Pub/Sub)

1、概述 Redis 发布/订阅(Publish/Subscribe,简称 Pub/Sub)是一种消息传递模式,允许客户端订阅一个或多个通道(channel),并接收其他客户端发布到这些通道的消息。 2、Redis 发布/订阅的主要概…

第六届地博会世界酒中国菜助力广州龙美地标美食公司推动地标发展

第六届知交会暨地博会:世界酒中国菜助力广州龙美地标美食公司推动地标产品创新发展 2024年12月9日至11日,第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会在中新广州知识城盛大启幕。本届盛会吸引了全球众多知识产权领域的专业人士和…

【CSS in Depth 2 精译_074】第 12 章 CSS 排版与间距概述 + 12.1 间距设置(下):行内元素的间距设置

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第四部分 视觉增强技术 ✔️【第 12 章 CSS 排版与间距】 ✔️ 12.1 间距设置 12.1.1 使用 em 还是 px12.1.2 对行高的深入思考12.1.3 行内元素的间距设置 ✔️ 12.2 Web 字体12.3 谷歌字体 文章目…

基于FPGA的智能电子密码指纹锁(开源全免)

基于FPGA的智能电子密码指纹锁 一、功能描述硬件资源需求 二、整体框架知识准备AS608指纹模块4*4数字键盘模块 三、Verilog代码实现以及仿真验证1.AS608_data模块2.check_hand模块3.four_four_key模块4.check_mima模块5.change_mima模块6.seg_ctrl模块7.uart_top模块8.key_debo…

汽车网络安全 -- IDPS如何帮助OEM保证车辆全生命周期的信息安全

目录 1.强标的另一层解读 2.什么是IDPS 2.1 IDPS技术要点 2.2 车辆IDPS系统示例 3.车辆纵深防御架构 4.小结 1.强标的另一层解读 在最近发布的国家汽车安全强标《GB 44495》,在7.2节明确提出了12条关于通信安全的要求,分别涉及到车辆与车辆制造商云平台通信、车辆与车辆…

【C++】快速排序详解与优化

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯快速排序的核心思想1. 算法原理2. 算法复杂度分析时间复杂度空间复杂度 💯快速排序的代码实现与解析代码实现代码解析1. 递归终止条件2. 动态分配子数组3. 分区…

Redis从入门到进阶(总结)

以下内容均以CentOS7为背景。 一、Redis安装及启动 mysql(读:2000/s;写:600/s) redis(读:10w/s;写:8w/s)通过官方给出的数据单机并发可以达到10w/s&#xf…

设计模式——单例模式和工厂模式

单例模式:一个类只创建一个类对象(节省内存减少类对象数量,一个类对象多次重复使用) 格式: class a: pass ba() z1b z2b #z1和z2为同一个类对象 工厂模式:(大批量创建具体的类对象,统一类对象入口便于维护&#xf…

Flume基础概念

目录 作用组件构成ClientFlowAgentSourceSinkEvent 和Log4j的区别与定位事务传出流程输入到sourcesource端输入Channel 接收输入到SinkSink输出 作用 Flume可以从各种来源(如日志文件、消息队列、网络数据、文件系统、数据库等)收集数据,并将…

PHP语法学习(第七天)-循环语句,魔术常量

老套路了,朋友们,先回忆昨天讲的内容PHP语法学习(第六天)主要讲了PHP中的if…else语句、关联数组以及数组排序。 想要学习更多PHP语法相关内容点击“PHP专栏!” 下列代码都是在PHP在线测试运行环境中得到的!! 还记得电…

生成:安卓证书uniapp

地址: https://ask.dcloud.net.cn/article/35777 // 使用keytool -genkey命令生成证书: 官网: keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore ----------------------------------…