freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Bread:一款功能强大的BIOS逆向工程和高级调试工具
Alpha_h4ck 2024-01-11 10:22:45 179365


关于Bread

Bread是一款功能强大的BIOS逆向工程和高级调试工具,该工具也是一个“可注入”的实模式(Real-Mode)x86调试器,可以帮助广大研究人员通过串行线缆从另一台电脑调试任意实模式代码。

考虑到目前社区中很多BIOS逆向工程工具都是使用反汇编程序静态完成的,这就导致理解BIOS上下文环境会变得非常的困难,而且也无法得知给定代码中寄存器或内存的值。因此,Bread便应运而生。Bread支持以实模式(Real-Mode)调试任意代码,例如可引导代码或DOS程序等。

工具运行机制

Bread主要分为两个部分:调试器Debugger和桥接器Bridge。其中,调试器完全使用汇编语言开发,可以在硬件上运行,而桥接器则使用C语言开发,可以在Linux操作系统上直接运行。

调试器本质上是可注入的代码,以16位实模式开发,可以注入到BIOS ROM或其他实模式代码中。在执行时,它可以设置适当的中断处理程序,并将处理器设置为单步模式,然后等待串口上的命令。

桥接器则是调试器和GDB之间的链接,桥接器通过TCP与GDB通信,并通过串行端口将请求/响应转发给调试器。桥接器的目的是消除GDB数据包的复杂性,并建立一个更简单的协议来与机器通信。

下图显示的是该工具的整体架构图:

功能介绍

当前版本的Bread支持下列功能:

1、读取内存;

2、写入内存;

3、读取和写入寄存器;

4、单步模式;

5、断点;

6、硬件监控点;

工具要求

1、GNU Make

2、C编译器(例如GCC、Clang或TCC)

3、NASM

4、Linux操作系统

工具下载

广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/Theldus/bread.git

然后切换到项目目录中,运行下列命令完成代码构建:

cd BREAD/

make

make UART_POLLING=no

工具使用

假设符号文件路径为symbols/ami_ipm41d3.txt,我们可以通过下列命令执行Bread:

$ ./simbolify.py symbols/ami_ipm41d3.txt ip41symbols.elf

接下来,使用下列方法将其加载到GDB中:

(gdb) add-symbol-file ip41symbols.elf 0

add symbol table from file "ip41symbols.elf" at

.text_addr = 0x0

(y or n) y

Reading symbols from ip41symbols.elf...

(No debugging symbols found in ip41symbols.elf)

(gdb) p cseg_

cseg_change_video_mode_logo  cseg_get_cpuname             

(gdb) p cseg_

工具运行演示

工具使用演示

演示视频一:【点我观看

演示视频二:【点我观看

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

Bread:【GitHub传送门

参考资料

https://sourceware.org/gdb/onlinedocs/gdb/Memory.html

https://sourceware.org/gdb/onlinedocs/gdb/Dump_002fRestore-Files.html

https://sourceware.org/gdb/onlinedocs/gdb/Searching-Memory.html

https://sourceware.org/gdb/onlinedocs/gdb/Assignment.html

https://sourceware.org/gdb/onlinedocs/gdb/Dump_002fRestore-Files.html

https://sourceware.org/gdb/onlinedocs/gdb/Registers.html#Registers

https://sourceware.org/gdb/download/onlinedocs/gdb/Continuing-and-Stepping.html

https://sourceware.org/gdb/download/onlinedocs/gdb/Set-Watchpoints.html

# 逆向工程 # 硬件安全 # BIOS # 逆向分析 # GDB调试
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1022 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录