欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

Tasm编译器+虚拟机

Tasm编译器+虚拟机

Tasm是一个类asm的编译器+虚拟机,把源代码编译成bytecode并丢入VM中执行。
它的前身是OllyMachine,因此,基本语法雷同于OllyMachine,OM的帮助文件请见:
http://www.luocong.com/om

【补充说明】
一、写这个编译器的初衷是为了改善OllyMachine难用的几个特性(例如不能自定义变量名,寻址方式不方便等),但是OllyDbg 2.0迟迟不发布正式版,3年又3年了,究竟要等到什么时候啊?不想把这个工程烂在自己手里,我也先丢个alpha版吧。

二、取消了OllyMachine的那几十个难记的寄存器,取而代之的是可以自定义变量名(总共可以自定义255个,应该够用了吧?)
变量名无需声明,可直接使用,命名规则同C的语法。例如:
mov i, 1
注意:变量的初始值是0,例如:
mov i, j
那么i和j的值都为0,因为j的初始值是0,然后赋值给i。

三、寻址方式作了改进,可以支持:
mov dword ptr [0x78787878], 0x12345678
mov word ptr[0x78787878], 0x1234
等等。

四、函数的返回值储存在保留的变量rtx中(RTX: ReTurn X的意思)。
例如:
invoke malloc, 1000
mov buffer, rtx

五、框架基本搭好了,剩下的是补充API的体力活,但我现在没时间补完了。
为了测试用,我仅仅写了以下的API,使用的语法请见MSDN:
"printf",
"malloc",
"free",
"memset",
"fopen",
"fclose",
"fread",
"fwrite",
"fgetc",
"fputc",
"fseek",
"ftell",
"feof",
"rewind",
"PathFileExists",
"DeleteFile",
"RegOpenKeyEx",
"RegCloseKey",

- THE END -
罗聪
2010-12-27

上传的附件 Tasm_20101227.rar

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功