前言
最近在研究移动应用安全,算是这个行业的一个新兵。
一直没有更新文章是因为太忙了,现在分享一部分我最近使用的一些小工具。
编译/反编译工具
dex2jar
介绍
dex-reader旨在读取Dalvik可执行文件(.dex / .odex)格式。它具有与ASM类似的轻量级API。
dex-translator旨在执行转换作业。它读取dex-ir格式的dex指令,经过一些优化后,转换为ASM格式。
dex-translator使用的dex-ir,用于表示使用.class文件的dex指令dex-tools工具。
d2j-smali将dex反汇编为smali文件并从smali文件汇编dex。
与smali / baksmali不同的实现,相同的语法,但我们支持类型desc“Lcom / dex2jar \ t \ u1234;”中的转义
dex-writer以与dex-reader相同的方式编写dex。
下载地址
https://sourceforge.net/projects/dex2jar/
jd-gui
介绍
“Java Decompiler项目”旨在开发工具,以便反编译和分析Java 5“字节代码”和更高版本。
JD-Core是一个从一个或多个“.class”文件重构Java源代码的库。JD-Core可用于恢复丢失的源代码并探索Java运行时库的源代码。支持Java 5的新功能,例如注释,泛型或类型“枚举”。JD-GUI和JD-Eclipse包括JD-Core库。
JD-GUI是一个独立的图形实用程序,显示“.class”文件的Java源代码。您可以使用JD-GUI浏览重建的源代码,以便即时访问方法和字段。
JD-Eclipse是Eclipse平台的插件。它允许您在调试过程中显示所有Java源代码,即使您没有全部这些源代码也是如此。
JD-IntelliJ是IntilliJ IDE的插件。
JD-Core,JD-GUI和JD-Eclipse是根据GPLv3许可证发布的开源项目。
下载地址
http://java-decompiler.github.io/
apktool
介绍
用于逆向工程第三方,封闭式二进制Android应用程序的工具。它可以将资源解码为近乎原始的形式,并在进行一些修改后重建它们。
它还使得使用应用程序更容易,因为项目如文件结构和一些重复性任务的自动化,如构建apk等。
它不适用于盗版和其他非法律用途。它可用于本地化,添加一些功能或支持自定义平台,分析应用程序等等。
特征
拆卸资源近原始形式(包括resources.arsc,classes.dex,9.png.和XMLs)
将解码后的资源重建为二进制APK / JAR
组织和处理依赖于框架资源的APK
Smali调试(删除了2.1.0有利于IdeaSmali)
帮助重复性任务
要求
Java 8(JRE 1.8)
Android SDK,AAPT和smali的基础知识
下载地址
https://ibotpeaches.github.io/Apktool/
IDA pro
介绍
IDA是Windows,Linux或Mac OS X托管的多处理器反汇编程序和调试程序。
这个不解释太多了吧。
下载地址
https://www.hex-rays.com/products/ida/
ApkAnalyser
介绍
ApkAnalyser是一个用于检查和验证的静态虚拟分析工具。
它是一个完整的工具链,支持使用更多打印输出修改二进制应用程序。
然后你就可以了重新包装,安装,运行并验证logcat的结果。
ApkAnalyser也支持资源分析,您可以解码XML,查找资源引用和检测 您应用中的潜在问题。
它是一个独立的J2SE应用程序,在Apache 2.0许可下发布,100%用Java编写。
下载地址
https://github.com/sonyxperiadev/ApkAnalyser
Eclipse
不解释。
dexopt-wrapper
介绍
在Android 2.3版本以前,系统源码中提供了生成odex的工具dexopt-wrapper,位于Android 2.2系统源码的 build/tools/dexpreopt/dexopt-wrapper/ 目录下,查看DexOptWrapper.cpp文件会发现实际调用的是 /system/bin/dexopt 程序。
在5.0及以上版本的设备上,你可能已经再也找不到dexopt了,取而代之的是dex2oat。
010 editor
介绍
最6的二进制编辑器。
任何大小的文件都具有无与伦比的二进制编辑性能。
使用强大的二进制模板技术来理解二进制数据。
查找并修复硬盘驱动器,内存密钥,闪存驱动器,CD-ROM等问题。
调查和修改进程的内存。
下载地址
https://www.sweetscape.com/010editor/
SQLite Studio
介绍
SQLiteStudio是一个SQLite数据库管理器,具有以下功能:
便携式 - 无需安装或卸载。只需下载,解压缩并运行即可。
直观的界面,功能强大,但轻和快。
所有SQLite3和SQLite2功能都包含在简单的GUI中。
跨平台 - 在Windows 9x / 2k / XP / 2003 / Vista / 7,Linux,MacOS X上运行,并且可以在其他Unix上运行(尚未测试)。
导出为各种格式(SQL语句,CSV,HTML,XML,PDF,JSON)。
从各种格式导入数据(CSV,自定义文本文件[正则表达式])。
许多小的补充,如格式化代码,在编辑器窗口中执行的查询历史,动态语法检查等等。
Unicode支持。
Skinnable(界面可以看起来适用于Windows 9x / XP,KDE,GTK,Mac OS X或绘制小部件,适合其他环境,WindowMaker等)。
可配置的颜色,字体和快捷方式。
开源和免费 - 根据GPLv3许可证发布。
下载地址
https://sqlitestudio.pl/index.rvt
ApkIDE 改之理
APK改之理(APK IDE)是一款可视化的、易用的、快捷的、一体化的安卓APK修改工具。
集成了ApkTool、Dex2jar、JD-GUI等Apk修改工具。
集Apk反编译、Apk查壳、加密解密、Apk调试分析、Apk打包、Apk签名,支持语法高亮的代码编辑器。
基于文件内容的关键字(支持单行代码或多行代码段)搜索、替换引擎,打造成可视的、一体化的安卓反汇编工具。
从而大大简化Apk修改过程中的繁琐操作,修改更轻松。
下载地址
https://pan.baidu.com/s/13Ko7_glotT5IUU2nmSeisQ
Ghidra
详见:https://www.icekam.com/post/nsa-open-source-disassembly-tool-set-ghidra-reverse-must/
结语
生命诚可贵,折腾永不修!