React Native Application
React Nativeアプリケーションの分析
アプリケーションがReact Nativeフレームワークで構築されているかどうかを確認するには、次の手順に従います:
APKファイルの名前をzip拡張子で変更し、
cp com.example.apk example-apk.zip
およびunzip -qq example-apk.zip -d ReactNative
コマンドを使用して新しいフォルダに展開します。新しく作成された ReactNative フォルダに移動し、assets フォルダを見つけます。このフォルダ内には、React JavaScript をミニファイされた形式で含む
index.android.bundle
ファイルがあるはずです。JavaScriptファイルを検索するには、
find . -print | grep -i ".bundle$"
コマンドを使用します。
JavaScriptコードをさらに分析するために、同じディレクトリに以下のコードを含む index.html
ファイルを作成します:
ファイルをhttps://spaceraccoon.github.io/webpack-exploder/にアップロードするか、次の手順に従ってください:
index.html
ファイルをGoogle Chromeで開きます。OS Xの場合はCommand+Option+J、Windowsの場合はControl+Shift+Jを押して開発者ツールバーを開きます。
開発者ツールバーで「Sources」をクリックします。メインバンドルを構成するフォルダやファイルに分割されたJavaScriptファイルが表示されるはずです。
index.android.bundle.map
というファイルが見つかった場合、ソースコードを非圧縮形式で分析できます。Mapファイルには、圧縮された識別子をマッピングするためのソースマッピングが含まれています。
機密情報やエンドポイントを検索するには、以下の手順に従ってください:
JavaScriptコードを分析するための機密キーワードを特定します。React Nativeアプリケーションでは、Firebase、AWS S3サービスエンドポイント、プライベートキーなどのサードパーティーサービスがよく使用されます。
この特定のケースでは、アプリケーションがDialogflowサービスを使用していることが観察されました。その構成に関連するパターンを検索します。
レコンプロセス中にJavaScriptコード内で機密のハードコードされた資格情報が見つかったことが幸運でした。
参考文献
Last updated