Skip to content

Repository files navigation

Sunflower

Sunflower is an open-source, user-friendly plugin-driven system designed for binary analysis.

Was inspired by IDA, PEAnathomist, CFFExplrer, Semi VB Decompiler, and other same toolkits.

Main idea of it - make non-monolith application and avoid embedded functions. This repository contains just loader details and the client.

This repository includes following parts of my work:

  • Base definitions (abstractions)
  • Plugins manager (kernel)
  • Avalonia client (client)
  • Core Disassembler (dasm)

Note

Sources of plugins contains in SunFlower.Plugins repository and not depend on this reporsitory life

Sunflower client

Sunflower core "seeds" (plugins)

In releases always will be represented plugins for definition

  • MZ Executables (real-mode x86 applications);
  • NE segmented Executables (first protected-mode x86 applications);
  • LE OS/2-Windows386 executables;
  • LX OS/2-ArcaOS standard executables;
  • PE Windows NT stndard applications;
  • `MS-DOS PIF files.
  • A-Out Iris/Solaris/Plan9/other Unix plain executables;
  • ELF Linux/BSD executables

But you sunflower gives a chance to make your own extension of it and run it with all plugins too.

Sunflower "seeds" (application plugins)

For making new sunflower extension:

  1. Create Visual Studio solution.
  2. Add reference SunFlower.Abstractions.dll
  3. Make sure: no differences between Client app version and Abstractions
  4. Read documents at the end of "README".
  5. Build and Drop .DLL into %Application%/Plugins
  6. Run SunFlower and see what you can!

Sunflower at the archVM

Supported Binary Formats

Out-of-box DLLs are in plugins repo

An architecture problems that seriously bother me, but I can't fix them

  • Stupid Exceptions handling - A Main procedure contains exceptions handler which rewrites Status last error field. Loader prints all stack frames of calling assembly;
  • Versions incompatibility - Unfortunately Sunflower plugins which are differ the foundation are incompatible. Any differences between foundation file version and plugins foundation calls force exit (means conflict behaviour).

Frameworks And other external toolchain

All frameworks and toolkits

Tip

At the moment of publishing Sunflower the HandyControls not supports Avalonia. In the /external directory exists experimental assembly of HandyControls for Avalonia.

Documents