弄虚拟机走火入魔的结果 XAsm v0.02

软件作者:hellfish
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)

研究虚拟机,结果做出个编译器,已经彻底的走火入魔了
我居然去更新, 更入魔了, 0.02 支持 -d 编译为 dll 文件,支持 API
真想实现自编译,那样就…:loveliness:

Quote:

XAsm v0.02 (C) by HellFish, 2007-2008
Mail: [email protected]
Web: http://hellfish.ys168.com,http://hellfish.unpack.cn

1. 这是啥玩意?
XAsm 是个32位/16位汇编 编译器。
支持 macro,api,struct,for 以及重要的 Label
最小编译的PE文件是 165 字节,默认情况下最小 305 字节

2. 有啥用?
你可以用他生成 Bin 或者 PE。语法基本与BASM相同
编译 ShellCode 还是不错的

3. 语法说明:
请看 Api.asm,m-s.asm,Test.asm

代码例子:
Copy code

.FILEALIGN 4

//注意,不同的DLL必须单独使用 .IMPORT
//在定义后 API 名称将成为 Label
//你可以用 CALL A[API名称] 的方式使用API
//本文件编译后 516 Bytes

.IMPORT kernel32.dll,GetProcAddress,LoadLibraryA
.IMPORT user32.dll,MessageBoxA

txt1&& DB 'Hello World!'

msgbox: MACRO handle=0,text=0,title=0,button=0
push &button
push &title
push &text
push &handle
call A[MessageBoxA]
END

Start:
msgbox handle=eax,text=txt1,title=txt1,button=0
ret

Copy code

.FILEALIGN 4
//请使用 Xasm -s tiny.asm 命令编译
//使用 -s 命令编译不支持 .IMPORT
//本文件编译后 168 Bytes
.ALIGN 4
Start:
ret

Copy code

.FILEALIGN 4

//这个文件编译后是无法执行的
//但是你可以用OD等工具看看被编译成了什么
//本文件编译后 320 Bytes

.ALIGN 2
struct1: STRUCT
FieldDB: DB $90 DIV $90
FieldDW: DW $9090 SHR 10
FieldDD: DD $90909090 / 2
FieldDQ: DQ $90909090 * 2
END

.ALIGN 4
macro1: MACRO param1=0,param2=0
mov eax,?m1
mov ebx,?m2
mov ecx,DWORD PTR [struct1.FieldDB]
add ecx,eax
add ecx,ebx
mov DWORD PTR [struct1.FieldDW],ecx
END

Start:
macro1 param1=$100,param2=1
ret

—————————————–
0.02 2007-12-31 更新:

1. 修复多处错误
2. 修复 .FILEALIGN 无法按要求对齐文件的问题
3. 增加 .IMPORT 调用,现在 Xasm 可以导入并使用API了
具体请看 API.asm
4. 增强 MACRO 可智能接受字符串指针

已知问题:
1. BUG,肯定有BUG…..

—————————————–
0.01 2007-12-30 更新:

1. 第一个公开版本

已知问题:
1. 暂无

XAsm.rar (45 K)

描述:编译好的 api.asm,改名.exe
api.rar (1 K)

相关日志

发表评论