A lightweight and simple disassembler, initially developed out of curiosity, bcz i was bored, this took me 5 days, but i want to keep up updating it <3
- 📊 Graphical Control Flow View: Generates and displays function control flow graphs using Graphviz, making program logic easier to understand.
- 💻 Sequential Instruction Listing: Presents disassembled instructions in a clear, sequential format.
This project utilizes the following libraries and tools:
- Graphical User Interface (UI):
- ImGui: Bloat-free graphical user interface library for C++.
- ImGui Standalone: We dont want the window right?
- Disassembly Engine:
- Graph Visualization:
- Graphviz (v10.0.1): Graph visualization software and libraries.
- Package Manager:
- VCPKG: Used to install and manage dependencies.
- Git (if you want or else you can download source directly from here btw)
- VCPKG installed and integrated.
- Visual Studio with the "Desktop development with C++" workload installed.
Follow these steps to build the project:
-
Clone the repository:
git clone https://github.com/your-username/MINI-Disassembler.git # Replace with your actual repo link cd MINI-Disassembler
-
Install Dependencies using VCPKG:
- Important Note for Zydis v3.2.1: VCPKG might have a newer version of Zydis by default. To install the specific version 3.2.1 required by this project, you need to manually acquire the correct port files:
- Go to the VCPKG GitHub repository history.
- Find the commit corresponding to Zydis version 3.2.1.
- Download the
ports/zydis
andports/zycore
folder from that specific commit. - Replace the existing
zydis/zycore
folders inside your local VCPKG installation directory with the downloaded version.
- Now, install the dependencies:
# Ensure you are in your VCPKG directory or have it in your PATH vcpkg install zydis vcpkg install graphviz
- Important Note for Zydis v3.2.1: VCPKG might have a newer version of Zydis by default. To install the specific version 3.2.1 required by this project, you need to manually acquire the correct port files:
-
Compile the Project using Visual Studio:
- Open the project folder or solution file (
.sln
) in Visual Studio. - Select the
Release
configuration andx64
platform from the configuration dropdowns. - Build the solution
- Open the project folder or solution file (
- Run the compiled executable (e.g.,
x64/Release/MINI-Disassembler.exe
).
Here are some screenshots of MINI-Disassembler in action:
Contributions are welcome! If you have ideas for improvements, bug fixes, or new features:
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature
). - Commit your changes (
git commit -m 'Add some AmazingFeature'
). - Push to the branch (
git push origin feature/AmazingFeature
). - Open a Pull Request.
You can also simply open an issue with the tag "enhancement" or "bug".