对于一直想要学习汇编语言的我来说, 总是找不到一个理想的环境
上次软件安全课学会了使用MASM, 当时觉得这个工具挺好用的。 但是当我在win10上安装好, 并且配置好环境变量之后就不能用了。
当然在xp的虚拟机种还是能用的。
于是, 找到了一种在vs中搭建汇编环境的方法
在工具->导入和导出设置中, 导入VC++的环境, 就完成了!
是不是很简单
然后我们就可以开始调试了
代码高亮是参考了这个的
不得不说老外的教程就是良心
想要汇编软件安全课上的示例代码的时候出错了
显然是头文件的锅
所以直接拷贝过去
然后我就成功了
源代码分析
.386
.model flat, stdcall
option casemap : none
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
szCaption db 'A MessageBox !', 0
szText db 'Hello, World !', 0
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start :
invoke MessageBox, NULL, offset szText, offset szCaption, MB_OK
invoke ExitProcess, NULL
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
第二个也成功了
代码如下
.386
.model flat, stdcall
option casemap : none; case sensetive
include windows.inc
include kernel32.inc
include user32.inc
includelib kernel32.lib
includelib user32.lib
.code
start :
push 1040h
call szCap
db "病毒重定位", 0
szCap :
call szMsgOk
db "姓名:xxxx,学号:flag{*********}", 0
szMsgOk :
push 0
call MessageBox
invoke ExitProcess, NULL
end start
于是我可以开始愉快的学习汇编啦
网友评论