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

所以我在前几天的学习中在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

最新文章

  1. linux 安全狗
  2. sys/types.h fcntl.h unistd.h sys/stat.h
  3. VS2010 有关测试的一些使用
  4. 将List下载到本地保存为Excel
  5. LeetCode - Path Sum
  6. Spring+SpringMVC+Mybatis+ehcache
  7. STL使用sort注意的问题
  8. 自从用了Less 编写css,你比以前更快了~
  9. JavaBean以及MVC模式
  10. Krita编译和旧版本下载
  11. 纯JS写最简单的图片轮播
  12. docker学习之--日常命令
  13. JS在可编辑的div中的光标位置插入内容或表情
  14. Java学习从菜鸟变大鸟之二 输入输出流(IO)
  15. Python isinstance 方法 判断 built-in types(内置类型)技巧
  16. 【Hadoop UI学习】Hue
  17. (转)VmWare下安装CentOS6图文安装教程
  18. 20172302『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结
  19. http://www.cnblogs.com/linxiyue/p/8244724.html
  20. import和export语法报错

热门文章

  1. Python批量复制和重命名文件
  2. linux中sed中用s 替换中遇到的问题
  3. 查看Linux上MySQL版本信息
  4. websocket关于禁止一个账号多窗口链接的问题
  5. vim 查找与替换
  6. RSA非对称算法实现HTTP密码加密传输
  7. 解决mysql数据库乱码问题
  8. CountDownTimer
  9. 【转】win7 任务计划 任务映像已损坏或篡改(异常来自HRESULT:0x80041321)
  10. WPF中的ListBox实现按块显示元素的方法