DisassemblerAVR is a C++ written software used for reverse engineering .hex
files compiled for AVR MCUs, such as the ATmega328P
.
We developed the software in three versions, all of which can be run on Windows 10/11
, MacOS
and Linux
:
- GUI
- Command Line
- Debug Command Line
The GUI-based version is based on GLFW+OpenGL using IMGUI
, a library that offers easy development of GUI interface-based applications.
The other libraries used are:
ImGuiFileDialog
for the file selection windowimgui_memory_editor
for the hex visualizer
The command line-based version is a simpler software; all the code is written by ourselves without any third-party libraries.
To disassemble a file, it's necessary to manually provide the full path to it.
Once the disassembly process is complete, you will find a .asm
file in the same directory as the original file.
The Debug version is built in the same way as the command-line version, the only difference being that instead of creating a new file, the output is printed directly in the console and without branch labels.
- Visual Studio 2022 with C++ tools installed
- Git
- GCC
- Make
- Git
git clone --recursive https://github.com/IlPaoli/DisassemblerAVR
On Windows:
- Open the
.sln
file with Visual Studio - Choose the desired version in solution configurations
On Mac or Linux:
After cloning the repository, use cd {repository folder}
Then use:
make gui
to compile the GUImake nogui
to compile the Command Linemake debug
to compile the Debug Command Line
On Windows:
- Hit the empty green arrow or double-click the
.exe
under/x64/{version}
On Mac or Linux:
- Double-click the
Unix Executable
under/x64/{version}
- If you don't know the full path of the file, you can simply use the command
PWD
or just drag-and-drop the file into the console - To disassemble the file, input the full path of the file and press Enter
See LICENSE