-
-
[求助]这个IDA反编译的解密代码怎么看
-
发表于:
2014-11-13 08:52
14322
-
牛牛们,能否指点下!!!!!!!!
void *__fastcall base64_decode(const char *a1)
{
signed int v1; // r0@1
void *result; // r0@1
int v3; // r2@1
int v4; // r1@1
int v5; // r5@1
signed int v6; // r4@1
int v7; // r12@2
int v8; // r6@3
int v9; // r1@3
char *v10; // r6@4
int v11; // r1@4
int v12; // r3@9
unsigned __int8 v13; // ST04_1@10
unsigned __int8 v14; // ST00_1@10
signed int v15; // [sp+Ch] [bp-2Ch]@1
const char *v16; // [sp+10h] [bp-28h]@1
char v17; // [sp+1Ch] [bp-1Ch]@3
unsigned __int8 v18; // [sp+1Dh] [bp-1Bh]@10
unsigned __int8 v19; // [sp+1Eh] [bp-1Ah]@10
char v20; // [sp+1Fh] [bp-19h]@10
v16 = a1;
v1 = strlen(a1);
v15 = v1;
result = malloc(3 * (v1 / 4) + 1);
v3 = 0;
v4 = result;
v5 = 0;
v6 = 0;
while ( 1 )
{
v12 = 0;
if ( v6 >= v15 )
break;
v7 = v4;
do
{
v8 = *(&v16[v6] + v12);
v9 = *(&v16[v6] + v12) - 43;
*(&v17 + v12) = v8;
if ( v9 <= 0x4F && (v10 = &aRstuvwxyzAbcde[v8 - 43], v11 = *v10, *v10) && v11 != 36 && v11 != 61 )
*(&v17 + v12) = v11 - 62;
else
++v3;
++v12;
}
while ( v12 != 4 );
v5 += 3;
v13 = v18;
v6 += 4;
*v7 = (v18 >> 4) | 4 * v17;
v14 = v19;
*(v7 + 1) = (v19 >> 2) | 16 * v13;
*(v7 + 2) = (v14 << 6) | v20;
v4 = v7 + 3;
}
*(result + v5 - v3) = 0;
return result;
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)