My first QVM disassembler sucked, so I made this one. I had a lot of fun writing it.
Written in Python and relies on sys, os, struct, and re modules. I'm not sure of the minimum Python version required. I know it works on 2.5.1.
Command list...
Download: http://i.imagehost.org/download/0641/QVMDisasCode:asys <num> <name> - Add system call <num> with name <name>. dis <name> - Alias for disn. disa <address> - Disassemble procedure containing address <address>. disi <instructionNumber> - Disassemble procedure containing instruction number <instructionNumber>. disn <regex> - Disassemble procedure matching regular expression <regex>. dump <file> - Dump detailed disassembly to file <file> header - Print readable form of the QVM header. help - Print this help message. info <name> - Print information known for procedure <name>. lsys - List currently known system calls. name <origName> <newName> - Rename procedure <origName> to <newName>. osys <file> - Open file <file> specifying system calls using equ statements. quit - Quit QVMDisas.py. Ctrl-D also quits. sref <regex> - Print all procedures referencing strings matching regular expression <regex>. ssys <file> - Save currently known system calls to file <file> using equ statements.
On a side note, I've no experience in this area, but I think writing a QVM decompiler wouldn't be too hard... Not a perfect one that compiles resulting code easily, but I think it would be feasible.
Greets and credits:
ascii, qvmkanker
#ecc for being cool so far
#game-deception
All of GD.
If I left you out let me know.
Licensed under WTFPLv2.
Enjoy,
Macpunk



Reply With Quote


