Borg Disassembler

Program-Transformation.Org: The Program Transformation Wiki

Borg is a freeware disassembler for Windows 32-bit binaries (PE executables and DLLs), written to overcome some of the limitations of other Windows-based disassemblers. Borg provides a simple graphical interface with pull down menus. All output is sent to a window, which can then be saved onto an ascii file. Borg disassembles data and recognizes strings. It does not recognize symbols and does not recognize statically-linked library function calls but supports dynamically-linked function names.

Borg v1.08 includes an option of code flow analysis, which allows it to generate better code and give hints of high-level control structures such as while's, do's and if's (in comments). The author, Paul Young (aka Cronos), implemented simple yet effective algorithms for structured programs. A list of instructions that affect control flow is created and this map is used to identify simple control structures (if's and while's). This list is reduced, hence recognizing nested control structures. Support for unstructured code (e.g. a break within a loop) is not included yet.

Borg is downloadable from the web page, both source code and binaries. The current release is v2.28, which features interactivity. Cronos states that he is working on version 3.