当前位置: 首页 > article >正文

安卓调试环境搭建

前言

前段时间电脑重装了系统,最近准备调试一个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.kler.cn/a/428558.html

相关文章:

  • nslookup在内网渗透的使用
  • leetcode——轮转数组(java)
  • 低代码系统-产品架构案例介绍、明道云(七)
  • AI守护煤矿安全生产:基于视频智能的煤矿管理系统架构解析
  • 经验收录/用复盘的心态去学习
  • manim(manimgl)安装教学-win11(2024-08)
  • RTCMultiConnection 跨域问题解决
  • js循环导出多个word表格文档
  • OD B卷【恢复数字序列】
  • TCP客户端服务器端通信(线程池版)
  • 【机器学习】基于SVM、逻辑回归和CNN的手写数字识别:性能对比与应用分析
  • (七)腾讯cloudstudio+Stable-Diffusion-webui AI绘画教程-安装Stable-Diffusion-WebUI
  • Vue3组件通信(父传子,子传父,跨组件通信)
  • 21届秋/校招面经
  • xLSTM 阅读笔记
  • 日本IT|企业需要什么样的技术?
  • 处理后端返回的时间格式问题
  • MySQL -- CURD(下)
  • AUTOSAR CP复杂驱动程序(Complex Driver,CDD)的设计与集成指南导读
  • 动态规划子序列问题系列一>最长递增子序列
  • 用Python开发“迷你井字棋”小游戏
  • find命令深度详解
  • 计算机视觉:学习指南
  • 【python 批量将PPT中各种东西保存为图片 没有水印】
  • 在 Spring Boot 中使用 JPA(Java Persistence API)进行数据库操作
  • Telnet不安全?如何配置使用更安全的STelnet远程登录华为AR1000V路由器?