ZenHAX
https://zenhax.com/

$50 - Decrypt Ragnarok Eternal Love client data [Unity Mobile]
https://zenhax.com/viewtopic.php?f=14&t=8887
Page 1 of 1

Author:  drx [ Tue Nov 13, 2018 3:13 pm ]
Post subject:  $50 - Decrypt Ragnarok Eternal Love client data [Unity Mobile]

My previous post: https://zenhax.com/viewtopic.php?f=9&t=8865

Hello,
I'm looking for someone to unpack and decrypt Ragnarok Eternal Love game data for my small project.

As for now, I have been able to decompile some of the game resources using AssetStudio.
However, TextAsset such as NPC(for instance - npc HP, ID, type and so on), item, quest, skill and few other databases are encrypted.
I strongly believe that those data are in resources/script2 folder.

Image

Anyway, please PM me if you're interested. I'll pay you via Paypal once its done.

Thanks!

Game: Ragnarok Online: Eternal Love
Platform: Android
Official site: https://www.ragnaroketernallove.com
--
script2 folder (untouched): https://www.mediafire.com/file/twdpvwm9 ... s.rar/file
script2 TextAsset (decompiled using AssetStudio): http://www.mediafire.com/file/luy6l899h ... t.rar/file

Game client APK: https://www.ragnaroketernallove.com/apkdl or https://rescdn.imtxwy.com/apk/ro-sea/RO ... 798060.apk

Author:  atom0s [ Sat Nov 17, 2018 7:52 pm ]
Post subject:  Re: $50 - Decrypt Ragnarok Eternal Love client data [Unity Mobile]

From the look of it, the files are encrypted with DES. The libslua.so file has the key and functions in it to encode buffers using the same setup and key.

Code:
void __cdecl desECode(void *a1, size_t a2, void *a3)
{
  int v3; // esi
  size_t n; // edi
  char *v5; // esi
  size_t v6; // ebp
  _BYTE *src; // ST04_4
  unsigned int *dest; // ST00_4

  InitDes();
  v3 = dword_42024;
  memcpy(a3, "czjzgqde", dword_42024);
  *(_DWORD *)((char *)a3 + v3) = a2;
  n = desECodeLenth(a2);
  v5 = (char *)malloc(n);
  memset(v5, 1, n);
  v6 = 0;
  memcpy(v5, a1, a2);
  deskey(byte_42018, 0);
  if ( n )
  {
    do
    {
      src = (char *)a3 + v6 + dword_42020;
      dest = (unsigned int *)&v5[v6];
      v6 += 8;
      des(dest, src);
    }
    while ( n > v6 );
  }
  free(v5);
}


I don't have the time to reverse and test the rest of the process to decrypt the data but it looks like everything you'd need is there.

Author:  drx [ Tue Nov 20, 2018 9:25 pm ]
Post subject:  Re: $50 - Decrypt Ragnarok Eternal Love client data [Unity Mobile]

Thanks for your time. This is what I found in libslua.so. But I honestly don't know what to do with it. My reverse engineering skill is little to none.

Code:
void __fastcall desECode(const void *a1, size_t a2, char *a3)
{
  char *v3; // r7
  const void *v4; // r9
  size_t n; // ST04_4
  int v6; // r5
  unsigned int v7; // r4
  unsigned int v8; // r6
  char *v9; // r5
  int v10; // r0
  int v11; // r1

  v3 = a3;
  v4 = a1;
  n = a2;
  InitDes();
  v6 = dword_260AC;
  memcpy(v3, "czjzgqde", dword_260AC);
  v7 = 0;
  *(_DWORD *)&v3[v6] = n;
  v8 = desECodeLenth(n);
  v9 = (char *)malloc(v8);
  memset(v9, 1, v8);
  memcpy(v9, v4, n);
  deskey((int)byte_26020, 0);
  if ( v8 )
  {
    do
    {
      v10 = (int)&v9[v7];
      v11 = dword_260B0 + v7;
      v7 += 8;
      des(v10, &v3[v11]);
    }
    while ( v8 > v7 );
  }
  free(v9);
}

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/