/flutter-re-demo

Experiments on the feasibility of Flutter application reverse engineering

Primary LanguagePython

flutter-re-demo

Overview

This repository contains the files you need to reproduce our experiments on the feasibility of Flutter app reverse engineering.

Renaming of Dart functions

All details can be found in this post.

You can find the non-obfuscated and obfuscated version of the NyaNya Rocket! Flutter game that we used in our experiments.

You can use the provided script to format the output of reFlutter or DWARF file. Later on, you can use the output of this script to rename/sort functions in IDA Pro using this IDA Python script.

Dealing with Dart decompilation

All details can be found in this post.

The application used in the post is the obfuscated APK.

You can find the output of the Flutter memory dump here. You can also generate it yourself using the Frida script.

You can import the memory dump into IDA Pro with this script. Don't forget to rebase your database before running this script.

Once this is done, you can create Dart object and add cross-references between Dart code and Dart objects.

If you want to see Dart object in decompiled code, you can register this decompilation plugin.

You can also patch Dart stack pointer register to allow IDA Pro to identify function parameters and local variable. Please note that it can generate incorrect code in function which are using both X15 and SP, thus use it only if you now what you are doing.

Disclaimer

These scripts are only provided for education purposes and are not meant to be stable reverse engineering tools.