使用Bochs模拟器和IDA调试MBR

需要环境

  • python2.7
  • IDA 7.0
  • Bochs2.6.9
  • nasm.exe(可选)

调试步骤

第一步,创建Img文件

首先需要安装Bochs模拟器,打开安装目录,运行bximage.exe,选择1,然后一路回车,直到出现Press any key to continue
安装目录下会出现一个c.img硬盘镜像文件
在这里插入图片描述
第二步,将MBR文件,写入IMG文件

我这里先使用nasm.exe把一个用汇编写的mbr程序编译成bin文件,如果是有样本的情况下,直接取出感染的mbr部分保存成文件即可
在这里插入图片描述

使用python脚本,把编译好的mbr,写入img文件中

def UpdateImage(imgfile, mbrfile):
  """
  Write the MBR code into the disk image
  """
  
  # open image file
  f = open(imgfile, "r+b")
  if not f:
    print "Could not open image file!"
    return False
  # open MBR file
  f2 = open(mbrfile, "rb")
  if not f2:
    print "Could not open mbr file!"
    return False

  # read whole MBR file
  mbr = f2.read()
  f2.close()

  # update image file
  f.write(mbr)
  f.close()

  return True

下图提示,已经写入成功
在这里插入图片描述

第三步,编写bochsrc配置文件

在bochs安装目录,创建一个模拟器的配置文件bochsrc

romimage: file=$BXSHARE/BIOS-bochs-latest 
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
megs: 16
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="c.img", mode=flat, cylinders=20, heads=16, spt=63
boot: disk

然后测试能否正常加载刚刚写进c.imgmbr

启动模拟器命令:

bochs.exe -q -f bochsrc

在这里插入图片描述
第四步,使用IDA动态调试MBR

把刚才编写的bochsrc文件,使用IDA打开
在这里插入图片描述
在MBR程序入口下断点,然后点绿色按钮启动调试
在这里插入图片描述
调试启动后,会自动打开mbr模拟器,现在就可以调试mbr了~
在这里插入图片描述

参考链接:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值