好友
阅读权限10
听众
最后登录1970-1-1
|
此文件专门用来破解COCOX2D 中的LUA加密,是大神的教程包里我拿出来的,非常好用,不过好像解不来COCOS2D中的ZIP加密,下面这段伪代码就是COCOX2D游戏中解ZIP加密的
void *__fastcall getFileDataFromZip(anysdk::framework **a1, void **a2, _DWORD *a3)
{
void **v3; // r7@1
_DWORD *v4; // r4@1
void *v5; // r6@1
anysdk::framework *v6; // r0@1
const char *v7; // r1@1
anysdk::framework *v8; // r0@2
int v9; // r3@2
anysdk::framework *v10; // r5@2
void *v11; // r1@3
void *v12; // r7@8
void *v13; // r0@8
unsigned int v14; // r3@8
int v15; // r0@8
void *v16; // r1@8
bool v17; // zf@8
char v19; // [sp+10h] [bp-170h]@4
size_t size; // [sp+2Ch] [bp-154h]@8
char v21; // [sp+60h] [bp-120h]@4
int v22; // [sp+164h] [bp-1Ch]@1
v3 = a2;
v4 = a3;
v5 = 0;
v22 = _stack_chk_guard;
*a3 = 0;
v6 = *a1;
v7 = (const char *)*((_DWORD *)v6 - 3);
if ( v7 )
{
v8 = (anysdk::framework *)anysdk::framework::unzOpen(v6, v7);
v10 = v8;
if ( v8 )
{
v5 = 0;
if ( !anysdk::framework::unzLocateFile(v8, *v3, (const char *)1, v9)
&& !anysdk::framework::unzGetCurrentFileInfo(v10, &v19, &v21, 260) )
{
if ( anysdk::framework::unzOpenCurrentFile(v10, v11) )
{
v5 = 0;
}
else
{
v12 = (void *)size;
v13 = malloc(size);
v5 = v13;
v15 = anysdk::framework::unzReadCurrentFile(v10, v13, v12, v14);
v16 = (void *)size;
v17 = v15 == 0;
if ( v15 )
v17 = v15 == size;
if ( !v17 )
{
printf("the file size is wrong");
v16 = (void *)size;
}
*v4 = v16;
anysdk::framework::unzCloseCurrentFile(v10, v16);
}
}
anysdk::framework::unzClose(v10, v11);
}
else
{
v5 = 0;
}
}
if ( _stack_chk_guard != v22 )
_stack_chk_fail(_stack_chk_guard - v22);
return v5;
} |
|