You are on page 1of 4

BEncode Editor Readme

Many people have previously asked about where one might find an editor that can
safely edit BEncoded files, but none have really existed in the general sense.
The only ones I've seen were .torrent file editors, which (although they
technically do edit BEncoded files) don't edit just ANY type of BEncoded file.
Out of a bit of boredom and free time, this editor was born.
Consider this editor to be experimental. As such, you should exercise caution by
backing up any files you plan on editing with this utility.
* Edit .torrent files:
- the announce/announce-list keys (binary/list) store the tracker(s)
- the url-list key (binary/list) stores the webseed(s)
- the nodes key (list) stores the DHT bootstrap node(s)
WARNING: When editing .torrent files, any changes to the info dictionary will
change the .torrent file's infohash. Unless you know what you're
doing, you should refrain from doing this. If you aren't familiar
with the .torrent file metadata structure, read this:
(in particular, the "Metainfo File Structure" section)
* Edit uTorrent's .dat files:
- corrupt resume.dat files can sometimes be salvaged simply by loading and
saving the resume.dat file in this editor
- the paths stored in resume.dat can be edited en masse with Find/Replace
WARNING: Make sure you first exit uTorrent before editing these files, as
uTorrent rewrites/updates the files on exit. Additionally, the
.fileguard key should be removed, since uTorrent will consider the
edited .dat file to be damaged if it is edited and no longer matches
the stored .fileguard hash.
* Binary data and integers are exported as raw data rather than BEncoded data
* Dictionary merging does not sort keys or resolve duplicate keys
* File recovery recovers only decodable parts of input files
* Finding "Value by Key" finds exact key names unless RegEx is used
* Holding Ctrl while reloading reloads data from disk
* Holding Shift while moving moves an item to top/bottom (direction-dependent)
* Holding Shift while pasting pastes the item below the currently focused item
* Holding Shift while sorting will recursively search for dictionaries to sort
* Only dictionaries can be sorted
* Only files containing dictionaries and lists can be edited directly
* Switching an item between dictionary/list will cause the item to be cleared
* The root of a dictionary (not its children) must be selected to sort it
v0.7.1.0 (2010-02-09)
+ Feature: Recovery fallback on decoding error
v0.7.0.0 (2009-12-31)


New: x64 build support

Feature: Item hashing
Feature: Item validation
Feature: Merge binary/dictionary/list data
Feature: Move item to top/bottom
Feature: Recursive sorting (hold Shift while clicking Item > Sort Keys)
Feature: Undo/redo changes
Change: Allow blank key names when searching using "Value by Key"
Change: Allow save if file no longer exists, even without changes
Change: Binary input/conversion made slightly more lenient/reliable
Change: Exporting integers exports a raw (rather than BEncoded) integer
Change: Indicate in the window title whether a file has been modified
Change: Move up/down keyboard shortcuts changed to Ctrl+Up/Down
Change: Reload the treeview on F5, reload from disk on Ctrl+R
Change: Select all text in focused dialog input control on Ctrl+A
Change: Shift+F3 searches in the opposite direction
Change: Show "Find" dialog if never shown before "Find Next" is used
Change: Store Find options only on search, not on dialog close
Fix: Repeated successive conversions into Binary allowed in Find/Replace
Fix: Switching data types not properly hiding/showing controls in dialogs
Fix: UI "allows" child to be added to an integer, but crashes on attempt

v0.6.1.0 (2008-09-18)
* Fix: Paths with consecutive '%' characters fail to open
v0.6.0.0 (2008-06-20)
+ Feature: Cut/Copy/Paste items
+ Feature: Filter searches based on key
+ Feature: Holding Ctrl while reloading reloads data from disk
+ Feature: Log the number of replacements made during Replace All
+ Feature: Move item up/down
+ Feature: On import, use filename as suggestion for key name (if empty)
+ Feature: Regular expressions search/replace (PCRE engine)
+ Feature: Select all Logger tab items with Ctrl+A
+ Feature: Sort keys (for dictionaries only)
~ Change: Add accelerators for dialog buttons
~ Change: Center popup dialogs on display
~ Change: Disable dialog buttons on action
~ Change: Display Edit dialog on double-click only if text double-clicked
~ Change: Don't collapse/expand treeview item on double-click
~ Change: Faster BDecoding (~30% improvement over v0.5.1 in tests)
~ Change: Faster BEncoding (~85% improvement over v0.5.1 in tests)
~ Change: Faster Find/Replace operation (much improved on larger treeviews)
~ Change: Faster treeview filling (~50% improvement over v0.5.1 in tests)
~ Change: Focus main window on drag-and-drop
~ Change: Increase input limit on edit controls
~ Change: Searches for blank values are always treated as exact searches
~ Change: Select all text in Value field each time Find/Replace dialog shown
~ Change: Unicode support on treeview and listview
~ Change: Use accelerators instead of global hotkeys
~ Change: Visual feedback when busy performing find (busy mouse cursor)
* Fix: Inaccurate window resize limiting under various Windows themes
* Fix: Non-transparent background on "button" icons in certain situations
* Fix: Switching binary input type in Add/Edit dialogs causes data loss
* Fix: Sub-item count not displayed for dictionaries/lists added to a list
v0.5.1.0 (2008-03-06)
* Fix: Missing controls in the Find/Replace dialog
v0.5.0.0 (2008-02-14)


Feature: "Item" menu with associated keyboard shortcuts

Feature: Copy Logger tab items with Ctrl+C
Feature: Double-click to edit item
Feature: Export data from selected item
Feature: Import external file as binary data
Feature: Input raw BEncoded data directly or from an external file
Change: Add .torrent and .dat to dropdown list in Open/Save dialogs
Change: Add line breaks to the Logger tab between file opens
Change: Disable hotkeys when busy
Change: Don't allow saves when no changes have been made to data
Change: Faster BDecoding (~15% improvement over v0.4.1 in tests)
Change: Faster treeview filling (~20% improvement over v0.4.1 in tests)
Change: Miscellaneous Find/Replace tweaks, fixes, and polish
Change: Show type and item count for "[ ROOT ]" item
Fix: "ITEM -1" when adding child list/dictionary to bottom of list
Fix: "Reached beginning/end of document" message sometimes shown twice
Fix: Combobox not showing options in dropdown on pre-XP systems
Fix: Strings can replace integers in Find/Replace
Fix: Typo in Logger entry for BEncoding
Fix: Using "Find Next" sometimes returns focus to wrong window

v0.4.1.0 (2007-12-05)
* Fix: "Properize" bad integer input
v0.4.0.0 (2007-12-05)
~ Change: "File > Load" changed to "File > Open"
~ Change: Faster BDecoding (~30% improvement over v0.3 in tests)
~ Change: Faster treeview filling (~70% improvement over v0.3 in tests)
~ Change: Minor optimizations to adding/deleting/editing of items
~ Change: No longer clears window if file loading/decoding fails
~ Change: No longer switches to Structure tab on file open
~ Change: Scroll Logger when new entries are added
~ Change: Timings shown in Logger
* Fix: File locked if open/save fail
* Fix: File save error caused window to clear (possible data loss)
* Fix: Find/Replace on keys with dictionary values caused incorrect item count
* Fix: Integers in lists not displayed on treeview
* Fix: Integers larger than 32-bits not displayed properly on treeview
* Fix: Integers larger than 64-bits unusable
* Fix: Keyboard shortcut for file open not working
* Fix: Making binary value empty in lists doesn't update/show on treeview
v0.3.0.0 (2007-11-25)
+ Feature: Drag and drop support
+ Feature: Find/Find Next/Replace
+ Feature: Load files from commandline
~ Change: A bit more aware of disk read/write errors
~ Change: Don't close main window on Esc
~ Change: Faster BDecoding (~75% improvement over v0.2 in tests)
~ Change: Log some more events
~ Change: Smaller executable due to lessened dependence on standard library
~ Change: Visual feedback when busy (busy mouse cursor)
v0.2.0.0 (2007-10-25)
+ Feature: Create NEW BEncoded files
+ Feature: Edit "[ ROOT ]" item directly
+ Feature: Keyboard shortcuts
~ Change: Ask to save file before performing actions where changes get lost
~ Change: Don't display ellipses ("...") for empty binary strings
~ Change: Improve string/binary conversion to minimize chances of data loss


Change: Switch to Logger tab on error

Change: Use child dialogs for FileOpenDialog, FileSaveDialog, and MsgBox
Change: Use icons as buttons (Crystal Clear icon set by Everaldo)
Change: Warn when data loss imminent from switching views
Fix: Saving appends data to end of file

v0.1.0.0 (2007-10-08)
^ New: Initial release
Everaldo (Crystal Clear icon set)