[Asm] 纯文本查看 复制代码 char* charmap = "CbcdefghGjkl+mYopLr6tOvwxyzA/BaD0FiHIJKqMNuPQRSTUV7XnZ12345sW98E";
void *__cdecl date(int a1, void *Name, int len)
{
unsigned int p;
int k;
int i;
k = (*(DWORD *)a1 >> 3) & 0x3F;
p = 64 - k;
*(DWORD *)a1 += 8 * len;
if (*(DWORD *)a1 < (unsigned int)(8 * len))
++*(DWORD *)(a1 + 4);
*(DWORD *)(a1 + 4) += (unsigned int)len >> 29;
if (len < p)
{
i = 0;
}
else
{
memcpy((void *)(k + 16 + a1 + 8), Name, p);
Transform((int *)(a1 + 8), a1 + 24);
for (i = 64 - k; len >= (unsigned int)(i + 64); i += 64)
Transform((int *)(a1 + 8), (int)Name + i);
k = 0;
}
return memcpy((void *)(k + 16 + a1 + 8), (char *)Name + i, len - i);
}
unsigned int __cdecl Encode(int a1, int a2, unsigned int a3)
{
unsigned int result; // eax
unsigned int i; // [esp+8h] [ebp-8h]
int v5; // [esp+Ch] [ebp-4h]
v5 = 0;
for (i = 0; ; i += 4)
{
result = i;
if (i >= a3)
break;
*(BYTE *)(a1 + i) = *(DWORD *)(4 * v5 + a2);
*(BYTE *)(i + 1 + a1) = *(WORD *)(4 * v5 + a2) >> 8;
*(BYTE *)(i + 2 + a1) = *(DWORD *)(4 * v5 + a2) >> 16;
*(BYTE *)(i + 3 + a1) = *(DWORD *)(4 * v5++ + a2) >> 24;
}
return result;
}
unsigned int __cdecl Final(DWORD *a1, int a2)
{
int v2;
char v4;
int v5;
unsigned int v6;
v6 = 0;
v5 = 0;
v6 = (*a1 >> 3) & 0x3F;
if (v6 > 0x37)
v2 = 120 - v6;
else
v2 = 56 - v6;
v5 = v2;
Encode((int)&v4, (int)a1, 8u);
Update((int)a1, &PADDING, v5);
Update((int)a1, &v4, 8);
return Encode(a2, (int)(a1 + 2), 0x10u);
}
void 初始化(Name)
{
pi = malloc(0x10u);
*j = 0;
j[1] = 0;
j[2] = 1732584193;
j[3] = -271733879;
j[4] = -1732584194;
result = a1;
a1[5] = 271733878;
NameLen = strlen(Name)
date(&j,Name,NameLen)
Final(&j, pi);
}
if(NameLen> 7 && NameLen <= 30)
{
temp = (char *)malloc(0x20u);
for(int i = null, i <= 5 ; i++)
{
LOC = 4;
LOC [i+1*4] = getLoc(temp);
{
for (j = 0; j <= 15; ++j)
key = (char *)malloc(0x11u);
memset(key, 0, 0x11u);
key[j] = charmap[abs(
(signed int)(*(char *)(LOC[6] + j) ^ ((*(char *)(LOC[3] + j) & (*(char *)(LOC[2] + j) | *(char *)(LOC[1] + j) ^ 0xFFFFF123))
- *(char *)(LOC[4] + j))
* *(char *)(LOC[5] + j))
% 64)];
}
}
}
}
全是手打 电脑没装vs |