Assembler/Disassembler DLL Library For VB and C#



I searched around the net for a while looking for a good assmebler/disassembler engine that I could use directly with VB.

After quite a bit of searching, I did actually find a disassembler written by inga@vip.hr. He had both a VB class and a seperate ASM dll disassemblers on his site:
http://web.vip.hr/inga.vip/index.htm
I still needed an assembler engine So the search continued and i had to check out some open source asm engines to see if I could modify them to get them working with VB.

Oleh Yuschuk publishs the GPL source to the asm and disasm engine code he used in one of the versions of his great freeware debugger OllyDbg. This code available on his site here:
http://www.ollydbg.de/
With some small tweaks these can be compiled into a DLL that can be used from VB.

It was quit a long search to finally come up with a usable solution for use with VB and took some fidgiting to get it all working together.

Anyway...since he was kind enough to GPL his code and make this possible, here is the VB usable library and test projects I came up with to scratch my itch.

Included in the zip are
  • Modified Source to Oleh's Asm/Disasm Engine to compile as VB Compatiable DLL
  • Oleh's C Test app which links to the library
  • C# test app with Block Asm/Dsm sample code
  • Basic VB6 test app that uses the library
  • More complex VB6 test app that implements basic support for:
    • asm labels
    • api/symbol references
    • call/jmp $+5 syntax
    • asm/dsm block functionality
  • Binaries for all projects and copy of original gpl license.

Note:

If you run the VB projects from within the VB IDE make sure to put a copy of the compiled dll in the apps home directory or path so it can find it. (or call LoadLibrary on it in form_load.)

Downloads