能力值:
( LV15,RANK:2473 )
|
-
-
12 楼
这么多天也没人玩,贴个当时的猜解代码吧,我也不知道cm用的是啥算法,我只猜smc字节的统计分布规律 我用的数据是前面那个没修正对齐的那个exe,smc位置在base+0x75FA0 (修正后的exe后面的smc数据会有几个字节不同,smc位置在base+0x76BE0)
BYTE bwns[] = {
0xDB,0xA6,0xB4,0x62,0x39,0x31,0xBB,0xFB,0xC4,0x53,0x62,0x59,0x89,0xEC,0xC2,0x6F,0x76,0x23,0xFC,0xB7, //smc代码数据
0x97,0x49,0x35,0x62,0x80,0x07,0xBD,0x6E,0x30,0x35,0xEB,0xD4,0xC9,0x73,0x4C,0x6F,0xCC,0x4E,0xFE,0x32,
0x61,0x2F,0xBC,0xF7,0xC3,0x57,0x32,0x6E,0x88,0xB1,0xDD,0x59,0x31,0x15,0xC5,0xEA,0x8A,0x45,0x75,0x32,
0xD8,0x25,0xBA,0x62,0x39,0x31,0xBB,0xE3,0xCE,0x53,0x62,0x59,0x8B,0x8B,0x6E,0x6F,0x76,0x23,0xFC,0xA7,
0x61,0x48,0x35,0x62,0x81,0xD8,0x95,0x6E,0x30,0x35,0xEB,0xDC,0x33,0x72,0x4C,0x6F,0xCF,0x47,0x3D,0x32,
0x61,0x2F,0xBC,0xEF,0x3D,0x56,0x32,0x6E,0x8A,0x2F,0x32,0x59,0x31,0x15,0xC5,0xFA,0x70,0x44,0x75,0x32,
0xD9,0x3F,0xA6,0x62,0x39,0x31,0xBB,0xEB,0x38,0x52,0x62,0x59,0x88,0xB9,0xEB,0x6F,0x76,0x23,0xFC,0xBF,
0x6B,0x48,0x35,0x62,0x83,0x37,0xB4,0x6E,0x30,0x35,0xEB,0xCC,0x3D,0x72,0x4C,0x6F,0xCE,0xBF,0x57,0x32,
0x61,0x2F,0xBC,0xE7,0x37,0x56,0x32,0x6E,0x89,0x88,0xE6,0x59,0x31,0x15,0xC5,0xE2,0x66,0x44,0x75,0x32,
0xDB,0x6D,0xA6,0x62,0x39,0x31,0xBB,0xFB,0x22,0x52,0x62,0x59,0x89,0x12,0xC3,0x6F,0x76,0x23,0xFC,0xB7,
0x75,0x48,0x35,0x62,0x80,0x1F,0xB0,0x6E,0x30,0x35,0xEB,0xD4,0x27,0x72,0x4C,0x6F,0xCC,0xA5,0xCE,0x32,
0x61,0x2F,0xBC,0xF7,0x21,0x56,0x32,0x6E,0x88,0x9D,0x2D,0x59,0x31,0x15,0xC5,0xEA,0x6C,0x44,0x75,0x32,
0xD8,0x47,0x14,0x62,0x39,0x31,0xBB,0xE3,0x2C,0x52,0x62,0x59,0x8B,0x4A,0xDC,0x6F,0x76,0x23,0xFC,0xA7,
0x7F,0x48,0x35,0x62,0x81,0x45,0xA2,0x6E,0x30,0x35,0xEB,0xDC,0x11,0x72,0x4C,0x6F,0xCF,0xFA,0xE5,0x32,
0x61,0x2F,0xBC,0xEF,0x1B,0x56,0x32,0x6E,0x8A,0x39,0xD9,0x59,0x31,0x15,0xC5,0xFA,0x52,0x44,0x75,0x32,
0xD9,0xBE,0xA5,0x62,0x39,0x31,0xBB,0xEB,0x16,0x52,0x62,0x59,0x88,0x7A,0x6D,0x6F,0x76,0x23,0xFC,0xBF,
0x49,0x48,0x35,0x62,0x0A,0x85,0x54,0xE7,0xA5,0x79,0x63,0x59,0x31,0xCB,0x16,0x8D,0x76,0x45,0x13,0xBB,
0xE4,0x01,0x34,0x62,0x39,0xEE,0xA1,0xAC,0x30,0x53,0x04,0xD0,0xBC,0x39,0x4D,0x6F,0x76,0xFF,0xB6,0xC7,
0x61,0x49,0x53,0xEB,0xAC,0x1B,0x33,0x6E,0x30,0xEB,0xB5,0x97,0x31,0x73,0x2A,0xE6,0xF3,0x0B,0x74,0x32,
0x61,0xF0,0xC3,0xF9,0x39,0x57,0x54,0xE7,0xBD,0x03,0x63,0x59,0x31,0xC9,0xBB,0xF4,0x76,0x45,0x13,0xBB,
0xF4,0x1B,0x34,0x62,0x39,0x64,0xF2,0x08,0xB9,0xD6,0x36,0x58,0x31,0x73,0x8B,0x2A,0xAE,0x45,0x75,0x32,
0x61,0xA2,0x3C,0xE9,0x74,0x8F,0xB1,0xAF,0x31,0xDA,0x2F,0x81,0xB2,0x0E,0x94,0x74,0x0B,0x66,0xFE,0x67,
0xB9,0xC8,0xF7,0x8C,0xE4,0x57,0x32,0xE5,0x75,0x8B,0x6D,0xEE,0xBD,0x36,0xB8,0x6F,0x76,0x45,0x46,0xF8,
0xEA,0x1C,0xED,0x04,0xB0,0xDB,0x67,0x9A,0x30,0x53,0x62,0xB2,0xFF,0xB4,0x09,0xBB,0x76,0x45,0x75,0x32,
0x8A,0x40,0xBE,0x27,0xED,0xD4,0xF2,0x6F,0xB9,0x16,0xB6,0xDA,0x4C,0xA7,0x4A,0x12,0x55,0xCE,0x38,0xE6,
0xE0,0x88,0xF9,0xD9,0x39,0x57,0xB9,0x3B,0xE4,0x5C,0xD5,0xDD,0x64,0x3B,0x4D,0x6F,0x76,0x76,0xB4,0xB9,
0x2C,0x9D,0x53,0xEB,0xBD,0x1A,0x7A,0x6F,0x30,0x53,0x89,0x97,0x5B,0x33,0xC1,0xFA,0x3E,0x44,0x75,0x32,
0x33,0xC4,0xB0,0x96,0x39,0x57,0x32,0x3E,0xBB,0x1E,0xAE,0xB1,0x1D,0x5D,0x4F,0x6F,0xB1,
//0x45,0xD0,0x00,0x00,0x00,0x00
};
void guess()
{
int i,j,k;
int cnt;
int max;
char x[32] = {0};
char c;
for (i=0;i<20;i++)
{
max = 0;
for (j=0;j<sizeof(bwns)/20;j++)
{
c = bwns[j*20+i];
if ((c >= '0') && (c <= 'z'))
{
cnt = 0;
for (k=0;k<sizeof(bwns)/20;k++)
{
if ((c ^ bwns[k*20+i]) < 2)
{
cnt++;
}
}
if (cnt > max)
{
max = cnt;
x[i] = c;
}
}
}
}
printf("%s\n",x);
}
|