worawit / blutter

Flutter Mobile Application Reverse Engineering Tool
MIT License
760 stars 128 forks source link

[Feature Request] radare2 support #15

Open nitanmarcel opened 8 months ago

nitanmarcel commented 8 months ago

Edit: see https://github.com/worawit/blutter/pull/17. Realized that's it's better to also have things output to json than hard coding support for a tool inside the program.

Radare is a terminal based reverse engineering framework similar to ghidra or IDA, would be possible to have it so all the unknown/not exported methods from radare to be added?

One thing I've noticed when decompiling an application is that all the offsets are the same, so would probably just be a case of using r2pipe to rename all the functions. (Check afn command)

And of course, there are also other edge cases where the strings don't return any usage reference in the disassembled code, but at least to have the functions names would be nice

nitanmarcel commented 7 months ago

Actually upon further thinking, I think a json or even better yaml output besides the asm output would be way better since the creations of scripts for ida, radare, ghidra and many more would be easier to generate.

worawit commented 7 months ago

Regarding IDA script, it is just for testing at the early stage of this project. I found that current RE tools is not enough for reverse engineering flutter app even all symbols are known because Dart uses it own call conventions, special register usages, etc.

The code for generating IDA script is still in the project because the Dart code analysis feature is in development stage. I might remove the generating IDA script code in the future. Also that's why no mention about IDA scripts in README.

nitanmarcel commented 7 months ago

Regarding IDA script, it is just for testing at the early stage of this project. I found that current RE tools is not enough for reverse engineering flutter app even all symbols are known because Dart uses it own call conventions, special register usages, etc.

The code for generating IDA script is still in the project because the Da> Regarding IDA script, it is just for testing at the early stage of this project. I found that current RE tools is not enough for reverse engineering flutter app even all symbols are known because Dart uses it own call conventions, special register usages, etc.

The code for generating IDA script is still in the project because the Dart code analysis feature is in development stage. I might remove the generating IDA script code in the future. Also that's why no mention about IDA scripts in README.

I have an working radare script, doesn't really add anything new but it works by gathering all the methods and classes from a json file (see my PR). And it has a simple functionally to search the object pool, search the asm files and the possibility to bring the comments from asm to the radare method.

Not very advanced but it does the job.

rt code analysis feature is in development stage. I might remove the generating IDA script code in the future. Also that's why no mention about IDA scripts in README.

I have an working radare script, doesn't really add anything new but it works by gathering all the methods and classes from a json file (see my PR). And it has a simple functionally to search the object pool, search the asm files and the possibility to bring the comments from asm to the radare method.

Not very advanced but it does the job. I'm still working or refining the code

IMG_20231113_112345_871

IMG_20231113_112633_223

cryptax commented 4 months ago

@nitanmarcel can you share your Radare script? In particular, I'm interested by the part that reads the Object Pool.