当前位置:   article > 正文

[车联网安全自学篇] Android安全之常用逆向工具汇总_apk逆向源码工具

apk逆向源码工具

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大

少走了弯路,也就错过了风景,无论如何,感谢经历


博主同学不定期更新工具集,敬请期待… …


0x01 静态分析工具

  • apktool

apktool是一款功能强大且操作简单的apk反编译破解工具,能够将反编译的apk文件保存到同名目录中,还能帮用户将反编译的dex、odex 重新编译成dex文件。除此之外,apktool还可以支持编译、反编译、签名等多项功能

下载地址:https://ibotpeaches.github.io/Apktool

  • basksmali

将dex文件反汇编成smali代码

下载地址:https://github.com/JesusFreke/smali

  • smail

将smali代码汇编生成dex文件(android的可执行文件)

下载地址:https://bitbucket.org/JesusFreke/smali/downloads/

  • dex2jar+jd-gui

将dex文件转化为java jar包,因为转成jar包之后,方便使用JD-GUI工具反编译成java源码

下载地址:https://sourceforge.net/projects/dex2jar
下载地址:http://java-decompiler.github.io/

  • JEB

JEB是一款为安全专业人士设计的功能强大的Android应用程序反编译工具。用于逆向工程或审计APK文件,可以提高效率,减少工程师的分析时间

下载地址:https://www.pnfsoftware.com
下载地址:https://down.52pojie.cn/?query=JEB

  • Jadx

jadx - Dex 到 Java 反编译器,相对于dex2jar 和 jd-gui组合工具

用于从 Android Dex 和 Apk 文件生成 Java 源代码的命令行和 GUI 工具

下载地址:https://github.com/skylot/jadx

  • IDA

1)IDA FLIRT Signature Database:用于识别静态编译的可执行文件中的库函数

下载地址:https://github.com/push0ebp/sig-database

2)IDA signsrch:寻找二进制文件所使用的加密、压缩算法

下载地址:https://sourceforge.net/projects/idasignsrch

3)IDA scope:自动识别windows函数和压缩、加密算法

下载地址:https://bitbucket.org/daniel_plohmann/simplifire.idascope/

4)Ponce:污点分析和符号化执行工具

下载地址:https://github.com/illera88/Ponce

5)snowman decompiler:C/C++反汇编插件(F3 进行反汇编)

下载地址:http://derevenets.com/

6)keystone:二进制文件修改工具,可以直接修改汇编

下载地址:https://github.com/keystone-engine/keypatch

7)CodeXplorer:自动类型重建以及对象浏览(C++)(jump to disasm)

下载地址:https://github.com/REhints/HexRaysCodeXplorer

8)IDA Ref:汇编指令注释(支持arm,x86,mips)

下载地址:https://github.com/nologic/idaref

9)Hexlight:大括号高亮匹配及跳转(B跳转到匹配括号)

下载地址:https://www.hex-rays.com/contests/2016/hexlight/hexrays_hlight.py

10)IDA Pro逆向分析常用方法:

1、利用ida scope脚本识别加密、编码算法,file->script file->IDAscope.py

2、利用signsrch插件识别加密、编码算法 edit->plugins->Signsrch

0x02 动态分析工具

  • DDMS

DDMS的全称是Dalvik Debug Monitor Service。可以实现IDE与连接终端设备(包含仿真器与真机)的调试,DDMS可以实现查询终端设备运行状态,终端设备进程状态,线程状态,文件系统,日志信息(logcat)等。以及控制终端设备,完成一些操作。

总的来说它是一款性能分析工具,可以帮助开发者快速了APP的运行情况

下载地址:https://developer.android.google.cn/studio/#downloads

  • gdb

GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c/c++程序员,gdb是必不可少的工具;

下载地址:https://github.com/cs01/gdbgui

  • IDA Pro

IDA Pro破解版最新版是一款非常专业的交互式反汇编工具。它不仅能够在众所周知的C/C++ 反编译问题中取得突破性的进展,还为二进制分析领域的未来发展奠定了坚实的基础,提供语法高亮、代码折叠、编译错误提示等功能

下载地址:

https://hex-rays.com/

https://down.52pojie.cn/Tools/Disassemblers/IDA.txt

1)IDA sploiter:漏洞利用开发工具,寻找gadget

下载地址:http://thesprawl.org/projects/ida-sploiter/

2)DIE:动态调试增强工具,保存函数调用上下文信息

下载地址:https://github.com/ynvb/DIE

3)sk3wldbg:IDA动态调试器,支持多平台

下载地址:https://github.com/cseagle/sk3wldbg

4)IDA Pro逆向分析常用方法:

1、利用ida scope脚本识别加密、编码算法,file->script file->IDAscope.py

2、利用signsrch插件识别加密、编码算法 edit->plugins->Signsrch

  • Drozer

drozer是一款针对Android系统的安全测试框架。drozer可以帮助App和设备变得更安全,其提供了很多Android平台下的渗透测试exploit供你使用和分享。对于远程的exploit,它可以生成shellcode帮助你进行远程设备管理

下载地址:

https://github.com/FSecureLABS/drozer

0x03 挂钩框架

  • Xposed框架(HooK神器)

Xposed 是国外大牛开发的一个工具,Xposed通过拦截安卓程序运行过程来达到修改程序行为的目的。不需要修改安卓源文件,而是通过分析程序运行来拦截并影响运行情况。具体需要把安卓apk逆向后然后分析代码,定位到具体的类,方法等,然后通过xposed来拦截修改方法等

下载地址:

下面这个仅适用于 Android 4.0.3 至 Android 4.4 上的 root 访问
https://repo.xposed.info/module/de.robv.android.xposed.installer

对于 Android 5.0 或更高版本改用下面这个
https://forum.xda-developers.com/t/official-xposed-for-lollipop-marshmallow-nougat-oreo-v90-beta3-2018-01-29.3034811/

  • EdXposed

基于 Riru 的 ART hook 框架 (最初用于 Android Pie) ,提供与原版 Xposed 相同的 API, 使用 YAHFA (或 SandHook) 进行 hook, supports Android 8.0 ~ 11

Xposed 框架是一套开放源代码的、在Android高权限模式下运行的框架服务,可以在不修改APK文件的情况下修改程序的运行,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作

下载地址:
https://github.com/ElderDrivers/EdXposed

https://github.com/RikkaApps/Riru/releases

  • VirtualXposed

VirtualXposed 是基于VirtualApp 和 epic 在非ROOT环境下运行Xposed模块的实现(支持5.0~10.0)。

与 Xposed 相比,目前 VirtualXposed 有两个限制:

不支持修改系统(可以修改普通APP中对系统API的调用),因此重力工具箱,应用控制器等无法使用

暂不支持资源HOOK,因此资源钩子不会起任何作用;使用资源HOOK的模块,相应的功能不会生效

下载地址:
https://github.com/android-hacker/VirtualXposed

  • GDA(反编译工具)

国人开发的字节码反编译工具,支持 APK、DEX、ODEX、oat

下载地址:

https://segmentfault.com/a/1190000040012580

  • MT管理器

MT管理器是一款强大的文件管理工具和APK逆向修改神器。如果你喜欢它的双窗口操作风格,可以单纯地把它当成文件管理器使用。如果你对修改APK有深厚的兴趣,那么你可以用它做许许多多的事,例如汉化应用、替换资源、修改布局、修改逻辑代码、资源混淆、去除签名校验等

下载地址:
https://binmt.lanzoui.com/b01bivkzc
https://blog.mt2.cn/mt-update-history/

  • NP管理器

NP管理器是一款手机多功能的文件管理器,功能和MT管理器类似,都提供了反编译等安卓上逆向的功能。主要是对Apk、Dex、Jar、Smali、Pdf、视频和音频文件的简单应用,所有功能都是免费的(未开放源码,但功能看着挺强大的)

下载地址:
https://github.com/githubXiaowangzi/NP-Manager

  • Native Hook神器 Cydia Substrate

Cydia Substrate是一个基于Hook的代码修改框架,其可以在Android、iOS平台使用,并实现修改系统默认代码

下载地址:

http://www.cydiasubstrate.com

  • Frida

frida 是一款基于 python+javascript 的 hook 框架,可运行在 android、ios、linux、win等各个平台,主要使用的动态二进制插桩技术

下载地址:

https://github.com/frida/frida

  • Diff-GUI

JavaScript 注入

下载地址:

https://github.com/antojoseph/diff-gui

  • FART

ART环境下自动化脱壳方案;支持6.0到8.0,理论支持任意ART系统,需要刷机;更多的脱壳机镜像AndroidSecurityStudy

https://github.com/hanbinglengyue/FART

  • BlackDex脱壳

BlackDex是一个运行在Android手机上的脱壳工具,支持5.0~12,无需依赖任何环境任何手机都可以使用,包括模拟器。只需几秒,即可对已安装包括未安装的APK进行脱壳

下载地址:

https://github.com/CodingGay/BlackDex

  • FDex2

安卓xposed脱壳工具;通过Hook ClassLoader的loadClass方法,反射调用getDex方法取得Dex(com.android.dex.Dex类对象),再将里面的dex写出;安卓4.4以上的手机或模拟器;其它看软件提示

下载地址:

https://bbs.pediy.com/thread-224105.htm

  • Frida-Unpack

firda-unpack 原理是利用frida hook libart.so中的OpenMemory方法,拿到内存中dex的地址,计算出dex文件的大小,从内存中将dex导出,可查看项目中的 OpenMemory.js 文件中的代码更清晰直观地了解

下载地址:

https://github.com/GuoQiang1993/Frida-Apk-Unpack

  • FRIDA-DEXDump

在内存上快速搜索和转储 dex,脱壳后的dex文件保存在PC端main.py同一目录下,以包名为文件名

下载地址:

https://github.com/hluwa/FRIDA-DEXDump

  • frida_dump

文件头搜索dex,来脱壳

下载地址:

https://github.com/lasting-yang/frida_dump

  • Ghidra

由美国国家安全局(NSA)研究部门开发的软件逆向工程(SRE)套件;支持Windows、Mac OS和Linux 功能包括反汇编,汇编,反编译,绘图和脚本等

下载地址:

https://github.com/NationalSecurityAgency/ghidra

  • unicorn

一款非常优秀的跨平台模拟执行框架
该框架可以跨平台执行Arm, Arm64 (Armv8), M68K, Mips, Sparc, & X86 (include X86_64)等指令集的原生程序

下载地址:

https://github.com/unicorn-engine/unicorn

0x04 其它逆向工具

  • WinHex

WinHex是在Windows下执行的功能强大的十六进制编辑软件

下载地址:

http://www.winhex.com/winhex/hex-editor.html

  • PEditor

PEditor一款很好的PE文件编辑工具,其功能有转存进程、在SoftICE中插入中断、编辑PE文件的导入表、节表、重建校验和、重建程序等(这款软件很老了,但确实一款相当方便的PE文件头编辑工具)

下载地址:

https://tool.pediy.com/index-detail-25.htm

  • Source Insight

sourceinsight 是专为大型、高要求的现实编程项目而设计的。
集成了:代码分析、调用图表、类继承显示、居于范围的关键字搜索、查找引用、智能重命名、符号自动完成、自动显示声明、上下文语法格式、自动参考高亮显示,等等… …

下载地址:

https://www.sourceinsight.com/download/

  • HexCmp

HexCmp 是一个可视化的二进制文件比较编辑工具,程序可以帮助你快速的轻松的比较两个文件,并可以对你进行编辑操作,程序还拥有强大的搜索功能,可以执行基于十六进制或者字符的搜索操作。用于编辑和比较并和hex文件是非常有效的修复DVD

下载地址:

https://www.fairdell.com/hexcmp/

  • keystone-engine

ARM—HEX转换工具,keystone-engine是一个将汇编指令转换为Hex机器码的工具

下载地址:

http://www.keystone-engine.org/download/

  • Apk Helper

Apk Helper是一款apk信息查看器。可以查看apk的全部信息,如:安装包名、软件名称、APK证书、真实版本号、要求的手机版本、系统权限、以及证书和文件的MD5信息,用来查看是不是官方apk包,避免安装非原版apk或流氓软件

下载地址:

https://github.com/Harbour8643/APKHelper

  • BombAPK

此脚本使用Python集成了Android逆向中常用的一些工具,力求省去各自繁琐的命令,方便自写脚本的整合,最终在一个终端下完成各种工具的调用

下载地址:

https://github.com/SewellDinG/BombAPK

  • AXMLPrinter

XML浏览工具

下载地址:

https://www.nuget.org/packages/axmlprinter

  • AXmlPrinter2

反编译Androidmanifest.xml的工具,反编译后的结果会输出到控制台,当前已经很少使用了

下载地址:

http://code.google.com/p/android4me/downloads/list

  • androguard

使用DAD作为反编译器,可以分析恶意软件的可视化软件,有python api,可以写扩展

下载地址:

https://github.com/androguard/androguard

  • ClassyShark

Google官方dex/apk/jar/class/aar浏览工具,可以分析出apk的结构以及依赖信息

下载地址:

https://github.com/google/android-classyshark

  • Smali2Java

APK图形化浏览工具

下载地址:

https://github.com/JesusFreke/smalidea

  • bytecodeviewer

集成了J-RET,JHexPane, Dex2Jar等多个反编译工具

下载地址:

https://bytecodeviewer.com/

  • RADARE2

可以反汇编、调试、分析和操作二进制文件

下载地址:

https://github.com/radareorg/radare2

  • simplify

Android 虚拟机和反混淆工具

  • JAD

Java反编译工具

下载地址:

https://varaneckas.com/jad/

  • ApkStudio

开源、跨平台的基于Qt的 IDE,用于对Android应用程序包进行逆向工程。它具有友好的类似 IDE 的布局,包括代码编辑器,支持 *.smali 代码文件的语法高亮显示

下载地址:

https://github.com/vaibhavpandeyvpz/apkstudio

  • APK DeGuard

在线Android反编译工具

下载地址:

http://apk-deguard.com/

  • DDI 监控跟踪工具

https://github.com/crmulliner/ddi

  • ADBI 监控跟踪工具

https://github.com/samsung/adbi

  • codeinspect

支持调试,可以IDE中编辑反编译后文件

下载地址:

http://sseblog.ec-spride.de/tools/codeinspect/

  • enjarfy

google的反编译工具,可以将dalvik bytecode转化为java bytecode,比dex2jar支持case更多

下载地址:

https://github.com/google/enjarify

  • smali/baksmali/smalidea

将dex反编译成smali,将smali回编译成dex,AndroidStudio调试smali代码

下载地址:

https://github.com/JesusFreke/smali

  • icodetools

动态插入log代码到apk中的每个方法中的工具,只支持JDK1.7以及以下版本编译器

下载地址:

https://github.com/fourbrother/icodetools

  • uber-apk-signer

签名辅助工具,集成了签名相关的常用操作 / A tool that helps signing, zip aligning and verifying multiple Android application packages (APKs) with either debug or provided release certificates (or multiple)

支持安卓v1、v2和v3签名 / supports v1, v2 and v3 android apk singing scheme

下载地址:

https://github.com/patrickfav/uber-apk-signer

  • java2smali

Android Studio插件,支持将java和Kotlin文件编译成smali文件

下载地址:

https://github.com/ollide/intellij-java2smali

0x05 游戏逆向工具

  • wpe封包综合工具

  • Reflector9.3

  • ILSpy3.1

  • dnSpy

  • Cheat Engine

  • AssetStudio

0x06 Android 漏洞查询

  • 安卓漏洞

http://androidvulnerabilities.org/

  • Android CVE 详细信息

http://www.cvedetails.com/vulnerability-list/vendor_id-1224/product_id-19997/Google-Android.html

参考链接

https://github.com/weixinbao/ReverseTool

https://github.com/WuFengXue/android-reverse


你以为你有很多路可以选择,其实你只有一条路可以走


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/90583
推荐阅读
相关标签
  

闽ICP备14008679号