【Android逆向】Android环境配置与常用工具介绍


————————————————
版权声明:本文为CSDN博主「SogK1997」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dive668/article/details/119450869
————————————————

面向招聘需求

工具要求

熟悉IDA Pro、GDB、JEB、JADX等常用逆向分析工具,具备较强的逆向分析能力;
掌握Android反编译,脱壳,静态分析、动态调试;掌握jadx, IDA, JEB, unidbg等工具;
熟悉使用IDA、OllyDeBug、WinDeBug或类似调试工具中的一种;
熟练掌握各种调试工具:Smali、Dedexer、Dexdump、Apktool、Dex2jar、IDA、OLLYDBG其中一种或多种;
熟练掌握各种调试工具:Smali、Dedexer、Dexdump、Apktool、Dex2jar、jd-gui、AndroidKiller、Jeb、IDA其中一种或多种,有Olly DBG使用基础。
对逆向工程有浓厚的兴趣,熟练apktool、Dex2jar、jeb、IDA、GDB等各种反编译及调试工具的使用;

框架要求

熟悉ARM、x86/64汇编以及smali,熟练掌握软件逆向静态分析、动态调试、代码跟踪等;
熟练掌握android的hook技术,熟悉DEX、ELF文件格式,熟悉DEX、ELF加壳脱壳;
熟练掌握Xposed、Cydia Substrate、Frida等其中一种Hook工具进行逆向开发。
熟练使用Xposed、frida等框架;
了解注入、Hook技术原理,能使用Frida、Xposed等框架编写Hook代码;
熟悉使用Xposed、Theos、frida等框架;

了解到IDA是所有工具中都要求掌握的一个:
IDA Pro

The best-of-breed binary code analysis tool, an indispensable item in the toolbox of world-class software analysts, reverse engineers, malware analyst and cybersecurity professionals.
同类最佳的二进制代码分析工具,是世界一流软件分析师、逆向工程师、恶意软件分析师和网络安全专业人员工具箱中不可或缺的一项。

IDA

IDA 反汇编器和调试器是一种交互式、可编程、可扩展、多处理器反汇编器,托管在 Microsoft Windows、Linux 或 Apple macOS 上。IDA 已成为分析恶意代码、漏洞研究和商业现货验证的事实上的标准。

参考学习&资源工具

Apktool Introduction
AndroidDevTools
Android_Tools
IDA_Pro_v7.5_Portable.zip
IDA Free
【吾爱破解首发】Android Killer修复版

吾爱网址:https://www.52pojie.cn/thread-1400404-1-1.html
https://cloud.189.cn/t/IZ3A7fUrmaq2 (访问码:5wdo)
签名密钥密码为52pojie.cn
压缩包解压密码为52pojie.cn
安装使用Android Killer需要java环境:
JDK 16.0.2 通用版本 (Java Development Kit)
Java SE 8 Archive Downloads (JDK 8u202 and earlier)
JRE 含义是(Java Runtime Environment)

1.写在前面

Android逆向是一个综合各方面能力的应用,对经济能力与技术能力要求相对较高。不像Windows,只需要有一台电脑,就能愉快的草起来。它需要逆向人员拥有一定的 Android开发经验,能够基本理解 Android程序的结构,程序工作流程,以及了解熟悉一定的Api。开发语言上,又需要能够读懂Java, Smali,C+,arm代码。这是对逆向人员的考验,也是他的有趣之处。

注意:Java和C++要求能看懂,Smali和arm不仅要看懂,还要会修改。

2 Android的简单介绍

Android应用程序是采用Java语言开发,传统的Java语言运行是通过JVM源文件编译成Java字节码运行,但是 Android虽然是Java语言开发,但是字节码并不是最终的运行格式,并且由于版本问题和移动设备电量等问题, Google自行开发了一个虚拟机运行Android程序,这个虚拟机称为 Dalvik。当完成源代码的开发后,首先会将Java源码转换为字节码,然后通过DX工具,将字节码文件转换了.dex的文件,最后该dex格式的文件在 Dalvik上运行。

3配置 Android开发环境

①配置 Java SE Development Kit(JDK)

下载java开发包。请自行选择需要的版本下载,一般需要配置jdk1.7(jidk7),或jdk1.8(jdk8)。之后配置变量:

  • PATH
  • JAVA_HOME
  • CLASSPATH

官网版本分发包:Oracle Java Archive

②安装 Android Studio(需要科学上网,否则无法正常使用)

Developer:http://developer.android.com/develop/index.html
Google官方地址,用到的情况下非常多的。
安装后首次启动会自动要求配置 AndroidSDK,只要根据提示进行设置就可以。
在这里插入图片描述

遇到报错- HAXM(Intel Hardware Accelerated Execution Manager)安装

在这里插入图片描述
Intel® HAXM installation failed. To install Intel® HAXM follow the instructions found at: https://github.com/intel/haxm/wiki/Installation-Instructions-on-Windows

HAXM的github网站:https://github.com/intel/haxm
下载网址:https://github.com/intel/haxm/releases
下载后安装,提示没有满足要求:
在这里插入图片描述
在这里插入图片描述
问题反馈详情页:Install Haxm failed with ‘The system requirements are not satisfied’ #367

可以在具有管理员权限的 Windows 终端中通过“bcdedit /set hypervisorlaunchtype off”禁用 Hyper-V。然后重新启动你的电脑再试一次。
在这里插入图片描述
之后重启电脑,运行haxm的安装程序,成功安装:
在这里插入图片描述

Windows 10 上的 Hyper-V 简介

Windows 10 Hyper-V 系统要求

硬件要求

虽然本文档没有提供 Hyper-V 兼容硬件的完整列表,但以下项目是必要的:

具有二级地址转换 (SLAT) 的 64 位处理器。
CPU 支持 VM Monitor Mode Extension(英特尔 CPU 上的 VT-x)。
最少 4 GB 内存。由于虚拟机与 Hyper-V 主机共享内存,因此您需要提供足够的内存来处理预期的虚拟工作负载。

需要在系统 BIOS 中启用以下项目:

虚拟化技术 - 可能有不同的标签,具体取决于主板制造商。
硬件强制数据执行保护。

cmd下msinfo32查看硬件信息以及是否开启hype -v
在这里插入图片描述
验证硬件兼容性

检查上述操作系统和硬件要求后,通过打开 PowerShell 会话或命令提示符 (cmd.exe) 窗口,键入systeminfo,然后检查 Hyper-V 要求部分,验证 Windows 中的硬件兼容性。如果列出的所有 Hyper-V 要求的值为Yes,则您的系统可以运行 Hyper-V 角色。如果任何项目返回No,请检查本文档中列出的要求并在可能的情况下进行调整。

在这里插入图片描述

③安装Android SDK

如果没有安装 Android Studio,也可以独立下载配置 Android sdk管理器。Developer官网或者百度即可下载。如果不清楚具体哪个包有什么作用的话,就下载默认打钩的所有扩展工具包!!
开发调试 Android程序必备工具包。逆向中用到也非常多!!
添加全局环境变量:
在这里插入图片描述

PATH:
Androidsdk\platform-tools
Androidsdk\tools

安装成功后可以在cmd命令行通过adb命令来测试。

④安装 Android NDK

已安装 Android Studio的情况下,可以直接通过 Studio来进行安装;
使用C++代码编译成arm代码,再bian’yi’chen
在这里插入图片描述

⑤安装 eclipse

如果前面没有安装 Android Studio,则需要安装 eclipse+Adt来进行代替

Eclipse:
下载地址:http://www.eclipse.org/downloads/
建议选择带Java以及C+插件的
用法: eclipse界面中Help-> Install new Software-〉Add
Name: Android ADT (development toolkit)
Location:https://dl-ss1.google.com/android/eclipse/
按照提示点击Next会自动安装。安装完后需要手动配置SDK与NDK路径。

4.安卓模拟器 blues tacks的下载与安装

好用的模拟器很多,不过都是x86内核的,所以随便选一个顺手的就可以。这里课程中就使用 bluestacks。
可能 bluestacks不能自动连接上电脑,此时需要进行如下修改
Adb kill-server
Adb start-server
或Adb connect 127.0.0. 1
就可以了

5.一台调试用手机

调试用手机请务必专门买一台, Google的亲儿子二手的就可以。
课程中使用 nexus4 ocam(mako),二手价格在250-350之间,你们也可以选择 Nexus.5Nexus7(flo/deb/ grouper/ tilapia), nexus10之类的。
如果实在不想买 Google的话,也可以弄一台已经root过的手机。后面到 native层的时候就无法用模拟器糊弄过去的了。

自己采用一台redmi5进行测试,线刷MIUI开发版后,解锁如下。
详细可以博主另一篇文章:【教程】Redmi 5 root参考教程
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是一些常用的Android逆向分析工具,它们可以用于反编译、调试、内存分析、Hook等方面: 1. jadx:一款开源的Java反编译工具,可以将Android应用程序的APK文件反编译为Java源代码,方便进行分析和修改。 2. APKTool:一款开源的反编译和重新打包工具,可以将Android应用程序的APK文件解压为资源文件和代码文件,方便进行修改和重新打包。 3. Dex2jar:一款用于将Android应用程序的DEX文件转换为JAR文件的工具,可以用于反编译和分析Android应用程序。 4. Frida:一款跨平台的动态插桩工具,可以用于修改应用程序的行为和数据,具有强大的Hook和脚本化功能。 5. Xposed:一款基于Frida的Android插件框架,可以用于Hook应用程序的Java层和Native层代码,实现各种功能。 6. Burp Suite:一款流行的渗透测试工具,可以用于拦截和修改Android应用程序的网络请求和响应,进行漏洞挖掘和安全测试。 7. JD-GUI:一款Java反编译工具,可以将Android应用程序的APK文件反编译为Java源代码,方便进行分析和修改。 8. Android Debug Bridge (ADB):一个调试工具,可以用于与Android设备建立连接,进行调试、文件传输、进程管理等操作。 9. Android Studio:一款集成开发环境,可以用于开发、调试、构建和打包Android应用程序,具有强大的调试和分析功能。 当然,这里列举的只是一些常用的Android逆向分析工具,还有很多其他的工具和库,如IDA Pro、Ghidra、Radare2、JEB等,都可以用于Android逆向分析和漏洞挖掘。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值