win64bit 汇编程序

本文介绍如何在64位环境下使用ML64编译器进行汇编编程,包括环境配置、示例代码解析及实际操作,旨在帮助初学者掌握64位汇编语言的基本应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  玩注入,shellcode等的筒子们,汇编是必不可少的,今天尝试下注入发现createremotethread 返回失败,错误号多少记不大清了(应该是5)网上搜索说是32位代码注入64位进程就是这样的。

   没法只好重新把工程弄成64位的,再编译一看报那么多错误,原来在64bit下不支持inline asm了。这样只有一条路了,那就是单独的编译汇编文件。



64bit汇编编译器有很多,首先看看ml64.exe,这个随着vs2010安装也默认安装的。在命令行里使用这个工具。

首先要配置环境变量用脚本vcvars64.bat ,这个文件的位置是 :

A:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
最好在当前工程目录下建立一个初始化环境变量的脚本:init.bat 

"A:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat"

打开asm文件所在的目录,按住shift键右击目录出现 在此处打开命令行窗口(win7的新特性比xp方便多了)


执行init.bat之后,就可以用ml64之类的命令了。

首先看一个helloworld程序

;示例代码2.asm
;语法:ML64
extrn MessageBoxA: proc

.data
text     db 'Hello x64!', 0
caption  db 'My First x64 Application', 0

.code
Main proc
sub rsp,28h
xor r9d,r9d
lea r8, caption
lea rdx, text
xor rcx,rcx
call MessageBoxA
add rsp,28h
ret

Main ENDP
end

 编译命令是 

:ml64 2.asm /link /subsystem:windows /entry:Main user32.lib

编译完毕之后执行应该弹出一个helloworld类似的对话框。


参考链接:

http://www.pediy.com/kssd/pediy09/pediy09-602.htm

(惭愧啊,看雪07年就有人弄这个东西了,7年已经过去了)




  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值