43 lines
744 B
C
43 lines
744 B
C
#include <stdio.h>
|
|
|
|
char rolling_xor(char *key, char* encrypted_data)
|
|
{
|
|
char* v0 = key;
|
|
int v1 = 0;
|
|
char *i = encrypted_data;
|
|
char result;
|
|
|
|
for ( ; *i; ++i )
|
|
{
|
|
result = *v0;
|
|
*i ^= *v0++;
|
|
if ( ++v1 == 8 )
|
|
{
|
|
v0 = key;
|
|
v1 = 0;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
int main(){
|
|
char encrypted_data[] =
|
|
{
|
|
0x09, 0x07, 0x11, 0x48, 0x20, 0x73, 0x02, 0x68, 0x2C, 0x67,
|
|
0x62, 0x02, 0x3E, 0x36, 0x7D, 0x1A, 0x1E, 0x35, 0x1F, 0x07,
|
|
0x2A, 0x1D, 0x3C, 0x0B, 0x71, 0x25, 0x62, 0x57, 0x7E, 0x30,
|
|
0x13, 0x3B, 0x71, 0x07, 0x2E, 0x00
|
|
};
|
|
|
|
char key[] =
|
|
{
|
|
0x52, 0x4A, 0x4A, 0x33, 0x44, 0x53, 0x43, 0x50, 0x00
|
|
};
|
|
|
|
|
|
rolling_xor(key, encrypted_data);
|
|
|
|
printf("decrypted: %s\n", encrypted_data);
|
|
|
|
}
|