Character-Encoding – Decoding hexadecimal string coding

I have a .bin saved by a VB program. The format of the .bin is:

String bytes | String
06 00 | C0 E1 E0 E8 F1 E0

The problem is that I don’t know how the string is encoded. I know what the string should be: Abela

Who can recognize The encoding used?

I don’t know any standard character encoding. It is neither ASCII nor EBCDIC.

It seems to be some trivial 8-bit (non-Unicode) ASCII (probably ANSI) encryption. Compare your unknown encoding with ASCII:

Unknown ASCII
Hex MSB LSB Hex MSB LSB
A CO 1100 0000 41 0100 0001
b E1 1110 0001 62 0110 0010
a E0 1110 0000 61 0110 0001
i E8 1110 1000 69 0110 1001
r F1 1111 0001 72 0111 0010
a E0 1110 0000 61 0110 0001

Let’s define:

> MSB: The first nibble = the most important 4 bits
> LSB: the second nibble = the least significant 4 bits
> _U: unknown
> _A: ASCII

Then you will find:

> MSB_U = MSB_A Xor 0x80 (probably MSB_A or 0x80)
> LSB_U = LSB_A 1 (tell how to deal with overflow I need to see the ASCII character’O’ or’o ‘)
>Then U is the concatenation of MSB_U & LSB_U.

More examples from ASCII to Unknown:

ASCII Hex MSB LSB MSB Xor 0x80 LSB -1 Concatenated Hex
H 48 0100 1000 1100 1001 1100 0111 C7
e 65 0110 1001 1110 1010 1110 1000 E8
r 72 0111 0010 1111 0011 1111 0001 F1 (as you have shown)
b 62 0110 0010 1110 0011 1110 0001 E1 (do.)

I have a .bin saved with a VB program. The bin format is:

String bytes | String
06 00 | C0 E1 E0 E8 F1 E0

The problem is I don’t know How is the string encoded. I know what the string should be: Abela

Who can recognize the encoding used?

I don’t know any standard character encoding. It is neither ASCII nor EBCDIC.

It seems to be something trivial 8-bit (non-Unicode) ASCII (probably ANSI) encryption. Compare your unknown encoding with ASCII:

Unknown ASCII
Hex MSB LSB Hex MSB LSB
A CO 1100 0000 41 0100 0001
b E1 1110 0001 62 0110 0010
a E0 1110 0000 61 0110 0001
i E8 1110 1000 69 0110 1001
r F1 1111 0001 72 0111 0010
a E0 1110 0000 61 0110 0001

Let’s define:

> MSB: the first nibble = the most important 4 bits
> LSB: Second nibble = least significant 4 bits
> _U: Unknown
> _A: ASCII

Then you will find:

> MSB_U = MSB_A Xor 0x80 (probably MSB_A or 0x80)
> LSB_U = LSB_A 1 (tell how to deal with overflow I need to see the ASCII character’O’ or’o’)
>Then U is the concatenation of MSB_U & LSB_U .

More examples from ASCII to Unknown:

ASCII Hex MSB LSB MSB Xor 0x80 LSB-1 Concatenated Hex
H 48 0100 1000 1100 1001 1100 0111 C7
e 65 0110 1001 1110 1010 1110 1000 E8
r 72 0111 0010 1111 0011 1111 0001 F1 (as you have shown)
b 62 0110 0010 1110 0 011 1110 0001 E1 (do.)

Leave a Comment

Your email address will not be published.