|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
内存文件系统实际上是加密后的ext2文件系统,在解密后由gzip解压,再由系统mount- int __cdecl jhlfs_check(unsigned int a1, int a2)
- {
- unsigned int v2; // ecx@1
- unsigned int v3; // kr00_4@1
- char *v4; // edi@3
- unsigned int v5; // esi@3
- char v6; // al@4
- char *v7; // edi@5
- unsigned int v8; // esi@5
- char v9; // al@6
- unsigned int v10; // eax@7
- unsigned int v11; // ecx@8
- int v12; // esi@9
- char *v13; // edx@11
- unsigned int v14; // eax@12
- unsigned __int8 v15; // cf@13
- unsigned __int8 v16; // zf@13
- signed int v17; // ecx@13
- char *v18; // edi@13
- int v19; // esi@13
- int v20; // ecx@17
- unsigned __int8 v21; // cf@18
- unsigned __int8 v22; // zf@18
- signed int v23; // ecx@18
- int v24; // edi@18
- int v25; // esi@18
- char v27[128]; // [sp+Ch] [bp-158h]@1
- unsigned int v28; // [sp+8Ch] [bp-D8h]@7
- int v29; // [sp+90h] [bp-D4h]@7
- unsigned int v30; // [sp+94h] [bp-D0h]@7
- unsigned int v31; // [sp+98h] [bp-CCh]@7
- unsigned int v32; // [sp+9Ch] [bp-C8h]@7
- unsigned int v33; // [sp+A0h] [bp-C4h]@7
- char v34; // [sp+E4h] [bp-80h]@11
- int v35; // [sp+E8h] [bp-7Ch]@13
- int v36; // [sp+ECh] [bp-78h]@13
- int v37; // [sp+F0h] [bp-74h]@13
- char v38[56]; // [sp+F4h] [bp-70h]@1
- unsigned int v39; // [sp+12Ch] [bp-38h]@9
- int v40; // [sp+130h] [bp-34h]@9
- char v41; // [sp+134h] [bp-30h]@13
- int v42; // [sp+138h] [bp-2Ch]@13
- int v43; // [sp+13Ch] [bp-28h]@13
- int v44; // [sp+140h] [bp-24h]@13
- memset(v38, 0, 0x20u);
- v3 = strlen(v27);
- v2 = (v3 - 1) >> 2;
- memcpy(v38, v27, 4 * v2);
- if ( ((_BYTE)v3 - 1) & 3 )
- memcpy(&v38[4 * v2], &v27[4 * v2], ((_BYTE)v3 - 1) & 3);
- v5 = 0xC0660CFEu;
- v4 = v27;
- do
- {
- v6 = *(_BYTE *)v5++;
- *v4++ = v6;
- }
- while ( v6 );
- v8 = 0xC0660D12u;
- v7 = v27;
- xxtea_Encrypt(dword_C07114E0, 64, v38);
- do
- {
- v9 = *(_BYTE *)v8++;
- *v7++ = v9;
- }
- while ( v9 );
- xxtea_Decrypt(dword_C07114E0, 64, v38);
- v29 = 0;
- v28 = 0;
- v30 = 0x87452301u;
- v31 = 0xCFCDAB89u;
- v32 = 0x28BADCFEu;
- v33 = 0x30325476u;
- jhlfs_MD5Update((int)&v28, a2, 0x200u);
- v10 = (v28 >> 3) & 0x3F;
- if ( (signed int)v10 > 55 )
- v11 = 120 - v10;
- else
- v11 = 56 - v10;
- v39 = v28;
- v40 = v29;
- jhlfs_MD5Update((int)&v28, -1066330656, v11);
- v12 = 0;
- do
- {
- *(_DWORD *)&v38[4 * v12] = *((_BYTE *)&v28 + v12 + 24) | (*((_BYTE *)&v28 + v12 + 26) << 16) | (*((_BYTE *)&v28 + v12 + 27) << 24) | (*((_BYTE *)&v28 + v12 + 25) << 8);
- ++v12;
- }
- while ( v12 != 14 );
- jhlfs_final((int)&v30, (int)v38);
- v13 = &v34;
- do
- {
- v14 = *((_DWORD *)v13 - 20);
- *v13 = v14;
- v14 >>= 8;
- v13[1] = v14;
- v14 >>= 8;
- v13[2] = v14;
- v13[3] = BYTE1(v14);
- v13 += 4;
- }
- while ( v13 != v38 );
- memset(&v41, 0, 0x20u);
- *(_DWORD *)&v41 = *(_DWORD *)&v34;
- v42 = v35;
- v43 = v36;
- v44 = v37;
- v19 = a1 + 4;
- xxtea_Decrypt(a1 + 4, 127, &v41);
- v17 = 16;
- v18 = &v34;
- do
- {
- if ( !v17 )
- break;
- v15 = *(_BYTE *)v19 < (unsigned __int8)*v18;
- v16 = *(_BYTE *)v19++ == *v18++;
- --v17;
- }
- while ( v16 );
- v20 = -1;
- if ( !(v15 | v16) == v15 )
- {
- v23 = 492;
- v21 = a1 >= 0xFFFFFFEC;
- v22 = a1 == -20;
- v25 = a1 + 20;
- v24 = a2;
- do
- {
- if ( !v23 )
- break;
- v21 = *(_BYTE *)v25 < *(_BYTE *)v24;
- v22 = *(_BYTE *)v25++ == *(_BYTE *)v24++;
- --v23;
- }
- while ( v22 );
- v20 = (unsigned int)(char)(!(v21 | v22) - v21) >= 1 ? 0xFFFFFFFE : 0;
- }
- return v20;
- }
复制代码 |
|