Binary Editor

BinEdit is a binary editor that I developed. This took a lot of hours, but it has plenty of uses. Code or data, it doesn't matter--it can pick apart a file using a real-mode indexing system.

What can BinEdit do?

Use BinEdit to read any file of any file format. The program has two main functions: hex editor and code dissembler.

The Hex Editor feature will open any file in a binary format so that you can view bytes according to their physical addresses in the file. This supports decimal/hexadecimal numbering systems, a real-mode segment/offset viewing algorithm, and perfect 1-to-1 write-back capabilities that allow you to change only specific bytes in a file, without changing the total length of the file. The hex editor supports both a numeric viewing system and a text viewing system.

The Code Dissembler feature will analyze any COM or EXE file and conduct a thorough code trace. The code dissembler uses a nonlinear searching algorithm to locate all branches of code from existing jumps and calls. It also pastes text labels of each branch it finds. Currently, the dissembler's focus is real-mode MS-DOS applications and is therefore limited in accuracy to only the 8086 instruction set.

Available Versions

BinEdit Version 0.9 contains only the hex editor. Requires only a speck of memory compared to version 1.1. It is also more robust and less crash-prone than version 1.1.
Download BinEdit Version 0.9

BinEdit Version 1.1 is a prototype that contains the code dissembler. It can do everything that version 0.9 can do. It can also dissemble EXE's and COM's. Several bugs from 1.0 have been fixed.
Download BinEdit Version 1.1

I have documented the program up to version 1.1. If you have any questions or comments about BinEdit, or if you would like to report bugs, please contact me by e-mail.
Read BinEdit Documentation

Patches Created with BinEdit

Many real-mode applications of the past have been "broken" today for only a single reason: CPU speed increases. Often, a slowdown utility or emulator can do the trick, but this doesn't always work. I have always been interested in getting programs to work that are too fast on modern processors, yet also seem to thwart slowdown utilities. BinEdit helped me immensely in performing the hack job for BipBop 2.

I am proud to present a patch for the shareware version of BipBop 2. The reason why slowdown utilities didn't work, I found out, was this: the delay counter used an internal polling loop, a HORRIBLE speed control device. The problem with BipBop 2 was that its real-time delay counter was only 16 bits wide, which made it reach an upper limit at the number 65535, and consequently run too fast on faster computers. This patch tweaks it so that the precision is 32 bits. It runs fine on a 350 MHz processor.
Download BipBop 2 Patch

Important Notice--Please Read

BinEdit is a free download provided by Christopher Allen. It is considered open source. Modifications or alterations to any file as a result of BinEdit's use do not fall under the responsibility of this site or its owner.

This site provides an educational viewpoint of code dissembly and encourages people to learn about how compiled code is constructed. It does not in any way condone unlawful use of this product or other dissemblers. If you are concerned about the extent of which you may use BinEdit, check with the owner of the respective program you wish to dissemble, or, if you own the product, read the license agreement associated with the purchase.

If the user of BinEdit has compiled his or her own program and wants to dissemble it, this person is free to keep all text recordings of the dissembled program. This site holds no claim to any file created by BinEdit.

Download BinEdit
Projects
Downloads

Home | What's New | Links | Contact Info
Copyright 2004 Christopher Allen.