-
-
[旧帖]
看看这个是不是加密或者是解密封包的程序(伪编码)?
0.00雪花
-
发表于:
2010-5-10 10:20
3172
-
[旧帖] 看看这个是不是加密或者是解密封包的程序(伪编码)?
0.00雪花
用IDA反汇编后,得出这些我认为有可能是解密加密部分的
第一段已经有说读取字符长度
int __usercall sub_401334<eax>(int a1<ebx>)
{
int result; // eax@2
int v2; // ecx@3
char v3; // al@4
int v4; // eax@6
int v5; // eax@7
if ( a1 )
{
v2 = a1;
if ( !(a1 & 3) )
goto LABEL_6;
do
{
v3 = *(_BYTE *)v2++;
if ( !v3 )
return v2 - 1 - a1;
}
while ( v2 & 3 );
while ( 1 )
{
do
{
LABEL_6:
v4 = (*(_DWORD *)v2 + 2130640639) ^ ~*(_DWORD *)v2;
v2 += 4;
}
while ( !(v4 & 0x81010100) );
v5 = *(_DWORD *)(v2 - 4);
if ( !(_BYTE)v5 )
break;
if ( !BYTE1(v5) )
return v2 - 3 - a1;
if ( !(v5 & 0xFF0000) )
return v2 - 2 - a1;
if ( !(v5 & 0xFF000000) )
return v2 - 1 - a1;
}
result = v2 - 4 - a1;
}
else
{
result = 0;
}
return result;
}
这段不太清楚
void *__stdcall sub_40139F(void **a1)
{
void *v1; // eax@1
int v2; // eax@2
unsigned int v3; // ST00_4@2
const void *v4; // ST04_4@2
void *v5; // edi@5
void *v6; // esi@5
char v7; // bl@6
void *v8; // eax@14
int v9; // eax@15
unsigned int v10; // ST00_4@15
const void *v11; // ST04_4@15
void *v13; // [sp-4h] [bp-8h]@3
void *v14; // [sp-4h] [bp-8h]@16
void *v15; // [sp+0h] [bp-4h]@5
v1 = *a1;
if ( *a1 )
{
v2 = sub_401334(*a1);
v1 = (void *)sub_421317(v2 + 1);
memcpy(v1, v4, v3);
}
v13 = v1;
v15 = v13;
v6 = *a1;
v5 = v13;
if ( *a1 )
{
while ( 1 )
{
v7 = *(_BYTE *)v6;
if ( !*(_BYTE *)v6 )
break;
if ( v7 == 32 )
{
LABEL_10:
v6 = (char *)v6 + 1;
}
else
{
if ( v7 != -95 )
{
*(_BYTE *)v5 = v7;
v5 = (char *)v5 + 1;
goto LABEL_10;
}
if ( *(_WORD *)v6 != -24159 )
{
*(_WORD *)v5 = *(_WORD *)v6;
v5 = (char *)v5 + 2;
}
v6 = (char *)v6 + 2;
}
}
}
*(_BYTE *)v5 = 0;
v8 = v13;
if ( v13 )
{
v9 = sub_401334(v13);
v8 = (void *)sub_421317(v9 + 1);
memcpy(v8, v11, v10);
}
v14 = v8;
if ( v15 )
sub_42131D(v15);
return v14;
}
看看这个是不是加密或者是解密封包的程序(伪编码)?
如何把它转化为程序,C,C#,C++,VB都可以
成功转化程序的再加分
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!