web-dev-qa-db-ja.com

Flutter debug Apk decompile to get source code

ドライブの破損により、フラッターアプリケーションのソースコードが失われましたが、debug.apk in my Android phone。誰でもFlutter apkを逆コンパイルしてソースコードを取得する方法を教えてください。逆コンパイラを使用して逆コンパイルしようとしましたが、 flutterソースコードとしてのソースコードはDart言語です。

8
Jagraj Singh

Debug.apkがデバッグモードの場合、apktoolを使用してapkのコンポーネントを抽出できます(apkはZipファイルなので、Word抽出を使用しています)。

Flutterはデバッグモードで、ソースコードを(コメント付きで!)kernel_blob.binファイルに保持します。したがって、次のコマンドを使用すると、コードをファイルに抽出するのに役立ちます。

strings /path/to/extracted/apk/assets/flutter_assets/kernel_blob.bin > extracted_code.Dart

注意を払ってください-'extracted_code.Dart'を無関係な/ガベージ文字列から削除する必要があります。

「Dart」、「import」、「void」、および「extracted_code.Dart」内の他のキーワードなどの文字列を検索してみてください。コード自体を見つけるのに役立ちます。

これが私のUbuntuの例です:

Example

Apkが「リリース」モードでコンパイルされている場合、コードは分離されて分離されます。これは、コードがrawアームアセンブリではなく、ランタイムでFlutterエンジンを使用する場合にのみデシリアライズされます。あなたはそれについてもっと読むことができます ここ

3
user3467955