Results 1 to 2 of 2
  1. #1
    plop
    plop is offline
    Guest
    Join Date
    2013 Sep
    Posts
    2
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0

    Dragon Ball Online PAK encryption

    Hello !

    DragonBall online have encrypted specific .pak file.

    Unpacker already exist, but i want creat better program for open, view and edit pak file.

    so, I give you all information i have about PAK files of DragonBall online, and if someone can help me to find encryption algorithm, it would be nice !

    PAK file which doesn't have number in name -> header file
    PAK file which have number in name -> content file

    Only header file are crypted.

    You can see exactly same size for both for crypted and uncrypted files.

    structure of uncrypted header file are:
    Code:
    1 Byte = Always 0x07
    1 Byte = the # in data#.pak
    128 Bytes = Filename, ends with a null terminator (0x00). The 0xFDs are just padding.
    3 Bytes = ???, but I've never seen this not equal "0x00 0x00 0x00".
    4 Bytes = Filesize
    4 Bytes = Position of file in the data#.pak file
    This structure containt 140 bytes, multiply this by number of file in data#.pak

    lang.pak have 4 files.

    And i think header file are crypted 8 bytes by 8 bytes, hum it's just i think '.' !

    I need to know how to get lang_d.pak from lang.pak.

    thanks for help.
    plop.

  2. #2
    h4x0r
    h4x0r is offline
    h4x0r's Avatar
    Join Date
    2011 Aug
    Location
    ..\root\home\pgc
    Posts
    826
    Thanks Thanks Given 
    64
    Thanks Thanks Received 
    525
    Thanked in
    205 Posts
    Rep Power
    15
    here
    PHP Code:
    0041F51F    50              PUSH EAX
    0041F520    6A 00           PUSH 0x0
    0041F522    56              PUSH ESI
    0041F523    E8 E8AF8F00     CALL 00D1A510
    0041F528    53              PUSH EBX
    0041F529    57              PUSH EDI
    0041F52A    56              PUSH ESI
    0041F52B    E8 A0D88F00     CALL 00D1CDD0
    0041F530    8BC3            MOV EAX
    ,EBX
    0041F532    83C4 18         ADD ESP
    ,0x18
    0041F535    83E0 F8         
    AND EAX,0xFFFFFFF8
    0041F538    7E 1A           JLE SHORT 0041F554
    0041F53A    8D78 FF         LEA EDI
    ,DWORD PTR DS:[EAX-0x1]
    0041F53D    C1EF 03         SHR EDI,0x3
    0041F540    83C7 01         ADD EDI
    ,0x1

    0041F543    56              PUSH ESI         
    // scr buffer
    0041F544    56              PUSH ESI         // dst buffer
    0041F545    8BCD            MOV ECX,EBP
    0041F547    E8 14FDFFFF     CALL 0041F260    
    // decryption algo (DBOPAKDecrypt)
    0041F54C    83C6 08         ADD ESI,0x8
    0041F54F    83EF 01         SUB EDI
    ,0x1
    0041F552  
    75 EF           JNZ SHORT 0041F543    //cycle

    0041F554    8BC3            MOV EAX,EBX
    0041F556    5B              POP EBX
    0041F557    5E              POP ESI
    0041F558    5F              POP EDI
    0041F559    5D              POP EBP
    0041F55A    C2 1000         RETN 0x10 
    pseudocode

    PHP Code:
    signed int __stdcall sub_41F4E0(int a1signed int a2void *Dstsize_t Size)
    {
      
    signed int result// eax@2
      
    void *v5// esi@3
      
    unsigned int v6// edi@8

      
    if ( a1 )
      {
        
    v5 Dst;
        if ( 
    Dst )
        {
          if ( 
    a2 <= (signed int)Size )
          {
            
    memset(Dst0Size);
            
    unknown_libname_24(Dsta1a2);
            if ( (
    a2 0xFFFFFFF8) > )
            {
              
    v6 = (((a2 0xFFFFFFF8u) - 1) >> 3) + 1;
              do
              {
                
    DBOPAKDecrypt(v5v5);
                
    v5 = (char *)v5 8;
                --
    v6;
              }
              while ( 
    v6 );
            }
            
    result a2;
          }
          else
          {
            
    result = -6;
          }
        }
        else
        {
          
    result = (signed int)((char *)Dst 3);
        }
      }
      else
      {
        
    result = -5;
      }
      return 
    result;

    Last edited by h4x0r; 2013-09-29 at 08:31 PM.

Similar Threads

  1. Dragon nest dn sea- trainer (online) 2013
    By silvio2mkt in forum Dragon Nest Bots, Hacks, Cheats
    Replies: 7
    Last Post: 2013-05-23, 02:12 AM
  2. [Video] Dragon Ball Characters Render packs
    By Grooguz in forum Renders
    Replies: 1
    Last Post: 2011-12-04, 03:10 PM
  3. Dragon Ball Online Taiwan Research
    By snaity in forum General Game Research
    Replies: 0
    Last Post: 2011-08-27, 07:50 PM
  4. Dragon Ball Online .PAK Files
    By snaity in forum Game Files
    Replies: 6
    Last Post: 2010-11-16, 07:40 PM

Posting Permissions

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