React Native是一个移动应用程序框架,最常用于通过启用React和本机平台功能来为Android和iOS开发应用程序。如今,在你所有资产(有时使用相同的代码)的平台上使用React变得越来越流行,包括公司必须提供的任何移动应用程序。
在检测时,我们通常集中精力尽可能扩大攻击面。这通常意味着深入研究已经为移动平台编写的应用程序,以查找其他API端点或其他更多信息,例如API密钥形式的敏感凭据。
这篇博文的最终目标是能够从APK到React Native JavaScript,可以对其进行进一步分析以分析API路由和敏感凭证是否泄漏。
通常,在反转Android应用程序时,会使用dex2jar将其反编译,然后使用JD-GUI进行分析。在处理React Native应用程序时,如果该应用程序具有你要分析的任何本机代码,这将很有用,但是大多数情况下,应用程序的核心逻辑在于React JavaScript,无需使用即可获取dex2jar。
注意:dex2jar通过将Java字节码转换为Dalvik字节码来工作,因此,并不能始终保证干净有效的输出,因此请不要害怕使用该smali工具来探究Dalvik字节码。
从React Native APK获取JavaScript
对于此示例,我将从以下React Native应用程序中提取JavaScript:
com.react_native_examples(https://apkpure.com/react-native-examples/com.react_native_examples )
下载完上述APK后,请使用以下命令将其解压缩到新文件夹中:
<