没有什么能阻止Apktool或dex2jar在React Native应用程序上工作。您看到的是React Native应用程序逻辑的大部分存在于编译的Javascript文件和本机层本身(库(中。
我们可以从使用react原生框架构建的apk中提取源代码吗?。我试过使用dex2jar和apktools,但似乎找不到任何与源代码相关的东西
所以我会把东西放进4个桶
- 本机模块(Android-Java/Kotlin,iOS-ObjC/Swift(
- RN网桥(Java/C++(
- JS(虚拟机-JavascriptCore/Hermes(
- JS(业务逻辑(
用Javascript编写的代码由虚拟机中JSC/Hermes的运行时进行解释。这通过Java/C++的中间桥接层传递到手机的低本机部分。因此命名为React Native。
因此,如果你正在解码一个寻找源代码的应用程序,你会偶然发现桥接器的java代码和任何在java中具有中间依赖关系的包,而不是你可能正在寻找的应用程序的真正源代码。
业务逻辑很可能在某个index.android.bundle
文件中,当它被缩小时,在视觉上会非常难看。您需要一个JS美化程序才能使用此路径。