/QuickAsm

Primary LanguageC++MIT LicenseMIT

Quick Assembler

Simple (experimental) x86/x86 assembler and emulator.

Quick Assembler is built with wxWidgets. This is my first attempt at using wxWidgets for something real. I have created a private build of wxWidgets that supports static linking of wxWidgets with CRT static linking. If you build it, you may need to change project properties to use dynamic linking with the CRT, as I have not published my tweaks of wxWidgets build.

Here is a list of currently supported features:

  • Editing, opening, and saving ASM files, including undo/redo.
  • Assemble files with NASM or Keystone engine. For NASM, place nasm.exe in the output directory. NASM can be downloaded from its official site.
  • Execute the assembled code (uses Unicorn Engine emulator).
  • Set breakpoints in the disassembled code.
  • Change register values and memory.
  • View registers and memory.

Building

My build setup uses Vcpkg where possible. Capstone Engine, Keystone, and Uniocrn Engine are included using Vcpkg:

vcpkg install unicorn:x64-windows
vcpkg install unicorn:x64-windows-static
vcpkg install capstone[x86]-windows
vcpkg install capstone[x86]-windows-static
vcpjg install keystone:x64-windows
vcpjg install keystone:x64-windows-static

The wxWidgets installation folder must be set with an environment variable named WXWIN. You can get the files by cloning the wxWidgets repo.

Screenshots

image