您的位置:首页 > 其它

在masm下编译一个较小的PE文件

2016-07-18 16:14 323 查看

前言

写一段masm32汇编程序

link要使用masm32自带的link(改名或指定全路径)

使用link编译选项 /MERGE, 合并的段名用Winhex或PE分析工具来看.

代码片段

echo off
rem file buildcmd.bat
rem brief build projet

call clearcmd.bat

Ml32.exe /c /coff hw.asm
if errorlevel 1 goto TheEnd

rem 用masm的link才会编译出2k以下的PE文件
Link32.exe /subsystem:windows /MERGE:.rdata=.text hw.obj
if errorlevel 1 goto TheEnd

echo project build success !

hw.exe
goto TheEndAll

:TheEnd
pause

:TheEndAll


; file hw.asm
; brief 测试程序

.386
.model flat, stdcall
option casemap:none

; 系统头文件与库
include windows.inc

include Kernel32.inc
includelib Kernel32.lib

include User32.inc
includelib User32.lib

; 数据段
.const
g_constSzTitle db "t", 0
g_constSz_Msg db "m", 0

; 代码段
.code
start:
invoke MessageBoxA, NULL, offset g_constSz_Msg, offset g_constSzTitle, MB_OK
invoke ExitProcess, 0
ret
end start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: