1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#include <stdio.h>
unsigned char byte_7FF7833FE000[8] = {
0x62,0x6f,0x6d,0x62, 0x00, 0x00, 0x00, 0x00
};
int dec(unsigned *a1, unsigned *a2)
{
int result; // rax
unsigned int v3; // [rsp+44h] [rbp+24h]
int i; // [rsp+64h] [rbp+44h]
int j; // [rsp+84h] [rbp+64h]
result = 2421198151;
v3 = 2421198151-2009038745*33*4;
for ( i = 0; i < 4; ++i )
{
for ( j = 0; j < 33; ++j )
{
v3 += 2009038745;
*a2 -= (((32 * *a1) ^ (*a1 >> 4)) + *a1) ^ (v3 + byte_7FF7833FE000[(v3 >> 11) & 3]);
*a1 -= (((32 * *a2) ^ (*a2 >> 4)) + *a2) ^ (v3 + byte_7FF7833FE000[v3 & 3]) ^ v3;
}
result = (unsigned int)(i + 1);
}
return result;
}
int main(int argc, char const *argv[])
{
unsigned char byte_7FF7833FE040[32] = {
0xE0, 0xF3, 0x21, 0x96, 0x97, 0xC7, 0xDE, 0x89, 0x9B, 0xCA, 0x62, 0x8D, 0xB0, 0x5D, 0xFC, 0xD2,
0x89, 0x55, 0x1C, 0x42, 0x50, 0xA8, 0x76, 0x9B, 0xEA, 0xB2, 0xC6, 0x2F, 0x7C, 0xCF, 0x11, 0xDE
};
for (size_t i = 0; i < 32; i++)
{
byte_7FF7833FE040[i] ^= i;
}
unsigned int *v =(unsigned int *)byte_7FF7833FE040;
dec(v,v+1);
dec(v+2,v+3);
dec(v+4,v+5);
dec(v+6,v+7);
puts(v);
}
|