Kramen
Kramen

Reputation: 43

Editing in binary

I've been tinkering with multiple hex editors but nothing really has worked.

What I'm looking for is a way to change a binary in actual binary (not in hex). This is purely for educational purposes and I know it's trivial to convert between both, but I wanted to be able to change the ones and zeroes just like I would do hex.

I've tried using vim with the %!xxd -b but then it won't work with %!xxd -r. I know how to convert the file into binary, but I'm looking for a way to dynamically change it in this format and being able to save it.

Better yet would be if I could find a way to actually create a binary by coding purely in actual binary.

Any help would be appreciated :D

Upvotes: 2

Views: 1935

Answers (2)

blabb
blabb

Reputation: 9007

windows open cmd.exe or notepad++ or whatever editor
enable numlock key
On laptops you need to use the function key or the blue / grey silver numbers above alphabet keys (using the numbers on the top line will not work as they map to different scan code.

press alt key + 255 will correspond to 0xff
press alt key + 254 will correspond to 0xfe

see below for a demo

C:\>copy con rawbin.bin
 ■²ⁿ√·∙⌂~}─^Z
^Z
        1 file(s) copied.

C:\>xxd rawbin.bin
0000000: fffe fdfc fbfa f97f 7e7d c41a 0d0a       ........~}....

C:\>

Alt-CHar_in winword

Upvotes: 0

joanis
joanis

Reputation: 12221

vim or gvim should work for you directly, without the xxd filter.

Open the file in (g)vim. Place your cursor on a character and type ga to see its character code in the status line. To insert character NNN, place your cursor where you want it, go in insert mode and type Ctrl-v and then the three digit decimal code value. Use Ctrl-v x HH to enter the character by its hexadecimal code.

Make sure your terminal is not set to use UTF8, because in UTF8, typing Ctrl-v 128 will in fact insert c280, the utf-8 encoding of character 128, instead of 80.

LC_ALL=C vim binary-file

is the easiest way to make sure you're doing binary character based editing in vim, but that might do weird things if your terminal is utf-8.

LC_ALL=C gvim binary-file

should open a stand-alone window with proper display.

FYI, if you did want to work in utf-8, Ctrl-v u HHHH is how to enter the Unicode character with Hex code point HHHH.

Upvotes: 4

Related Questions