{"repo":"Theldus/bread","free":true,"listed":false,"github":"https://github.com/Theldus/bread","clone":"git clone https://github.com/Theldus/bread.git","description":"🍞 BREAD: BIOS Reverse Engineering & Advanced Debugger","language":"C","stars":327,"topics":["bios","debugging","gdb","reverse-engineering","x86","debugger","firmware"],"license":"MIT","category":"dev-tools","readme_excerpt":"🍞 BREAD BREAD (BIOS Reverse Engineering & Advanced Debugger) is an 'injectable' real-mode x86 debugger that can debug arbitrary real-mode code (on real HW) from another PC via serial cable. Introduction BREAD emerged from many failed attempts to reverse engineer legacy BIOS. Given that the vast majority -- if not all -- BIOS analysis is done statically using disassemblers, understanding the BIOS becomes extremely difficult, since there's no way to know the value of registers or memory in a given piece of code. Despite this, BREAD can also debug arbitrary code in real-mode, such as bootable code or DOS programs too. Quick demo: https://user-images.githubusercontent.com/8294550/217709970-9007a1e3-7352-470d-a22f-cbb5219d5547.mp4 Changing CPU string name via BREAD How it works? This debugger is divided into two parts: the debugger (written entirely in assembly and running on the hardware being debugged) and the bridge, written in C and running on Linux. The debugger is the injectable code, written in 16-bit real-mode, and can be placed within the BIOS ROM or any other real-mode code. When executed, it sets up the appropriate interrupt handlers, puts the processor in single-step mode, and waits for commands on the serial port. The bridge, on the other hand, is the link between the debugger and GDB. The bridge communicates with GDB via TCP and forwards the requests/responses to the debugger through the serial port. The idea behind the bridge is to remove the complexity of GDB pack","default_branch":null,"files":null,"tree":[],"storefront":"/r/Theldus","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Theldus/bread/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}