逆向基础--汇编基础(DOS安装与介绍) (06)

一.介绍安装

  DOS全称是Disk Operationg System 是指磁盘操作系统。作为微软在个人计算机上使用的一个操作系统载体,推出了多个版本。

  DOS家庭包括 :MS-DOS、 PC-DOS、 DR-DOS、 FreeDOS、NovellDOS、PTS-DOS、 ROM-DOS、JM-0S等,其中以MS-DOS最为著名,最自由开放的则是FreeDOS。

  8086CPU不能在win10上运行,下载DOSBOX模拟器(windows操作系统 DOSBox0.74-3-win32-installer.exe)和MASM(网上下载)

  1.1 DOSBox安装与配置

    默认安装DOSBox0.74-3-win32-installer.exe后,点击桌面dos图标会弹出二个窗口,如下所示:

image

     其中DOSBox Status Windows窗口中会显示.conf配置文件的目录,配置文件一般在C:\Users\用户\AppData\Local\DOSBox\dosbox-0.74-3.conf

     如果不想弹出二个窗口,要去掉DOSBox Status Windows窗口,在dos图标-->右键属性-->加上 -noconsole 如下所示

"C:\Program Files (x86)\DOSBox-0.74-3\DOSBox.exe" -userconf -noconsole

    修改默认窗口大小,在dosbox-0.74-3.conf配置文件中,配置如下(注意1280X1080中  乘是大写英文字母X

#windowresolution=original
#output=surface
windowresolution=1280X1080
output=opengl

    下面列出DOS一些常用命令,如下表格

命令 描述
dir 查看当前目录下文件和文件夹
cd

进入特定目录 

cd code进入当前目录下的code目录

cd \ 切换到根目录

cd .. 切换到上一级目录

md

建立特定文件夹

md code 在当前目录下建立一个名字叫code的目录

rd

删除特定文件夹

rd code 删除当前目录下code文件夹

cls  清除屏幕,清除屏幕上所有的显示内容,只留下当前的命令行
exit  退出

  1.2 MASM安装  

    MASM 的全称 “Microsoft Macro Assembler” ,作用是汇编语言翻译成机器码,里面有必不可少的编译工具。MASM下载后解压安装MasmSetup.exe, 我这里安装到了D:\DOS\masm目录下,把 bin5目录下的LINK.EXE和MASM.EXE文件复制到D:\DOS\test目录下。这个MASM.EXE是microsoft(R) Macro Assembler Version 5.00,支持16位的dos程序。

 

二.程序的编译过程

  2.1 设置虚拟盘,切换到C盘(注意这里不是操作系统的C盘,而是DOS的虚拟C盘)

mount c D:\DOS\test

image

  2.2  在test文件夹下新建一个1.asm汇编文件, 里面写入16位的dos程序,程序的功能是打印hello wrold!,如下所示

.model small
.stack 100h

.data
    msg db 'Hello World!', '$'

.code
main proc
    mov ax, @data
    mov ds, ax

    ; 打印字符串
    mov ah, 09h
    mov dx, offset msg
    int 21h

    ; 退出程序
    mov ah, 4Ch
    int 21h
main endp
end main

  2.3 编译源文件

mams 1.asm   //执行这句命令会生成一个中间文件1.obj  

    注意:要确认程序编译后没有问题会显示: 0  Severe  Errors

  2.4 链接

link 1.obj  //这个命令会产生一个目标文件 1.exe,

  2.5 执行目标文件,就会输出hello world!   如下图所示

image

   2.6 上述2.1步骤,每次开启DOSBOX时都要手动执行,为了避免这种麻烦,下面进行配置

    找到C:\Users\用户\AppData\Local\DOSBox\dosbox-0.74-3.conf文件,在底部加入二行代码,如下图所示

image

 三.程序的debug过程

  之前上把 bin5目录下的LINK.EXE和MASM.EXE文件复制到D:\DOS\test目录下。这里再把bin6目录下的DEBUG.EXE文件也复制进来。查看D:\DOS\test目录下的文件如下所示:

image

  在DOS命令行输入:debug 1.exe 后,提示输入命令,命令有如下所示:

命令 描述
R

查看/修改CPU中寄存器的内容。

输入:r ax 回车 会出来一个:在后面输入你想要改变的数据就可以改变ax中的内容

D

查看内存中的内容

d段地址:偏移地址 回车可以查看该物理地址制定的内存中的内容。如: d1000:0000

E

改写内存中的内容

e 段地址:偏移地址   要修改的内容。 如  e 1000:000 0 1 2 3 4 5 6 7

U 将内存中的机器指令翻译成汇编指令 。简单理解为查看源码
T 命令执行一条机器指令 ,单步执行程序(相当于vs studio中F11调试)。 t命令是“trace”的缩写,即单步跟踪。
A 以汇编指令的格式在内存中写入一条机器指令
quit 退出 debug

   3.1  使用r命令查看CPU中的寄存器,常见的AX、BX、CX、DX四种寄存器,以及CS:IP

image

   3.2 使用d命令查看内存的内容,其中076A:0010是物理地址(段地址:偏移地址)

    如:076A:0010物理地址内存中第一字节为48h==72d,而十进制72对应的ASCII字符是【 H】

image

  3.3 使用e命令修改内存中的内容,如下所示,物理地址内存中第一字节为48h,改为50h,再使用-d来查看该物理地址中的内容,此时从Hello变成了Pello,也就是H改成了P。如下图所示:

    如果要改该物理地址的前三个字节,格式如:-d076A:0010 50 20 10

    注意:内存中的修改字节是临时的,DOSBox重启就恢复原来的。

image

   3.4 使用u命令将内存中的机器指令翻译成汇编指令,如下所示

    其中PUSH AX 是汇编语言中用于临时保存寄存器数据的一个最基本、最重要的操作

    再次输入u命令继续往下查

image

  3.5 使用 t 命令执行一条机器指令 ,单步执行程序

image

   

 

posted on 2025-11-04 11:29  花阴偷移  阅读(5)  评论(0)    收藏  举报

导航