利用debug工具将exe文件转换为com文件

首先,配置DOSBox+masm虚拟环境,参考:xp中dosbox+masm环境的配置(自用)_stdlibLOL的博客-CSDN博客

准备一个简单的汇编程序,参照该博客提供的com代码,稍作修改:简易com病毒分析_孑曦曦孑的博客-CSDN博客

.model small
program segment
    assume cs:program, ds:program, ss:program, es:program
    org 0100h
    main proc near
        mov dx, offset message
        mov ah, 09h
        int 21h
        mov ah, 4ch
        int 21h
        ret
    main endp
    message db 0dh, 'This is a simple com program for a test', 0dh, 0ah, '$'
program ends
end

将上述代码保存为example.asm,利用DOSBox指令生成example.obj和example.exe文件,然后使用debug工具进行转换。

第一步:debug example.exe

                使用r指令查看寄存器内容,当前IP寄存器内容为0000,该地址读取的指令为ADD [BX+SI], AL,不是example.asm中要求执行的第一条指令MOV DX, OFFSET MESSAGE 。

第二步:通过-r指令改变IP寄存器中内容为0100H,再用-r查看

               该步骤的目的是检查程序是否预留100H空间,若预留了空间,才能转换为COM形式。

可见当前执行指令为第一条语句MOV DX, OFFSET MESSAGE,说明确实预留了100H空间。

第三步:转换为COM文件

-n change.com   //确定文件名,必须带后缀
-w              //保存
Writing 00137 bytes
-q             //退出debug模式

 完成上述步骤后,在当前路径成功生成了change.com文件,实现了转换。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值