Skip to content

Experiments on the feasibility of Flutter application reverse engineering

Notifications You must be signed in to change notification settings

Guardsquare/flutter-re-demo

Repository files navigation

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.

About

Experiments on the feasibility of Flutter application reverse engineering

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published