[原创]弄虚拟机走火入魔的结果 XAsm v0.02
软件作者:hellfish信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])
研究虚拟机,结果做出个编译器,已经彻底的走火入魔了
我居然去更新, 更入魔了, 0.02 支持 -d 编译为 dll 文件,支持 API
[color=Blue]真想实现自编译,那样就...:loveliness: [/color]
[quote]
XAsm v0.02 (C) by HellFish, 2007-2008
Mail: [email]HellFish@qq.com[/email]
Web: [url]http://hellfish.ys168.com[/url],[url]http://hellfish.unpack.cn[/url]
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
[/quote]
代码例子:[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[/code][code].FILEALIGN 4
//请使用 Xasm -s tiny.asm 命令编译
//使用 -s 命令编译不支持 .IMPORT
//本文件编译后 168 Bytes
.ALIGN 4
Start:
ret[/code][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, 自举编译器吗?
有意思。。。不过用nasm用习惯了。。自己修改的也很好用。。。
hellfish兄加油呀。。。希望添加重定位功能。。。
编译器和连接器最好分离编写。。。还是习惯于obj。。。link
毕竟编写一个好的编译器是很麻烦的事情。。。hellfish的功力最近提升很多呀
Packer,OpenVPN呵呵膜拜
留个联系方式呀。。一起聊聊编译器的事情 很好玩哦~ *** 作者被禁止或删除 内容自动屏蔽 *** 强呀。。。
页:
[1]