Page 1 of 4 123 ... LastLast
Results 1 to 10 of 34
  1. #1
    ADACH
    ADACH is offline
    Member-in-training ADACH's Avatar
    Join Date
    2010 May
    Posts
    170
    Thanks
    25
    Thanked 168 Times in 46 Posts
    Rep Power
    8

    encrypted .CSV decryptor

    Как всем известно некоторое время назад на русском сервере стали шифровать .csv файлы.
    У меня дошли руки до поверхностного анализа данного изменения.

    Расшифровка вызывается внутри ф-и VFile::GetBuffer(int this):

    Внутри происходит инициализация, и расшифровка блоками по 0x200 байт (последний блок может быть меньше)
    Code:
    char __cdecl decryptBuffer(const void *data, int len, char *decryptionKey)
    {
      unsigned int keylen; // [email protected]
      int trash_1; // [email protected]
      int trash_2; // [email protected]
      int trash_3; // [email protected]
      int v7; // [email protected]
      const void *pDataPtr2; // [sp+Ch] [bp-86Ch]@1
      char Src; // [sp+10h] [bp-868h]@1
      char v11; // [sp+11h] [bp-867h]@1
      __int16 trash_6; // [sp+20Dh] [bp-66Bh]@1
      char trash_7; // [sp+20Fh] [bp-669h]@1
      _BYTE tmpBlock[512]; // [sp+210h] [bp-668h]@1
      int decryptionKey_dup; // [sp+410h] [bp-468h]@1
      int trash_0; // [sp+414h] [bp-464h]@3
      int trash_5; // [sp+418h] [bp-460h]@3
      int trash_4; // [sp+41Ch] [bp-45Ch]@3
      int v19; // [sp+646h] [bp-232h]@8
      int trash_8; // [sp+874h] [bp-4h]@1
    
      trash_8 = dword_1001D070;
      Src = 0;
      memset(&v11, 0, 0x1FCu);
      trash_6 = 0;
      trash_7 = 0;
      tmpBlock[0] = 0;
      memset(&tmpBlock[1], 0, 0x1FCu);
      *(_WORD *)&tmpBlock[509] = 0;
      tmpBlock[511] = 0;
      pDataPtr2 = data;
      memset(&decryptionKey_dup, 0, 0x45Cu);
      keylen = strlen(decryptionKey);
      if ( keylen >= 0x10 )
      {
        trash_1 = *((_DWORD *)decryptionKey + 1);
        trash_2 = *((_DWORD *)decryptionKey + 2);
        decryptionKey_dup = *(_DWORD *)decryptionKey;
        trash_3 = *((_DWORD *)decryptionKey + 3);
        trash_0 = trash_1;
        trash_5 = trash_2;
        trash_4 = trash_3;
      }
      else
      {
        memcpy(&decryptionKey_dup, decryptionKey, keylen);
      }
      if ( !sub_1000AB70(&decryptionKey_dup) )
      {
        while ( 1 )
        {
          v7 = data - pDataPtr2 + len;
          if ( (unsigned int)v7 < 0x200 )
          {
            if ( !v7 )
              return 1;
          }
          else
          {
            v7 = 0x200u;
          }
          memcpy(&Src, pDataPtr2, v7);
          if ( decryptBlock(&Src, v7, (char *)&v19, tmpBlock) )
            return 0;
          memcpy((void *)pDataPtr2, tmpBlock, v7);
          pDataPtr2 = (char *)pDataPtr2 + v7;
        }
      }
      return 0;
    }[/syntax]
    
    Внутри еще одна обертка...
    [syntax=c]unsigned int __stdcall decryptBlock(char *srcBlock, SIZE_T blockSize, char *unknownPtr, char *resultBlock)
    {
      unsigned int result; // [email protected]
    
      if ( srcBlock && blockSize && unknownPtr && resultBlock )
      {
        internalDecryptBlock((int *)unknownPtr, resultBlock, srcBlock, blockSize, (char *)&dword_10016900);
        result = 0;
      }
      else
      {
        result = 0x1B004u;
      }
      return result;
    }
    dword_10016900 data:


    и еще одна... в которой код бьется на блоки по 16 байт и передается ф-и расшифровки:
    Code:
    SIZE_T __cdecl internalDecryptBlock(int *unknownPtr, void *resultBlock, void *srcBlock, SIZE_T pBlockSize, char *pHashTable)
    {
      SIZE_T result; // [email protected]
      SIZE_T notDecryptedBytes; // [sp+0h] [bp-28h]@1
      int i; // [sp+4h] [bp-24h]@5
      char v8; // [sp+8h] [bp-20h]@3
      char tmpBuff[16]; // [sp+18h] [bp-10h]@3
    
      result = pBlockSize;
      notDecryptedBytes = pBlockSize - 16;
      while ( (signed int)notDecryptedBytes >= 0 )
      {
        memcpy(tmpBuff, srcBlock, 16u);
        sub_10010AA7((int)tmpBuff, (int)&v8, (int)unknownPtr);
        memcpy(resultBlock, &v8, 0x10u);
        notDecryptedBytes -= 16;
        result = (SIZE_T)((char *)srcBlock + 16);
        srcBlock = (char *)srcBlock + 16;
        resultBlock = (char *)resultBlock + 16;
      }
      if ( notDecryptedBytes != -16 )
      {
        memcpy(tmpBuff, srcBlock, notDecryptedBytes + 16);
        for ( i = 0; i < (signed int)(notDecryptedBytes + 16); ++i )
          tmpBuff[i] ^= pHashTable[i];
        result = (SIZE_T)memcpy(resultBlock, tmpBuff, notDecryptedBytes + 16);
      }
      return result;
    }
    Собственно ф-я расшифровки:
    Code:
    signed __int16 __cdecl sub_10010AA7(int a1, int a2, int a3)
    {
      int v4; // [email protected]
      int v5; // [email protected]
      int v6; // [email protected]
      int v7; // [email protected]
      int v8; // [email protected]
      int v9; // [email protected]
      int v10; // [email protected]
      int v11; // [email protected]
      int v12; // [email protected]
      int v13; // [email protected]
      int v14; // [email protected]
      int v15; // [email protected]
      int v16; // [email protected]
      int v17; // [email protected]
      int v18; // [email protected]
      int v19; // [email protected]
      int v20; // [email protected]
      int v21; // [email protected]
      int v22; // [email protected]
      int v23; // [email protected]
      int v24; // [email protected]
      int v25; // [email protected]
      int v26; // [email protected]
      int v27; // [email protected]
      int v28; // [email protected]
      int v29; // [email protected]
      int v30; // [email protected]
      int v31; // [email protected]
      int v32; // [email protected]
      int v33; // [email protected]
      int v34; // [email protected]
      int v35; // [email protected]
      int v36; // [email protected]
      int v37; // [email protected]
      int v38; // [email protected]
      int v39; // [email protected]
      int v40; // [email protected]
      int v41; // [email protected]
      int v42; // [email protected]
      int v43; // [email protected]
      int v44; // [email protected]
      int v45; // [email protected]
      int v46; // [email protected]
      int v47; // [email protected]
      int v48; // [sp+0h] [bp-28h]@5
      int v49; // [sp+14h] [bp-14h]@5
      int v50; // [sp+18h] [bp-10h]@5
      int v51; // [sp+1Ch] [bp-Ch]@5
      int v52; // [sp+20h] [bp-8h]@5
      int v53; // [sp+24h] [bp-4h]@1
    
      v53 = a3 + 16 * *(_DWORD *)(a3 + 516) + 256;
      if ( !(*(_BYTE *)(a3 + 520) & 2) )
        return 0;
      if ( !(*(_BYTE *)(a3 + 520) & 2) )
      {
        sub_1000B700(a3);
        *(_BYTE *)(a3 + 520) ^= 3u;
      }
      v49 = *(_DWORD *)v53 ^ *(_DWORD *)a1;
      v50 = *(_DWORD *)(v53 + 4) ^ *(_DWORD *)(a1 + 4);
      v51 = *(_DWORD *)(v53 + 8) ^ *(_DWORD *)(a1 + 8);
      v52 = *(_DWORD *)(v53 + 12) ^ *(_DWORD *)(a1 + 12);
      v48 = *(_DWORD *)(a3 + 516);
      if ( v48 != 10 )
      {
        if ( v48 != 12 )
        {
          if ( v48 != 14 )
            goto LABEL_12;
          v4 = dword_100195B0[(unsigned __int8)v50] ^ dword_100191B0[(unsigned __int16)((_WORD)v51 >> 8)] ^ dword_10018DB0[((unsigned int)v52 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v49 >> 24] ^ *(_DWORD *)(a3 + 464);
          v5 = dword_100195B0[(unsigned __int8)v51] ^ dword_100191B0[(unsigned __int16)((_WORD)v52 >> 8)] ^ dword_10018DB0[((unsigned int)v49 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v50 >> 24] ^ *(_DWORD *)(a3 + 468);
          v6 = dword_100195B0[(unsigned __int8)v52] ^ dword_100191B0[(unsigned __int16)((_WORD)v49 >> 8)] ^ dword_10018DB0[((unsigned int)v50 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v51 >> 24] ^ *(_DWORD *)(a3 + 472);
          v7 = dword_100195B0[(unsigned __int8)v49] ^ dword_100191B0[(unsigned __int16)((_WORD)v50 >> 8)] ^ dword_10018DB0[((unsigned int)v51 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v52 >> 24] ^ *(_DWORD *)(a3 + 476);
          v49 = dword_100195B0[(unsigned __int8)v5] ^ dword_100191B0[(unsigned __int16)((_WORD)v6 >> 8)] ^ dword_10018DB0[((unsigned int)v7 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v4 >> 24] ^ *(_DWORD *)(a3 + 448);
          v50 = dword_100195B0[(unsigned __int8)v6] ^ dword_100191B0[(unsigned __int16)((_WORD)v7 >> 8)] ^ dword_10018DB0[((unsigned int)v4 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v5 >> 24] ^ *(_DWORD *)(a3 + 452);
          v51 = dword_100195B0[(unsigned __int8)v7] ^ dword_100191B0[(unsigned __int16)((_WORD)v4 >> 8)] ^ dword_10018DB0[((unsigned int)v5 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v6 >> 24] ^ *(_DWORD *)(a3 + 456);
          v52 = dword_100195B0[(unsigned __int8)v4] ^ dword_100191B0[(unsigned __int16)((_WORD)v5 >> 8)] ^ dword_10018DB0[((unsigned int)v6 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v7 >> 24] ^ *(_DWORD *)(a3 + 460);
        }
        v8 = dword_100195B0[(unsigned __int8)v50] ^ dword_100191B0[(unsigned __int16)((_WORD)v51 >> 8)] ^ dword_10018DB0[((unsigned int)v52 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v49 >> 24] ^ *(_DWORD *)(a3 + 432);
        v9 = dword_100195B0[(unsigned __int8)v51] ^ dword_100191B0[(unsigned __int16)((_WORD)v52 >> 8)] ^ dword_10018DB0[((unsigned int)v49 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v50 >> 24] ^ *(_DWORD *)(a3 + 436);
        v10 = dword_100195B0[(unsigned __int8)v52] ^ dword_100191B0[(unsigned __int16)((_WORD)v49 >> 8)] ^ dword_10018DB0[((unsigned int)v50 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v51 >> 24] ^ *(_DWORD *)(a3 + 440);
        v11 = dword_100195B0[(unsigned __int8)v49] ^ dword_100191B0[(unsigned __int16)((_WORD)v50 >> 8)] ^ dword_10018DB0[((unsigned int)v51 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v52 >> 24] ^ *(_DWORD *)(a3 + 444);
        v49 = dword_100195B0[(unsigned __int8)v9] ^ dword_100191B0[(unsigned __int16)((_WORD)v10 >> 8)] ^ dword_10018DB0[((unsigned int)v11 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v8 >> 24] ^ *(_DWORD *)(a3 + 416);
        v50 = dword_100195B0[(unsigned __int8)v10] ^ dword_100191B0[(unsigned __int16)((_WORD)v11 >> 8)] ^ dword_10018DB0[((unsigned int)v8 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v9 >> 24] ^ *(_DWORD *)(a3 + 420);
        v51 = dword_100195B0[(unsigned __int8)v11] ^ dword_100191B0[(unsigned __int16)((_WORD)v8 >> 8)] ^ dword_10018DB0[((unsigned int)v9 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v10 >> 24] ^ *(_DWORD *)(a3 + 424);
        v52 = dword_100195B0[(unsigned __int8)v8] ^ dword_100191B0[(unsigned __int16)((_WORD)v9 >> 8)] ^ dword_10018DB0[((unsigned int)v10 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v11 >> 24] ^ *(_DWORD *)(a3 + 428);
      }
      v12 = dword_100195B0[(unsigned __int8)v50] ^ dword_100191B0[(unsigned __int16)((_WORD)v51 >> 8)] ^ dword_10018DB0[((unsigned int)v52 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v49 >> 24] ^ *(_DWORD *)(a3 + 400);
      v13 = dword_100195B0[(unsigned __int8)v51] ^ dword_100191B0[(unsigned __int16)((_WORD)v52 >> 8)] ^ dword_10018DB0[((unsigned int)v49 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v50 >> 24] ^ *(_DWORD *)(a3 + 404);
      v14 = dword_100195B0[(unsigned __int8)v52] ^ dword_100191B0[(unsigned __int16)((_WORD)v49 >> 8)] ^ dword_10018DB0[((unsigned int)v50 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v51 >> 24] ^ *(_DWORD *)(a3 + 408);
      v15 = dword_100195B0[(unsigned __int8)v49] ^ dword_100191B0[(unsigned __int16)((_WORD)v50 >> 8)] ^ dword_10018DB0[((unsigned int)v51 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v52 >> 24] ^ *(_DWORD *)(a3 + 412);
      v16 = dword_100195B0[(unsigned __int8)v13] ^ dword_100191B0[(unsigned __int16)((_WORD)v14 >> 8)] ^ dword_10018DB0[((unsigned int)v15 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v12 >> 24] ^ *(_DWORD *)(a3 + 384);
      v17 = dword_100195B0[(unsigned __int8)v14] ^ dword_100191B0[(unsigned __int16)((_WORD)v15 >> 8)] ^ dword_10018DB0[((unsigned int)v12 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v13 >> 24] ^ *(_DWORD *)(a3 + 388);
      v18 = dword_100195B0[(unsigned __int8)v15] ^ dword_100191B0[(unsigned __int16)((_WORD)v12 >> 8)] ^ dword_10018DB0[((unsigned int)v13 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v14 >> 24] ^ *(_DWORD *)(a3 + 392);
      v19 = dword_100195B0[(unsigned __int8)v12] ^ dword_100191B0[(unsigned __int16)((_WORD)v13 >> 8)] ^ dword_10018DB0[((unsigned int)v14 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v15 >> 24] ^ *(_DWORD *)(a3 + 396);
      v20 = dword_100195B0[(unsigned __int8)v17] ^ dword_100191B0[(unsigned __int16)((_WORD)v18 >> 8)] ^ dword_10018DB0[((unsigned int)v19 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v16 >> 24] ^ *(_DWORD *)(a3 + 368);
      v21 = dword_100195B0[(unsigned __int8)v18] ^ dword_100191B0[(unsigned __int16)((_WORD)v19 >> 8)] ^ dword_10018DB0[((unsigned int)v16 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v17 >> 24] ^ *(_DWORD *)(a3 + 372);
      v22 = dword_100195B0[(unsigned __int8)v19] ^ dword_100191B0[(unsigned __int16)((_WORD)v16 >> 8)] ^ dword_10018DB0[((unsigned int)v17 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v18 >> 24] ^ *(_DWORD *)(a3 + 376);
      v23 = dword_100195B0[(unsigned __int8)v16] ^ dword_100191B0[(unsigned __int16)((_WORD)v17 >> 8)] ^ dword_10018DB0[((unsigned int)v18 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v19 >> 24] ^ *(_DWORD *)(a3 + 380);
      v24 = dword_100195B0[(unsigned __int8)v21] ^ dword_100191B0[(unsigned __int16)((_WORD)v22 >> 8)] ^ dword_10018DB0[((unsigned int)v23 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v20 >> 24] ^ *(_DWORD *)(a3 + 352);
      v25 = dword_100195B0[(unsigned __int8)v22] ^ dword_100191B0[(unsigned __int16)((_WORD)v23 >> 8)] ^ dword_10018DB0[((unsigned int)v20 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v21 >> 24] ^ *(_DWORD *)(a3 + 356);
      v26 = dword_100195B0[(unsigned __int8)v23] ^ dword_100191B0[(unsigned __int16)((_WORD)v20 >> 8)] ^ dword_10018DB0[((unsigned int)v21 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v22 >> 24] ^ *(_DWORD *)(a3 + 360);
      v27 = dword_100195B0[(unsigned __int8)v20] ^ dword_100191B0[(unsigned __int16)((_WORD)v21 >> 8)] ^ dword_10018DB0[((unsigned int)v22 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v23 >> 24] ^ *(_DWORD *)(a3 + 364);
      v28 = dword_100195B0[(unsigned __int8)v25] ^ dword_100191B0[(unsigned __int16)((_WORD)v26 >> 8)] ^ dword_10018DB0[((unsigned int)v27 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v24 >> 24] ^ *(_DWORD *)(a3 + 336);
      v29 = dword_100195B0[(unsigned __int8)v26] ^ dword_100191B0[(unsigned __int16)((_WORD)v27 >> 8)] ^ dword_10018DB0[((unsigned int)v24 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v25 >> 24] ^ *(_DWORD *)(a3 + 340);
      v30 = dword_100195B0[(unsigned __int8)v27] ^ dword_100191B0[(unsigned __int16)((_WORD)v24 >> 8)] ^ dword_10018DB0[((unsigned int)v25 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v26 >> 24] ^ *(_DWORD *)(a3 + 344);
      v31 = dword_100195B0[(unsigned __int8)v24] ^ dword_100191B0[(unsigned __int16)((_WORD)v25 >> 8)] ^ dword_10018DB0[((unsigned int)v26 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v27 >> 24] ^ *(_DWORD *)(a3 + 348);
      v32 = dword_100195B0[(unsigned __int8)v29] ^ dword_100191B0[(unsigned __int16)((_WORD)v30 >> 8)] ^ dword_10018DB0[((unsigned int)v31 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v28 >> 24] ^ *(_DWORD *)(a3 + 320);
      v33 = dword_100195B0[(unsigned __int8)v30] ^ dword_100191B0[(unsigned __int16)((_WORD)v31 >> 8)] ^ dword_10018DB0[((unsigned int)v28 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v29 >> 24] ^ *(_DWORD *)(a3 + 324);
      v34 = dword_100195B0[(unsigned __int8)v31] ^ dword_100191B0[(unsigned __int16)((_WORD)v28 >> 8)] ^ dword_10018DB0[((unsigned int)v29 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v30 >> 24] ^ *(_DWORD *)(a3 + 328);
      v35 = dword_100195B0[(unsigned __int8)v28] ^ dword_100191B0[(unsigned __int16)((_WORD)v29 >> 8)] ^ dword_10018DB0[((unsigned int)v30 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v31 >> 24] ^ *(_DWORD *)(a3 + 332);
      v36 = dword_100195B0[(unsigned __int8)v33] ^ dword_100191B0[(unsigned __int16)((_WORD)v34 >> 8)] ^ dword_10018DB0[((unsigned int)v35 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v32 >> 24] ^ *(_DWORD *)(a3 + 304);
      v37 = dword_100195B0[(unsigned __int8)v34] ^ dword_100191B0[(unsigned __int16)((_WORD)v35 >> 8)] ^ dword_10018DB0[((unsigned int)v32 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v33 >> 24] ^ *(_DWORD *)(a3 + 308);
      v38 = dword_100195B0[(unsigned __int8)v35] ^ dword_100191B0[(unsigned __int16)((_WORD)v32 >> 8)] ^ dword_10018DB0[((unsigned int)v33 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v34 >> 24] ^ *(_DWORD *)(a3 + 312);
      v39 = dword_100195B0[(unsigned __int8)v32] ^ dword_100191B0[(unsigned __int16)((_WORD)v33 >> 8)] ^ dword_10018DB0[((unsigned int)v34 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v35 >> 24] ^ *(_DWORD *)(a3 + 316);
      v40 = dword_100195B0[(unsigned __int8)v37] ^ dword_100191B0[(unsigned __int16)((_WORD)v38 >> 8)] ^ dword_10018DB0[((unsigned int)v39 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v36 >> 24] ^ *(_DWORD *)(a3 + 288);
      v41 = dword_100195B0[(unsigned __int8)v38] ^ dword_100191B0[(unsigned __int16)((_WORD)v39 >> 8)] ^ dword_10018DB0[((unsigned int)v36 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v37 >> 24] ^ *(_DWORD *)(a3 + 292);
      v42 = dword_100195B0[(unsigned __int8)v39] ^ dword_100191B0[(unsigned __int16)((_WORD)v36 >> 8)] ^ dword_10018DB0[((unsigned int)v37 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v38 >> 24] ^ *(_DWORD *)(a3 + 296);
      v43 = dword_100195B0[(unsigned __int8)v36] ^ dword_100191B0[(unsigned __int16)((_WORD)v37 >> 8)] ^ dword_10018DB0[((unsigned int)v38 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v39 >> 24] ^ *(_DWORD *)(a3 + 300);
      v44 = dword_100195B0[(unsigned __int8)v41] ^ dword_100191B0[(unsigned __int16)((_WORD)v42 >> 8)] ^ dword_10018DB0[((unsigned int)v43 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v40 >> 24] ^ *(_DWORD *)(a3 + 272);
      v45 = dword_100195B0[(unsigned __int8)v42] ^ dword_100191B0[(unsigned __int16)((_WORD)v43 >> 8)] ^ dword_10018DB0[((unsigned int)v40 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v41 >> 24] ^ *(_DWORD *)(a3 + 276);
      v46 = dword_100195B0[(unsigned __int8)v43] ^ dword_100191B0[(unsigned __int16)((_WORD)v40 >> 8)] ^ dword_10018DB0[((unsigned int)v41 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v42 >> 24] ^ *(_DWORD *)(a3 + 280);
      v47 = dword_100195B0[(unsigned __int8)v40] ^ dword_100191B0[(unsigned __int16)((_WORD)v41 >> 8)] ^ dword_10018DB0[((unsigned int)v42 >> 16) & 0xFF] ^ dword_100189B0[(unsigned int)v43 >> 24] ^ *(_DWORD *)(a3 + 284);
      v49 = dword_1001A5B0[(unsigned __int8)v45] ^ dword_1001A1B0[(unsigned __int16)((_WORD)v46 >> 8)] ^ dword_10019DB0[((unsigned int)v47 >> 16) & 0xFF] ^ dword_100199B0[(unsigned int)v44 >> 24] ^ *(_DWORD *)(a3 + 256);
      v50 = dword_1001A5B0[(unsigned __int8)v46] ^ dword_1001A1B0[(unsigned __int16)((_WORD)v47 >> 8)] ^ dword_10019DB0[((unsigned int)v44 >> 16) & 0xFF] ^ dword_100199B0[(unsigned int)v45 >> 24] ^ *(_DWORD *)(a3 + 260);
      v51 = dword_1001A5B0[(unsigned __int8)v47] ^ dword_1001A1B0[(unsigned __int16)((_WORD)v44 >> 8)] ^ dword_10019DB0[((unsigned int)v45 >> 16) & 0xFF] ^ dword_100199B0[(unsigned int)v46 >> 24] ^ *(_DWORD *)(a3 + 264);
      v52 = dword_1001A5B0[(unsigned __int8)v44] ^ dword_1001A1B0[(unsigned __int16)((_WORD)v45 >> 8)] ^ dword_10019DB0[((unsigned int)v46 >> 16) & 0xFF] ^ dword_100199B0[(unsigned int)v47 >> 24] ^ *(_DWORD *)(a3 + 268);
    LABEL_12:
      *(_DWORD *)a2 = v49;
      *(_DWORD *)(a2 + 4) = v50;
      *(_DWORD *)(a2 + 8) = v51;
      *(_DWORD *)(a2 + 12) = v52;
      return 1;
    }
    Из-за недостатка времени алгоритм полностью не разбирал, а ограничился вызовом ф-и decryptBuffer (что для POC вполне допустимо).
    P.S. Всем кто знает какой алгоритм применялся просьба сообщить мне тут или в личку.

    Please register or login to download attachments.


  2. The Following 8 Users Say Thank You to ADACH For This Useful Post:


  3. #2
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,221
    Thanks
    211
    Thanked 2,224 Times in 289 Posts
    Rep Power
    10

    re: encrypted .CSV decryptor

    Опередил меня уважаемый камрад ADACH... спасибо за готовый декриптор, а то я так и не набрался сил доводить это дело до конца

    Алгоритм подобен шифрованию пакетов, там применяется схожая последовательность определения длины сообщения, выборка из таблиц определенных значений для декодирования и непосредственно расшифровка.

    003F3229    8BCE            MOV ECX,ESI
    003F322B E8 583E0000 CALL <JMP.&[email protected]@@ ; Jump to [email protected]@@QAEPBDXZ
    003F3230 50 PUSH EAX
    003F3231 8BCF MOV ECX,EDI


    Для поклонников паскаля (дельфи), функция расшифровки (конвертирование в полу ручном режиме, т.е. возможны ошибки)
    //__int16 cdecl sub_10010AA7(integer a1, integer a2, integer a3)
    function decrypt(a1,a2,a3: dword): dword;
    var
    v4 : dword; // [sp+24h] [bp-4h]@1
    v5 : dword; // [sp+14h] [bp-14h]@5
    v6 : dword; // [sp+18h] [bp-10h]@5
    v7 : dword; // [sp+1Ch] [bp-Ch]@5
    v8 : dword; // [sp+20h] [bp-8h]@5
    v9 : dword; // [sp+0h] [bp-28h]@5
    v10 : dword; // [sp+4h] [bp-24h]@9
    v11 : dword; // [sp+8h] [bp-20h]@9
    v12 : dword; // [sp+Ch] [bp-1Ch]@9
    v13 : dword; // [sp+10h] [bp-18h]@9
    {
    decryptTable1 - dword_100195B0
    decryptTable2 - dword_100191B0
    decryptTable3 - dword_10018DB0
    decryptTable4 - dword_100189B0
    }
    begin
    v4 := a3 + 16 * (a3 + 516) + 256;
    if ( not ( (a3 + 520) and 2) ) then
    result:= 0;
    if ( not ( (a3 + 520) and 2) ) then
    begin
    //sub_1000B700(a3);
    subDecrypt(a3);
    (a3 + 520):= mod xor 3u;
    end;
    v5 := v4 xor a1;
    v6 := (v4 + 4) xor (a1 + 4);
    v7 := (v4 + 8) xor (a1 + 8);
    v8 := (v4 + 12) xor (a1 + 12);
    v4 := a3 + 400;
    v9 := a3 + 516;
    if ( v9 <> 10 ) then
    begin
    if ( v9 <> 12 ) then
    begin
    if ( v9 <> 14 ) then
    goto LABEL_12; // doesn't crypted

    v10 := decryptTable1[v6] xor
    decryptTable2[(v7 shr 8)] xor
    decryptTable3[(v8 shr 16) and $FF]
    xor decryptTable4[v5 shr 24] xor (v4 + 64);

    v11 := decryptTable1[v7] xor
    decryptTable2[(v8 shr 8)] xor
    decryptTable3[(v5 shr 16) and $FF]
    xor decryptTable4[v6 shr 24] xor (v4 + 68);

    v12 := decryptTable1[v8] xor
    decryptTable2[(v5 shr 8)] xor
    decryptTable3[(v6 shr 16) and $FF]
    xor decryptTable4[v7 shr 24] xor (v4 + 72);

    v13 := decryptTable1[v5] xor
    decryptTable2[(v6 shr 8)] xor
    decryptTable3[(v7 shr 16) and $FF]
    xor decryptTable4[v8 shr 24] xor (v4 + 76);

    v5 := decryptTable1[v11] xor
    decryptTable2[(v12 shr 8)] xor
    decryptTable3[(v13 shr 16) and $FF] xor
    decryptTable4[v10 shr 24] xor (v4 + 48);

    v6 := decryptTable1[v12] xor
    decryptTable2[(v13 shr 8)] xor
    decryptTable3[(v10 shr 16) and $FF] xor
    decryptTable4[v11 shr 24] xor (v4 + 52);

    v7 := decryptTable1[v13] xor
    decryptTable2[(v10 shr 8)] xor
    decryptTable3[(v11 shr 16) and $FF] xor
    decryptTable4[v12 shr 24] xor (v4 + 56);

    v8 := decryptTable1[v10] xor
    decryptTable2[(v11 shr 8)] xor
    decryptTable3[(v12 shr 16) and $FF] xor
    decryptTable4[v13 shr 24] xor (v4 + 60);
    end;

    v10 := decryptTable1[v6] xor
    decryptTable2[(v7 shr 8)] xor
    decryptTable3[(v8 shr 16) and $FF] xor
    decryptTable4[v5 shr 24] xor (v4 + 32);

    v11 := decryptTable1[v7] xor
    decryptTable2[(v8 shr 8)] xor
    decryptTable3[(v5 shr 16) and $FF] xor
    decryptTable4[v6 shr 24] xor (v4 + 36);

    v12 := decryptTable1[v8] xor
    decryptTable2[(v5 shr 8)] xor
    decryptTable3[(v6 shr 16) and $FF] xor
    decryptTable4[v7 shr 24] xor (v4 + 40);

    v13 := decryptTable1[v5] xor
    decryptTable2[(v6 shr 8)] xor
    decryptTable3[(v7 shr 16) and $FF] xor
    decryptTable4[v8 shr 24] xor (v4 + 44);

    v5 := decryptTable1[v11] xor
    decryptTable2[(v12 shr 8)] xor
    decryptTable3[(v13 shr 16) and $FF] xor
    decryptTable4[v10 shr 24] xor (v4 + 16);

    v6 := decryptTable1[v12] xor
    decryptTable2[(v13 shr 8)] xor
    decryptTable3[(v10 shr 16) and $FF] xor
    decryptTable4[v11 shr 24] xor (v4 + 20);

    v7 := decryptTable1[v13] xor
    decryptTable2[(v10 shr 8)] xor
    decryptTable3[(v11 shr 16) and $FF] xor
    decryptTable4[v12 shr 24] xor (v4 + 24);

    v8 := decryptTable1[v10] xor
    decryptTable2[(v11 shr 8)] xor
    decryptTable3[(v12 shr 16) and $FF] xor
    decryptTable4[v13 shr 24] xor (v4 + 28);
    end;
    v10 := decryptTable1[v6] xor
    decryptTable2[(v7 shr 8)] xor
    decryptTable3[(v8 shr 16) and $FF] xor
    decryptTable4[v5 shr 24] xor v4;

    v11 := decryptTable1[v7] xor
    decryptTable2[(v8 shr 8)] xor
    decryptTable3[(v5 shr 16) and $FF] xor
    decryptTable4[v6 shr 24] xor (v4 + 4);

    v12 := decryptTable1[v8] xor
    decryptTable2[(v5 shr 8)] xor
    decryptTable3[(v6 shr 16) and $FF] xor
    decryptTable4[v7 shr 24] xor (v4 + 8);

    v13 := decryptTable1[v5] xor
    decryptTable2[(v6 shr 8)] xor
    decryptTable3[(v7 shr 16) and $FF] xor
    decryptTable4[v8 shr 24] xor (v4 + 12);

    v5 := decryptTable1[v11] xor
    decryptTable2[(v12 shr 8)] xor
    decryptTable3[(v13 shr 16) and $FF] xor
    decryptTable4[v10 shr 24] xor (v4 - 16);

    v6 := decryptTable1[v12] xor
    decryptTable2[(v13 shr 8)] xor
    decryptTable3[(v10 shr 16) and $FF] xor
    decryptTable4[v11 shr 24] xor (v4 - 12);

    v7 := decryptTable1[v13] xor
    decryptTable2[(v10 shr 8)] xor
    decryptTable3[(v11 shr 16) and $FF] xor
    decryptTable4[v12 shr 24] xor (v4 - 8);

    v8 := decryptTable1[v10] xor
    decryptTable2[(v11 shr 8)] xor
    decryptTable3[(v12 shr 16) and $FF] xor
    decryptTable4[v13 shr 24] xor (v4 - 4);

    v10 := decryptTable1[v6] xor
    decryptTable2[(v7 shr 8)] xor
    decryptTable3[(v8 shr 16) and $FF] xor
    decryptTable4[v5 shr 24] xor (v4 - 32);

    v11 := decryptTable1[v7] xor
    decryptTable2[(v8 shr 8)] xor
    decryptTable3[(v5 shr 16) and $FF] xor
    decryptTable4[v6 shr 24] xor (v4 - 28);

    v12 := decryptTable1[v8] xor
    decryptTable2[(v5 shr 8)] xor
    decryptTable3[(v6 shr 16) and $FF] xor
    decryptTable4[v7 shr 24] xor (v4 - 24);

    v13 := decryptTable1[v5] xor
    decryptTable2[(v6 shr 8)] xor
    decryptTable3[(v7 shr 16) and $FF] xor
    decryptTable4[v8 shr 24] xor (v4 - 20);

    v5 := decryptTable1[v11] xor
    decryptTable2[(v12 shr 8)] xor
    decryptTable3[(v13 shr 16) and $FF] xor
    decryptTable4[v10 shr 24] xor (v4 - 48);

    v6 := decryptTable1[v12] xor
    decryptTable2[(v13 shr 8)] xor
    decryptTable3[(v10 shr 16) and $FF] xor
    decryptTable4[v11 shr 24] xor (v4 - 44);

    v7 := decryptTable1[v13] xor
    decryptTable2[(v10 shr 8)] xor
    decryptTable3[(v11 shr 16) and $FF] xor
    decryptTable4[v12 shr 24] xor (v4 - 40);

    v8 := decryptTable1[v10] xor
    decryptTable2[(v11 shr 8)] xor
    decryptTable3[(v12 shr 16) and $FF] xor
    decryptTable4[v13 shr 24] xor (v4 - 36);

    v10 := decryptTable1[v6] xor
    decryptTable2[(v7 shr 8)] xor
    decryptTable3[(v8 shr 16) and $FF] xor
    decryptTable4[v5 shr 24] xor (v4 - 64);

    v11 := decryptTable1[v7] xor
    decryptTable2[(v8 shr 8)] xor
    decryptTable3[(v5 shr 16) and $FF] xor
    decryptTable4[v6 shr 24] xor (v4 - 60);

    v12 := decryptTable1[v8] xor
    decryptTable2[(v5 shr 8)] xor
    decryptTable3[(v6 shr 16) and $FF] xor
    decryptTable4[v7 shr 24] xor (v4 - 56);

    v13 := decryptTable1[v5] xor
    decryptTable2[(v6 shr 8)] xor
    decryptTable3[(v7 shr 16) and $FF] xor
    decryptTable4[v8 shr 24] xor (v4 - 52);

    v5 := decryptTable1[v11] xor
    decryptTable2[(v12 shr 8)] xor
    decryptTable3[(v13 shr 16) and $FF] xor
    decryptTable4[v10 shr 24] xor (v4 - 80);

    v6 := decryptTable1[v12] xor
    decryptTable2[(v13 shr 8)] xor
    decryptTable3[(v10 shr 16) and $FF] xor
    decryptTable4[v11 shr 24] xor (v4 - 76);

    v7 := decryptTable1[v13] xor
    decryptTable2[(v10 shr 8)] xor
    decryptTable3[(v11 shr 16) and $FF] xor
    decryptTable4[v12 shr 24] xor (v4 - 72);

    v8 := decryptTable1[v10] xor
    decryptTable2[(v11 shr 8)] xor
    decryptTable3[(v12 shr 16) and $FF] xor
    decryptTable4[v13 shr 24] xor (v4 - 68);

    v10 := decryptTable1[v6] xor
    decryptTable2[(v7 shr 8)] xor
    decryptTable3[(v8 shr 16) and $FF] xor
    decryptTable4[v5 shr 24] xor (v4 - 96);

    v11 := decryptTable1[v7] xor
    decryptTable2[(v8 shr 8)] xor
    decryptTable3[(v5 shr 16) and $FF] xor
    decryptTable4[v6 shr 24] xor (v4 - 92);

    v12 := decryptTable1[v8] xor
    decryptTable2[(v5 shr 8)] xor
    decryptTable3[(v6 shr 16) and $FF] xor
    decryptTable4[v7 shr 24] xor (v4 - 88);

    v13 := decryptTable1[v5] xor
    decryptTable2[(v6 shr 8)] xor
    decryptTable3[(v7 shr 16) and $FF] xor
    decryptTable4[v8 shr 24] xor (v4 - 84);

    v5 := decryptTable1[v11] xor
    decryptTable2[(v12 shr 8)] xor
    decryptTable3[(v13 shr 16) and $FF] xor
    decryptTable4[v10 shr 24] xor (v4 - 112);

    v6 := decryptTable1[v12] xor
    decryptTable2[(v13 shr 8)] xor
    decryptTable3[(v10 shr 16) and $FF] xor
    decryptTable4[v11 shr 24] xor (v4 - 108);

    v7 := decryptTable1[v13] xor
    decryptTable2[(v10 shr 8)] xor
    decryptTable3[(v11 shr 16) and $FF] xor
    decryptTable4[v12 shr 24] xor (v4 - 104);

    v8 := decryptTable1[v10] xor
    decryptTable2[(v11 shr 8)] xor
    decryptTable3[(v12 shr 16) and $FF] xor
    decryptTable4[v13 shr 24] xor (v4 - 100);

    v10 := decryptTable1[v6] xor
    decryptTable2[(v7 shr 8)] xor
    decryptTable3[(v8 shr 16) and $FF] xor
    decryptTable4[v5 shr 24] xor (v4 - 128);

    v11 := decryptTable1[v7] xor
    decryptTable2[(v8 shr 8)] xor
    decryptTable3[(v5 shr 16) and $FF] xor
    decryptTable4[v6 shr 24] xor (v4 - 124);

    v12 := decryptTable1[v8] xor
    decryptTable2[(v5 shr 8)] xor
    decryptTable3[(v6 shr 16) and $FF] xor
    decryptTable4[v7 shr 24] xor (v4 - 120);

    v13 := decryptTable1[v5] xor
    decryptTable2[(v6 shr 8)] xor
    decryptTable3[(v7 shr 16) and $FF] xor
    decryptTable4[v8 shr 24] xor (v4 - 116);


    v5 := dword_1001A5B0[v11] xor
    dword_1001A1B0[(v12 shr 8)] xor
    dword_10019DB0[(v13 shr 16) and $FF] xor
    dword_100199B0[v10 shr 24] xor (v4 - 144);

    v6 := dword_1001A5B0[v12] xor
    dword_1001A1B0[(v13 shr 8)] xor
    dword_10019DB0[(v10 shr 16) and $FF] xor
    dword_100199B0[v11 shr 24] xor (v4 - 140);

    v7 := dword_1001A5B0[v13] xor
    dword_1001A1B0[(v10 shr 8)] xor
    dword_10019DB0[(v11 shr 16) and $FF] xor
    dword_100199B0[v12 shr 24] xor (v4 - 136);

    v8 := dword_1001A5B0[v10] xor
    dword_1001A1B0[(v11 shr 8)] xor
    dword_10019DB0[(v12 shr 16) and $FF] xor
    dword_100199B0[v13 shr 24] xor (v4 - 132);

    LABEL_12:
    a2 := v5;
    (a2 + 4) := v6;
    (a2 + 8) := v7;
    (a2 + 12) := v8;
    result:= 1;
    end;


    Если не ошибаюсь, то массивы для расшифровки не меняются (так же как и для пакетов)
    DecryptTable4 : array [0..1023] of byte = (
    50,$A7,$F4,$51,$53,$65,$41,$7E,$C3,$A4,$17,$1A,$96 ,$5E,$27,$3A,
    $CB,$6B,$AB,$3B,$F1,$45,$9D,$1F,$AB,$58,$FA,$AC,$9 3,$03,$E3,$4B,

    DecryptTable3 : array [0..1023] of byte = (
    $A7,$F4,$51,$50,$65,$41,$7E,$53,$A4,$17,$1A,$C3,$5 E,$27,$3A,$96,

    DecryptTable2 : array [0..1023] of byte = (
    $F4,$51,$50,$A7,$41,$7E,$53,$65,$17,$1A,$C3,$A4,$2 7,$3A,$96,$5E,

    DecryptTable1 : array [0..1023] of byte = (
    $51,$50,$A7,$F4,$7E,$53,$65,$41,$1A,$C3,$A4,$17,$3 A,$96,$5E,$27,
    $3B,$CB,$6B,$AB,$1F,$F1,$45,$9D,$AC,$AB,$58,$FA,$4 B,$93,$03,$E3,

    Полные массивы и функции в приложении

    Please register or login to download attachments.

    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  4. The Following 3 Users Say Thank You to Dwar For This Useful Post:


  5. #3
    sat
    sat is offline
    New member
    Join Date
    2010 May
    Posts
    16
    Thanks
    3
    Thanked 1 Time in 1 Post
    Rep Power
    0

    re: encrypted .CSV decryptor

    а почему csvDecryptor зашифровывает csv файлы другим алгоритмом ?)))

  6. #4
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,221
    Thanks
    211
    Thanked 2,224 Times in 289 Posts
    Rep Power
    10

    re: encrypted .CSV decryptor

    sat
    что значит "зашифровывает"? где в декрипторе есть шифратор
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  7. #5
    sat
    sat is offline
    New member
    Join Date
    2010 May
    Posts
    16
    Thanks
    3
    Thanked 1 Time in 1 Post
    Rep Power
    0

    re: encrypted .CSV decryptor

    Quote Originally Posted by Dwar
    sat
    что значит "зашифровывает"? где в декрипторе есть шифратор
    ну я так понял что csvDecrypt.exe не только расшифровывает csv файлы но и зашифровывает,(неселён в терминологии объясню на пальцах чё сделал )
    вбил в cmd
    cd C:CSV
    csvDecrypt.exe ItemAsset.csv
    файл расшифровало
    вбил повторно
    csvDecrypt.exe ItemAsset.csv
    файл зашифровало но уже другим алгоритмом

  8. #6
    TemTriss
    TemTriss is offline
    Senior Member TemTriss's Avatar
    Join Date
    2010 May
    Location
    Saint-Pitersburg
    Posts
    204
    Thanks
    47
    Thanked 82 Times in 3 Posts
    Rep Power
    0

    re: encrypted .CSV decryptor

    м... вроде чётко написано csvDecryptor а не криптор. т.е. он только расшивровывает информацию.
    ADACH, Sirmabus, DWAR the BESSSSSSSSSST
    <3 MM REQBOT [Please, register to view links]
    love is in the air, blinding me with smoke, you are the air i breathe, when i choke.
    butterflies in the jar
    captured my heart, goodies in the basket, stuttering the ways, i love you honey.
    insect in your kiss.
    You are my sunshine.
    Get out of my rowboat, Get out of my rowboat, © Coal Chamber

  9. #7
    sat
    sat is offline
    New member
    Join Date
    2010 May
    Posts
    16
    Thanks
    3
    Thanked 1 Time in 1 Post
    Rep Power
    0

    re: encrypted .CSV decryptor

    Quote Originally Posted by TemTriss
    м... вроде чётко написано csvDecryptor а не криптор. т.е. он только расшивровывает информацию.
    ну тогда смысла нет ево выкладывать ),т.к что тебе даст то что ты расшифруеш файл ? тупо посмотриш чё админы изменили в нём и всё мона удалять )))

  10. #8
    ADACH
    ADACH is offline
    Member-in-training ADACH's Avatar
    Join Date
    2010 May
    Posts
    170
    Thanks
    25
    Thanked 168 Times in 46 Posts
    Rep Power
    8

    re: encrypted .CSV decryptor

    Quote Originally Posted by sat
    Quote Originally Posted by TemTriss
    м... вроде чётко написано csvDecryptor а не криптор. т.е. он только расшивровывает информацию.
    ну тогда смысла нет ево выкладывать ),т.к что тебе даст то что ты расшифруеш файл ? тупо посмотриш чё админы изменили в нём и всё мона удалять )))
    Путем хука некоторых ф-й в utils.dll - можно скормить игре измененные значения...
    Шлите мыло зухелем

  11. #9
    Juicenes
    Juicenes is offline
    New member
    Join Date
    2010 Apr
    Posts
    14
    Thanks
    2
    Thanked 0 Times in 0 Posts
    Rep Power
    0

    re: encrypted .CSV decryptor

    what does that mean ^^?

  12. #10
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,221
    Thanks
    211
    Thanked 2,224 Times in 289 Posts
    Rep Power
    10

    re: encrypted .CSV decryptor

    Juicenes
    Here you can find decryptor for csv files. It's not actual for US, 'coz protection was implemented only on Rus and korean server (if I right)
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

Page 1 of 4 123 ... LastLast

Similar Threads

  1. [Release] dNPK SoulMaster npk files decryptor/unpacker
    By Dwar in forum Game Files
    Replies: 26
    Last Post: 2013-11-16, 12:26 PM
  2. [Release] deSep - Sephiroth 2 resource encryptor/decryptor
    By Dwar in forum Game Files
    Replies: 2
    Last Post: 2011-08-17, 03:58 PM
  3. [Release] AikaDeBin - Aika Bin Encryptor/Decryptor
    By Dwar in forum Aika Online
    Replies: 12
    Last Post: 2011-01-21, 06:07 AM
  4. [Release] HackShield 5.3.12 log decryptor
    By Dwar in forum Anti-Cheat Systems
    Replies: 0
    Last Post: 2010-11-29, 04:07 PM
  5. aika packages are encrypted?
    By in forum Aika Online
    Replies: 0
    Last Post: 2010-10-21, 05:58 AM
Visitors found this page by searching for:

ItemAsset.csv

csv decryptor

encrypted csv

баги на заточку в реквием онлайн

requiem декриптор пакетов

hackshield 5.3.12 log decrypter

cooldown hack aika

encrypt. c#

requiem skillasset.csv cooldown

aikadebin downloadif ( v10 &lt; 0x10 ) { jf ( v10 &lt; 8 ) { if ( v10 &lt; 4 ) { if ( v10 &lt; 2 ) v11 = 2 - (v10 &lt; 1); else v11 = 3; } else { v11 = 4; } } else { v11 = 5;requiem баги с заточкамиencrypt games csvitemasset.csv requiemcsvdecrypt.exeреквием онлайн заточка багdownload aikadebin.rar‎how to hack encrypted csv filesРасшифровка алгоритма заточки PWреквием баг на заточкуrequiem .csvaika encryptordecryptor hakingrequiem online декриптор пакетовhtml read encrypted csvбаги на заточку в requiem

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •