适用于 Macbook
brew install apktool
安装apktool后,在终端上运行以下命令解压缩apk文件:
apktool d /pathOfApkFile.apk
之后你会在pathOfApkFile/assets/index.android.bundle获得index.android.bundle文件
你可以使用react-native-decompiler 来反编译index.android.bundle 文件
反编译index.android.bundle文件
你可以通过运行这个命令来反编译index.android.bundle
npx react-native-decompiler -i ./index.android.bundle -o ./output
之后会在./output目录下得到JS反编译文件
JS代码反编译
React Native 已经在做 uglify js 代码了。
和react-native-obfuscating-transformer也是制作复杂的丑化代码
类似于 MD5 和 SHA256 加密,没有可用的工具知道何时进行机器学习和暴力破解来给我们估计代码
如果你想验证 react-native-obfuscating-transformer 是否实现,那么你可以编辑 index.android.bundle 并保存代码,然后实现 react-native-obfuscating-transformer 并编辑和比较两个文件
您可以通过在 build.gradle 中添加名为 bundleInRelease: true 的标志并添加 Hermes 将 js 包转换为字节码以提高效率来制作更多丑陋的代码
REF
注意:没有办法反编译index.android.bundle,因为这个文件包含uglify代码,其中一行可能有很多反转
Java 代码反编译
您可以使用DEX2JAR 将apk 转换为java 代码
你可以从JD-GUI查看该代码
你可以看到这个VIDEO