汇编环境搭建

作者: 萍水间人 | 来源:发表于2019-04-13 19:05 被阅读42次

    对于一直想要学习汇编语言的我来说, 总是找不到一个理想的环境

    上次软件安全课学会了使用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
    

    于是我可以开始愉快的学习汇编啦

    相关文章

      网友评论

        本文标题:汇编环境搭建

        本文链接:https://www.haomeiwen.com/subject/egprwqtx.html