文章目录
- 前言
- 名词释义
- 加固手段
- 逆向
- dex文件
- resources.arsc
- React Native
- TODO
- 文档链接
- 工具参考
- 加固工具
- 逆向工具
前言
加固与逆向是安卓攻防的两个方面。搞安卓研发时间长了就不可避免走到这一步。既要研究别人的实现,又要保护好自己的东西。个人认为,逆向仅仅用于技术研究,不得窃取别人隐私和商业数据。
名词释义
- java:编写好的程序源代码
- class:.java文件通过javac 编译后的字节码文件,jvm直接运行的文件
- jar:Java Archive,java二进制归档文件,多个.class文件打包的文件
- aar:Android Archive,Android二进制归档文件,由jar和Android资源文件
- dex:将.class优化打包后的文件,dalvik虚拟机则是.dex可执行文件
- smali:Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器。类似于汇编代码。
- apk:Android application package,包含.dex、resource文件资源、assets原生文件资源、应用证书签名、AndroidManifest等组成
加固手段
传统App加固技术,前后经历了四代技术变更,保护级别每一代都有所提升,但其固有的安全缺陷和兼容性问题始终未能得到解决。而新一代加固技术—虚机源码保护,适用代码类型更广泛,App保护级别更高,兼容性更强,堪称未来级别的保护方案。
逆向
dex文件
resources.arsc
resources.arsc是Android编译后生成的产物,主要是用来建立资源映射关系,为了清晰地理解其中的映射逻辑,有必要剖析resources.arsc的结构。
React Native
index.android.bundle 文件是由 React Native 应用程序在 Android 平台上生成的一种二进制文件。它包含了应用程序的 JavaScript 代码和资源文件。
反编译 index.android.bundle 文件可以使用工具如 “react-native-bundle-decoder” 或 “bundler-decoder”。这些工具可以将二进制文件转换成可读的 JavaScript 代码。
TODO
混淆和安全加固
安卓应用是Java开发的,java容易被反编译的特性。
动态加载
加密
文档链接
- Android App加固原理与技术历程
- resources.arsc结构分析
- resources.arsc解析工具
- 顶象加固平台
- 常见的加固平台
工具参考
加固工具
- 阿里聚安全 链接:jaq.alibaba.com/
- 腾讯云应用乐固 链接:www.qcloud.com/product/cr
- 360加固保 链接:jiagu.360.cn/
- 梆梆加固 链接:dev.bangcle.com/
- 爱加密 链接:safe.ijiami.cn/
逆向工具
- https://github.com/milovetingting/Shell
- https://github.com/pxb1988/dex2jar/releases
- 逆向工具汇总