Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Release(downloading)大唐2

Experienced Elementalist
Joined
Sep 12, 2013
Messages
279
Reaction score
76
LOL.... Thanks to @for your hard work in great C# project.
sysstring.ini is unpacked.... LOL

Unnamed QQ Screenshot20160609181718 - Release(downloading)大唐2 - RaGEZONE Forums
Do you have any solution to unpack .package files?

Thank you. That's awesome.
 

Attachments

You must be registered for see attachments list
Banned
Banned
Joined
Dec 3, 2010
Messages
1,581
Reaction score
619
.package files? Last time when i meet with that extensions (saiyuki) its a XORed plaintext files copy *.* > file.package format with specific header 32bytes.

Tapatalkkal küldve az én LG-D802 eszközömről
 
Elite Diviner
Joined
Apr 28, 2012
Messages
420
Reaction score
439
.package files
??
in this game?

p.s. maybe someone useful
unpacks all the files in the current folder, the extracted files are stored in Unpack folders
 
Experienced Elementalist
Joined
Sep 12, 2013
Messages
279
Reaction score
76
Oh my mistake on saiyuki...
This game don't need .package file unpacker.
Just .dat, .png and .ini unpacker for this game. LOL
 
Banned
Banned
Joined
Dec 3, 2010
Messages
1,581
Reaction score
619
U can unpack unxor xor repack files in Saiyuki but its does not matter coz the file checking on the executeable destroy the game if there is modification in the .package files... I tried like 1month to avoid this w/o luck... But that is an another story

Tapatalkkal küldve az én LG-D802 eszközömről
 
Experienced Elementalist
Joined
Sep 12, 2013
Messages
279
Reaction score
76
update fixed launcher. Ragezone version LOL
don't need disable network card.


Unnamed QQ Screenshot20160610003531 - Release(downloading)大唐2 - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Elite Diviner
Joined
Apr 28, 2012
Messages
420
Reaction score
439
sorry for offtopic
.package files? Last time when i meet with that extensions (saiyuki) its a XORed plaintext files copy *.* > file.package format with specific header 32bytes.

Tapatalkkal küldve az én LG-D802 eszközömről

if we say that "saiyuki" = "ZYJ\ZuOnline\Client.exe"
I just watched it (Client.exe).... *.package
it compares (100%) the file creation time to time file changes - if they are different -> the client has broken...
for example - take any package, open in hex editor, save - try run client -> crash)
take this package, mod datatime in (for example) - (Created Data = Modifier Data), try run client -> OK)))
perhaps, there any check...
 
Last edited:
Elite Diviner
Joined
Apr 28, 2012
Messages
420
Reaction score
439
small update ;)
ZuOnline client without checking (need test) -

---next upd)))---
about crypt datapack....
Validate.dat crypt simple XOR in several passes (key = "0.0.0.1")
PHP:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ZU
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = File.ReadAllBytes(@"Validate.dat");
            byte[] key = { 0x30, 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x31};
            for (int x = 0; x <= key.Length-1; x++)
            {
                for (int i = 0; i < input.Length; i++)
                {
                    input[i] = (byte)(key[x] ^ input[i]);
                }
            }
            File.WriteAllBytes("Validate.dat.unp", input);


            Console.ReadLine();
        }
    }
}
result:
Code:
data\avatar.package|181006731|41523
data\character.package|1411079774|41524
data\config.package|169433666|100811
data\effect.package|1907327|100811
data\magic.package|196165515|100811
data\quest.package|3472757|100811
data\scene.package|1085935046|41524
data\shader.package|168425|41524
data\terrain.package|129849804|41524
data\texture.package|10780648|41524
data\ui.package|742408796|100811
data\world.package|1118677765|100811
isupdata|0|0
....
now i look *.package (to be continued))) )
---upd---
*.package - is not a difficult structure, at the moment i'm writing unpackers for *.package )
 
Last edited:
Experienced Elementalist
Joined
Sep 12, 2013
Messages
279
Reaction score
76
Thank you I hope to see the unpacker for *.package files.
That's the hard work. I don't know how you can do that LOL
 
Banned
Banned
Joined
Dec 3, 2010
Messages
1,581
Reaction score
619
@AnthonyX Pick me on skype and i give ya all tools for that
hyckerdev

Tapatalkkal küldve az én LG-D802 eszközömről
 
Elite Diviner
Joined
Apr 28, 2012
Messages
420
Reaction score
439
AnthonyX Pick me on skype and i give ya all tools for that
hyckerdev

Tapatalkkal küldve az én LG-D802 eszközömről

I freeze work for 3-4 days
1. there is no make sense to do this, if you already have
2. all the files at work (3 days holiday)
 
Banned
Banned
Joined
Dec 3, 2010
Messages
1,581
Reaction score
619
@lastfun .package unpacker abd repacker would be nice anyway. I have only xor tool rest is copy *.*

Tapatalkkal küldve az én LG-D802 eszközömről
 
Banned
Banned
Joined
Dec 3, 2010
Messages
1,581
Reaction score
619
ok, in 3-4 days (unpaker)...

okay so what i did
im unpacked config.package with quickbms
then i used command copy /b *.* Config.package
added header and bottom to the new file from the original with hexeditor
copied to gameroot/data
client runs

then...
unpacked original Config.package file
UNXORed loadingtips.configc with key 4D
i deleted chinese words from first data line and added hello kitty beetwen the ""
Code:
<String Value="hello kitty" />
REXORed with key 4D
then copy /b *.* Config.package
added header and bottom to the new file from the original one
client crashes with error message
 
Banned
Banned
Joined
Dec 3, 2010
Messages
1,581
Reaction score
619
Huh

Tapatalkkal küldve az én LG-D802 eszközömről
 
Elite Diviner
Joined
Apr 28, 2012
Messages
420
Reaction score
439
sorry guys ... i have a little free time now ... i rewrote unpacking - test it)
(bad code, i'm sorry, i'm not a programmer)) )
good luck!
PHP:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace ZU
{
    class Program
    {
        public static byte[] XOR1(byte[] input, byte[] key)
            {
                for (int x = 0; x <= key.Length - 1; x++)
                {
                    for (int i = 0; i < input.Length; i++)
                    {
                        input[i] = (byte)(key[x] ^ input[i]);
                    }
                }
                return input;
            }

        public static byte[] XOR2(byte[] input)
        {
                for (int i = 0; i < input.Length; i++)
                {
                    input[i] = (byte)(0x4D ^ input[i]);
                }
            
            return input;
        }


        public static IEnumerable<int> PatternAt(byte[] source, byte[] pattern)
        {
            for (int i = 0; i < source.Length; i++)
            {
                if (source.Skip(i).Take(pattern.Length).SequenceEqual(pattern))
                {
                    yield return i;
                }
            }
        }
        
        static void Main(string[] args)
        {
            string fileName = "Config.package";
            long pos_key1 = 0xA;
            long pos_count = 0x20;
            byte[] key1 = null;
            int count = 0;
            long offset = 0;
            byte[] input = null;
            byte[] pattern = {0x00, 0x00};
            byte[] fname = null;
            string name = "";
            string[] s = null;
            int temp_pos = 0;
            int file_offset = 0;
            int file_size = 0;

            using (BinaryReader reader = new BinaryReader(File.Open(fileName, FileMode.Open)))
            {
                reader.BaseStream.Seek(pos_key1, SeekOrigin.Begin);
                key1 = reader.ReadBytes(0x07);
                reader.BaseStream.Seek(pos_count, SeekOrigin.Begin);
                count = reader.ReadInt32();
                Console.WriteLine("Open file: " + fileName);
                Console.WriteLine("XOR key: " + Encoding.UTF8.GetString(key1, 0, key1.Length));
                Console.WriteLine("Count files in package: " + count);
                offset = reader.ReadInt32();
                Console.WriteLine("Start read header files.... ");
                Console.WriteLine("  Found: ");
                for (int i = 1; i <= count; i++)
                {
                    input = new byte [0x138];
                    reader.BaseStream.Seek(offset, SeekOrigin.Begin);
                    input = reader.ReadBytes(0x138);
                    XOR1(input,key1);
                    temp_pos = Convert.ToInt32(reader.BaseStream.Position);

                    Stream stream = new MemoryStream(input);
                    using (BinaryReader reader2 = new BinaryReader(stream))
	                        {
                                int fname_end_ = PatternAt(input, pattern).ElementAt(0);
                                fname = reader2.ReadBytes(fname_end_ - 1);
                                name = Encoding.UTF8.GetString(fname, 0, fname.Length);
                                s = name.Split('\\');
                                reader2.BaseStream.Seek(0x128, SeekOrigin.Begin);
                                file_offset = reader2.ReadInt32();
                                file_size = reader2.ReadInt32();

                                Console.Write("  " + i + ". " + name);
                                Console.SetCursorPosition(40,    Console.CursorTop);
                                Console.Write(" offset = " + file_offset);
                                Console.SetCursorPosition(53, Console.CursorTop);
                                Console.WriteLine (" size = " + file_size);
                                Console.Write("     Decrypt & save file");

                                byte[] body = new byte[file_size];
                                reader.BaseStream.Seek(file_offset, SeekOrigin.Begin);
                                body = reader.ReadBytes(file_size);
                                XOR2(body);
                                

                                Directory.CreateDirectory(s[0]);
                                File.WriteAllBytes(s[0] + "\\" + s[1], body);
                                Console.WriteLine("   .......OK!");

	                        }

                    offset = offset + 0x138;
                }


                    Console.WriteLine();
                    Console.WriteLine("All done :) ... press any key for exit.");
                    Console.ReadKey();

            }


        }
    }
}




wrong! (only Config.package) need rewrite!
 
Back
Top