使用Bochs模拟器和IDA调试MBR

Bochs源码分析 - 4: 使用ida来调试bochs 前言 bochs内部提供了一个调试器,但是这个命令行调试器相当难用,想找一个gui的debugger。第一次是在百度百科的bochs词条中介绍的peter-bochs-debugger调试器(java编写),但是后来发现ida也有一个bochs调试器,因为对ida比较熟悉,就选用此作为bochs调试器。 在配置过程中参考博客 https://blog.csdn.net/cssxn/article/details/90738498 中的配置,但是这是直接发布版本,拿源码编译... 阅读详情

需要环境

  • 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.img的mbr

启动模拟器命令:

bochs.exe -q -f bochsrc

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

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

参考链接:

自己动手写操作系统(二)——搭建bochs环境 在学习《自己动手写操作系统》第三章时候遇到了运行环境的问题,经过一些思考决定使用bochs,但是网上对bochs的总结零零散散,所以我在这里以第三章程序运行环境搭建来的bochs进行一定的总结 阅读详情

相关推荐

ComfyUI实战:AnimateDiff与ControlNet结合,打造无缝风格化视频转绘

本文详细介绍了如何利用ComfyUI平台,结合AnimateDiff与ControlNet插件,实现高质量的视频风格化转绘。通过搭建节点工作流、调整关键参数,有效解决画面闪烁与失真问题,并分享了进阶玩法与常见问题解决方案,帮助用户轻松打造流畅、风格统一的动态视觉效果。

weixin_29039773的博客 329

IDA&&BOCHS调试MBR

一、说明 IDA都很熟悉,强大的逆向工具。 Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。Bochs模拟的是整个PC平台,包括I/O设备、内存和BIOS。更为有趣的是,甚至可以不使用PC硬件来运行Bochs。对于调试操作系统是灰常强大的。说白了就是一个虚拟机。   二、IDA调试MBR IDA调试MBR比较简单,先配置下虚拟机的VMX文件,添加一下代码: [A...

kingswb的博客 2366

Python爬虫实战:如何高效抓取拼多多商品信息、销量与价格数据,破解反爬虫挑战

**摘要:**本文介绍利用Python爬虫技术抓取拼多多商品数据(价格、销量等)的方法与应用价值。通过分析拼多多商品页面的HTML结构,使用Requests和Selenium获取数据,并应对反爬虫机制(IP代理、请求头伪装等)。数据可存储于MongoDB或CSV用于市场监控、竞品分析等场景。文章涵盖技术选型、实战代码示例及反爬策略,为电商数据分析提供实用指导。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1654

用bochs调试mbr-深入mbr调试分析

上一篇调试mbr的时候有一个call,如果这个call跟进去的话在一个跳转之后内存地址明显不是mbr代码段了,所以上篇调试中并未对这个call深入分析。 问题如图! 在jmp之后的代码与ida完全不一样了。 问题出在int 13h这个地方,int 13h在这里是中断,如果单步步入的话就会进入中断处理程序,所以int中断这里需要单步步过 这里不是jb跳转啊,int指令是不能s单步...

笔记本 1710

【crawler笔记】R语言简单动态网页爬虫(rvest包)示例

1、爬虫目标 大家普遍认为Python的爬虫功能强大,但在解决动态加载或者登陆网站时,Python存在一定困难的,相对于一些普通爬虫,使用R语言会更方便。 以https://www.thepaper.cn/为例,爬取首页的新闻(标题、内容、时间),主要采用的是动态网页中常用的httr包。 初始学习时,参考了B站《20分钟入门基于R语言的网络爬虫_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili》的视频,但代码运行出现了报错,所以在原代码上做了修改。 2、代码分析及报错修改 library(rv

seeyouer1205的博客 3272

手把手教你用西门子博图V18配置阿特拉斯PF6000拧紧枪PN通讯(附完整GSD文件与ToolsTalk配置文件)

本文详细介绍了如何使用西门子博图V18配置阿特拉斯PF6000拧紧枪的PN通讯,包括硬件连接、网络参数规划、ToolsTalk软件配置及博图工程设置。通过完整的GSD文件和配置文件,帮助工程师快速实现高精度拧紧设备与PLC的高效通讯,适用于汽车装配和电子制造等工业自动化场景。

weixin_42662293的博客 593

使用BOCHS调试MBR

基于上一篇文章,所有操作完成之后运行“WinXP.bxrc”,不出意外的话会提示“NTLDR is missing”这就可以了。 新建一个BAT,内容如下: ..\bochsdbg.exe -q -f WinXP.bxrc执行BAT就进入了调试模式,两个窗口全部停住,界面如下: 现在的CPU应该是停在了F000:FFF0地址,是一个JMP指令,用于跳转到BIOS的ROM中。 之后的

SomeTimes 3072

全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(下)

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。

慕羽★的博客 2291

用bochs调试mbr--开始调试啦

上一篇写了安装系统,这篇就开始正式调试啦 1.上节写了个run.bat是通过给bochs.exe主程序传参实现的系统开启,调试也是一个道理 在run.bat目录下写一个debug.bat 使用相同参数调用即可 2.下面是调试过程 Next at t=0 (0) [0x00000000fffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b ...

笔记本 731

贪婪投影三角化算法

贪婪投影三角化算法是一种利用点云数据进行曲面重建的方法。其基本思想是通过迭代地连接点云中的邻近点来生成三角形,从而构建出整个表面。这种方法被称为“贪婪”,因为它在每一步仅考虑当前最优的策略,而不考虑全局的最优性。

twnkie的博客 1561

垂类大模型 研发方向与具体方案调研

领域知识库加上通用大模型,针对通用大模型见过的知识比较少的问题,利用向量数据库等方式根据问题在领域知识库中找到相关内容,再利用通用大模型强大的summarization和qa的能力生成回复,完成本次垂直大模型研发。目前很多企业希望将大模型的能力应用到企业内部当中,但很多通用大模型只是一个预训练模型,其所能回答的知识主要来源于互联网上公开的通用知识库,对于部分垂直领域和企业内部的私有知识库的问答,给出的回答。:垂类大模型的效果与底座性能息息相关,研发垂类大模型第一步就是确定开源大模型解决方案。

风吹落叶的博客 3322

怎么在ida中编译html使用教程视屏,IDA&&BOCHS调试MBR

本帖最后由 willJ 于 2012-11-24 18:41 编辑一、说明IDA都很熟悉,强大的逆向工具。Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。Bochs模拟的是整个PC平台,包括I/O设备、内存和BIOS。更为有趣的是,甚至可以不使用PC硬件来运行Bochs。对于调试操作系统是灰常强大的。说白了就是一个虚拟机。二、IDA调试MBRIDA调试MBR比较简单,先配置下...

weixin_32028965的博客 396

IMX335摄像头原理图设计,已量产

从工程组织上看,IMX335 模组和 IMX415 模组属于同一类产品:核心矛盾不是外设多,而是高速图像链路、电源域和调试接口要同时兼顾。ATK-MCIMX335 这张图的结构也很直接,三路 LDO、本地 24MHz 可选时钟、4-lane MIPI 数据对和一组主板侧标准接口,构成了一张非常典型的量产摄像头子板。

不脱发的程序猿 424

【Linux】编写最简单操作系统(mbr)并用bochs工具调试

----------------------------------------------------------------------------------------------------------- 0-3ff 1k用于中断向量表 400-4ff 256B bios数据区 500-7Bff 30kb 可自定义区域 7C00-7BFF 512b MBR被bi...

梦想博客 1592

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

win7 下 bochs 运行 Hello World OS

安装 bochs,dd for windows,nasm 用 bochs 中 bximage.exe 创建新的 img 文件 编写 Hello.asm org 07c00h ; 告诉编译器程序加载到 7c00处 mov ax, cs mov ds, ax mov es, ax call DispStr ; 调用显示字符

一刀不二 4211

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【开发操作系统】1 搭建虚拟开发环境

一、为什么需要搭建虚拟开发环境 操作系统作为软件,是从硬件设备加载,执行的的二进制代码。因此,从做一个可以快速加载启动的简单小系统开始,毕竟有成就感。也是后续开发运行的基础。 选择虚拟环境,而不是直接进行硬件加载,首先是方便开发。另外可以节省资源。虚拟环境就是采用软件模拟了硬件环境。 因此各种虚拟机、模拟器都可以用来做这样的工作。网络上有很多采用虚拟机来进行硬盘加载开发的,也有采用模拟器进行的。 我们这里先介绍采用一个主流的x86模拟器bochs进行搭建入门。后续再介绍采用虚拟机,以及其中的原理。 二、搭建

xihuanyuye的博客 2316

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

使用bochs自带工具生成image文件

使用bochs自带工具生成image文件;

bcbobo21cn的专栏 869

Bochs安装及常见问题解决

解决办法:作者指出,我们换一种显示的方案就可以了。首先安装bochs-sdl,用apt-get可以安装。安装命令如下:sudo apt-get install bochs-sdl。改成: vgaromimage: file=/usr/share/vgabios/vgabios.bin。解决办法:将vgaromimage: /usr/share/vgabios/vgabios.bin(注释掉)由于bochs依赖一些软件,因此在首次运行的时候可能会有一些错误。下面是常见的错误及解决方法。

Tancilon的博客 754

在UBUNTU上安装基于bochs的 xv6

第一个步骤——安装bochs: 在安装bochs时需要从官网x下载tar包 解压后, 首先配置configure, ./configure --prefix=/usr/local/bin/bochs –enable-debugger –enable-disasm --enable-x86-debugger --with-x --with-x11 (–enable-debugger和 –enable...

weixin_30565199的博客 502

Windows下Bochs的简单使用

Bochs的安装 安装Bochs后,安装目录如下: 可以用到的东西分为两大类: 应用程序 先说一下bochs.exe、以及bochdbg.exe前者直接运行虚拟机,后者可以从头开始调试。 然后就是bximage.exe,这是一个专门用于生成软盘或者磁盘镜像的软件,并且可以对镜像的参数进行调整。 其余都不常用。 各种资源文件 在用于配置虚拟机,告诉Bochs要运行的虚拟机是什么样的: BIOS系...

lhl2014123的博客 8713

linux-0.11调试教程,Bochs-2.1.1配置文件,精简版可拷贝,及img文件制作过程

说明1:BIOS-bochs-latest文件和VGABIOS-elpin-2.40文件都在bochs安装目录下,既C:\Program Files\Bochs-2.1.1 说明2:bootimage-0.11-hd和diskb.img和hdc-0.11.img都是用户自己制作或下载的别人制作好的文件。 下面是bochsrc-hd.bxrc文件的内容: romimage: file=

linux-0.11调试教程 4957

在bochs虚拟机中安装WindowsXP (学习)

好吧话不多说,开始安装 WIndowsXP 1、下载安装bochs……(这步不会的下面可以不用看了……) 2、在Bochs安装目录中创建一个WinXP文件夹(同上面的括号) 3、创建虚拟硬盘用于存放WinXP镜像 具体步骤: 进入命令提示符,使用bximage工具 生成image需要回答几个问题 一:生成硬盘还是软盘 二:镜像类型 flat sparse or growing 三

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 9660

Bochs源码分析 - 2:使用bochs运行引导代码

前言 这一篇文章中,我们尝试使用编写引导代码,然后配置bochs让其可以运行这份代码,过程中遇到的问题,为什么这么做,我会尽可能详细的描述给大家,当然自己可能存在错误,请见谅!! 安装 nasm 编译器 ...

WriteAnything_的博客 1309

bochsdbg调试保护模式程序的方法

Bochsrc_sample.txt里有提到: “在Bochs的配置文件里加上一句magic_break: enabled=1,然后在程序里加上一句xchg bx,bx,运行到这条指令时会断到Bochs调试器里。这样就可以继续调试下去了。

aliec的专栏 1298
上一篇: chm混淆+qq白利用免杀360主动防御
下一篇: 使用Office进行DDE攻击
FFE4
博客等级 码龄9年 234粉丝 166原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值