Search code examples
algorithmencryptionhexxordeobfuscation

how to find xor key/algorithm, for a given hex?


So i have this hex: B0 32 B6 B4 37

I know this hex is obfuscated with some key/algorithm.

I also know this hex is equal to: 61 64 6d 69 6e (admin)

How can i calculate the XOR key for this?


Solution

  • If you write out the binary representation, you can see the pattern:

    encoded     decoded
    10110000 -> 01100001
    00110010 -> 01100100
    

    Notice that the bit patterns have the same number of bits before and after. To decode, you just bitwise rotate one bit left. So the value shifts left one place and the most significant bit wraps around to the least significant place. To encode, just do the opposite.

    int value, encoded_value;
    
    encoded_value = 0xB0;
    value = ((encoded_value << 1) | (encoded_value >> 7)) & 255;
    // value will be 0x61;
    encoded_value = ((value >> 1) | (value << 7)) & 255;