zoukankan      html  css  js  c++  java
  • Linux环境下使用dosemu写汇编

    本章学习内容是汇编语言,现在直接写汇编的机会不多了,但一定要能读懂,信息安全的核心思维方式“逆向”在这有很好很直接的体现,反汇编就是直接的逆向工程。

    所以我在前几天的学习中在Ubuntu环境下安装了可以编写dos的软件,以下是具体流程:

    • Ubuntu下安装dosemu模拟dos环境:

    指令:sudo apt-get install dosemu

    • 运行

    sudo  dosemu

    dosemu 下看到的C盘和D盘只是虚拟出来的,对应的目录在~/.dosemu/drives 下:
    执行命令:

    cd ~/.dosemu/drives

     

    dos 下用到的程序放置在 ~/.dosemu/drives/d/bin 目录下:

     

    dosemu 已经自带了debug,若要编译汇编代码还需要增加 masm.exe 和 link.exe 程序(需要自己网上下载):

     

    • 编写汇编代码:

    在dos下用自带的edit 编辑器编写,输入命令edit

    打开后鼠标选择File->New 开始编写,之后选择Save as 保存为 .asm 后缀文件即可

     

    在C盘对应的 ~/.dosemu/drives/c 目录下用vim 编写

    但是可能会觉得在这个目录下编写程序有点麻烦,不太好管理程序,而我们平时习惯在家目录下专门的文件夹内写程序(我的~/Program/Assembly/Nasm 目录是专门存放汇编程序的)。我们可以在C盘目录下创建一个软链接:

    sudo ln -s ~/Program/Assembly/Nasm ./Asm

    这样我们在~/Program/Assembly/Nasm下写的汇编代码,在Dos 下进入Asm目录就可以直接编译。

    • 汇编链接:

    编译上面写好的 hello.asm 文件

    汇编
    执行命令:

    masm

    输入文件名hello,不需要加后缀.asm ,然后一直回车,汇编完成,生成hello.obj 文件。


    链接
    执行命令:

    link

    输入文件名hello,不需要.obj后缀,然后一直回车,生成可执行程序hello.exe,(有一个报错不用理会)。


    运行
    输入hello即可运行程序

    • 退出

    exitemu

  • 相关阅读:
    使用NHibernate(1)--资料汇总
    mono上部署web程序初体验
    一次简单的ORM调研
    【设计模式】02-评判代码质量的标准?如何写出高质量代码?
    【设计模式】01-初识设计模式
    【ARTS】004-第四周(2020.06.15-2020.06.21)
    【leetcode】14-Longest Common Prefix
    【ARTS】003-第三周(2020.06.08-2020.06.14)
    【行成于思】04-读《如何超过大多数人》有感
    【leetcode】009-Palindrome Number
  • 原文地址:https://www.cnblogs.com/dwc929210354/p/5958583.html
Copyright © 2011-2022 走看看