近期在开发一款软件时,遇上了加密、解密数据方面的一些技术问题无法攻克,于是抱着试试看的态度使用 jadx-gui 工具进行反编译一下。哎,居然还成功了,更骚的是,这一款App没有对应用进行混淆、加密、加固,没多久我就研究明白了他们的应用是如何解决我所遇到的问题,升职加薪又离我更近一步了🤭
但是呢,为了防止我所编写的软件遇上像我这样的老六,特地写一篇文章来告诉大家如何能成为我这样的老六,以及如何加强App的软件防护等级。
目录
反编译
jadx-gui
预防反编译
代码混淆
应用加固
其它
SDK 加固 & 插件加固
加密重要数据
使用C/C++代码
防止调试
反编译
可以用于反编译 App 的工具有很多,敲命令行实现反编译的已经成为过去式了,这里分享一个有 GUI ,同时也是博主目前在使用的反编译工具:jadx
jadx-gui
jadx-gui 是用于从 Android Dex 和 Apk 文件生成 Java 源代码的命令行和 GUI 工具。
我们可以借助该工具,实现反编译 App。
这里我使用 StepDemo 作为演示的项目,下载 jadx 安装到电脑上,使用 jadx 打开一个 .app 或 .apk 文件 ,就可以得到如图的 app 信息。
使用 Android Studio 查看项目的源代码是这样:
将 StempDemo 打包成一个 .apk 或者 .aab ,使用 jadx 打开后自动反编译的代码:
咋样?你学会了没?
预防反编译
哈!反编译很简单吧!
上面讲了如何反编译他人的 app ,接下来就讲解,如何预防你们的 app 被某个老六给反编译抄走辛辛苦苦写的代码😊
代码混淆
代码混淆可以说是应用安全中最基础的知识了,但同时也是坑最多的方式之一。
关于代码混淆可参考往期文章 👉【Android】App攻防之代码混淆
打开 app 项目的 build.gradle.kts 文件,启用 isMinifyEnabled 即可开启混淆。
android {
buildTypes {