[Release]Eter Tool

02/21/2014 14:44 GunnerMBT#1
Hi, I've been working on a more complete Eter management solution, still a work-in-progress.

Introduction & description

I've always hated the lack of organization when building or editing large quantities of files using the current tools, also they all lack a good UI, as a result I started making my own. It's meant to have a profile-based approach (you create your profile, which corresponds to a client) and all files regarding this and only this profile will be in the same place. This is a community-driven project, so I'll change it according to our needs.

Requirements

- .NET framework 4.5, previous versions won't work for the simple fact that I'm using some of the latest updates (which lack downward compatibility).

FAQs

Q: Is the project Open-Source?
A: No, not yet. I'll make it open-source once a stable version is released, this will guarantee that everyone works on maintainable code-base (still much work to be done).

Q: Why is the main executable file packed?
A: I'm trying to prevent code leakages until I make it open-source. You can easily test it in a VM and monitor its behaviour...

Q: What are all those files distributed along with the executable?
A: Since not everyone has the same version of .NET framework, I've included all additional dependencies (you still need .NET framework 4.5 installed).

Q:Found a bug. How should I report it?
A: If an exception was raised and not handled (a message will alert you), send me the errorLog.txt, aswell as a thoroughdescription of your actions prior to said exception (or bug). If the bug is related to unpacking or packing any file, send me those files, aswell as your application.settings and profile.settings. Irreproducible bugs will be ignored.

Q: Where are unpacked & packed files stored?
A: userData/{ProfileName}/unpack & userData/{ProfileName}/pack

File description

- EterTool.exe => Main executable file, packed.
- System.Windows.Controls.Input.Toolkit.dll, System.Xaml.dll and WPFToolkit.dll => needed dependencies (local copies)
- LzoModule.dll => .NET wrapper of the [Only registered and activated users can see links. Click Here To Register...] LZO implementation.
- msvcr120.dll => Needed dependency of LZoModule.dll, DO NOT replace this file, as some of you might have different versions of it, it might throw a "BadFormat" exception.
- ApplicationUpdater.exe => Very poorly coded (didn't want to waste any time on it hehe) application updater, just so you can easily update to the latest versions (this file isn't packed).

Main features list

- Profile-based approach to improve organization ([Only registered and activated users can see links. Click Here To Register...])
- Index preview, and item selection (both for unpacking and packing, [Only registered and activated users can see links. Click Here To Register...])
- Quick unpack and repack functions ([Only registered and activated users can see links. Click Here To Register...], [Only registered and activated users can see links. Click Here To Register...])
- Size optimizer, it finds duplicates and not compressed files ([Only registered and activated users can see links. Click Here To Register...])

Planned development

- Implement global quick pack & repack, it will enable users to quickly process files outside of the current profile. (implemented)
- Improve Size Optimizer, adding the capability to automatically repack all needed files instead of just showing informaton.
- Improve "Output log" and "Detailed log" windows. (implemented)
- Improve human-error prevention and exception handling (the most importat one, at the moment)
- Add support for multi-threaded unpacking & packing actions while also setting a user-defined limit, for example:
-- You can add 20 files to the operations list, while only X being processed at a time, to prevent crashes.

Known issues and limitations

- Limitation: if an item inside the epk file is greater than 600mb (or its encryption/decryption size), the file will be ignored, this is a known limitation of the .NET framework for programs targeting x86 architectures (the real cap is somewhere between 1.2-1.6gb, but to prevent crashes I downsized it)
- No support for multi-threaded actions.
- Sometimes when clicking enter it won't update the GridView (fixed)

How to setup your profile

- If needed, I might make a video or post some more images, but it's fairly simple:

1. Open the program, it will show up a message saying it didn't find the CWD.
2. Go to Profile Manager -> Manage
3. Change to your settings (at this stage, please include the CWD with backslashes given that Data Validation is in a very early stage)
3.1 Good example: [Only registered and activated users can see links. Click Here To Register...] // Bad example: [Only registered and activated users can see links. Click Here To Register...]
4. Hit "Save settings" button. (You might need to restart the program after saving)
5. Go to the "Select file from CWD" group and it all should be ready, start typing a file an auto-suggestion will show up ([Only registered and activated users can see links. Click Here To Register...])
6. In order for the GridView to update, you MUST click enter on the selected file, this is the action trigger.

IMPORTANT NOTES:

In some files, you'll notice a message in the "Output log" window alerting you to some files with different hash than expected, this is due to the fact that most eix files are not 100% accuretly built. You can confirm the integrity of the file by extracting the same file with Tim's unpacker, you'll notice it's the same checksum.

[Only registered and activated users can see links. Click Here To Register...].

Download: [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...]

Change-log


Credits & final notes

Used [Only registered and activated users can see links. Click Here To Register...] for the LZO algorithm.

Thanks to:

- Tim, for helping me out understand how Eter files work, general architectural design input and guidance.
- Marty, for helping me find out some major bugs, aswell as pointing out various errors in my implementations.

- MadTiago, MarcoTuna, Pacificador, Kforce and Alejandro, for being my test slaves :P.
02/21/2014 15:24 Metin2 Team#2
Great work :)

rated 5 stars :)
02/21/2014 15:31 Yiv#3
That's very nice and thank you for sharing!

Regards
02/21/2014 15:46 ~Ok#4
Look great :)
02/21/2014 16:02 .Bloodseeker#5
Nice work dude. :)
02/21/2014 16:03 GunnerMBT#6
Thanks for the kind comments. It's worth noting that the VT scan is affected by the fact that the main executable file is packed.
02/21/2014 17:34 Laben#7
OMG YOU ARE AWESOME THANKSSSSSSSSSS
02/21/2014 19:56 STinG.#8
thanks a lot

02/21/2014 20:05 GunnerMBT#9
Quote:
Originally Posted by STinG. View Post
thanks a lot

Please send me the files you were trying to unpack. Did you try to unpack from the main window? Or que quick unpack? What did you do exactly before the message appeared?
02/21/2014 20:17 Mt2Gamer97#10
What is it?
Client security?
“Verschlüsselung“?
If i use this, nobody can open my eix/epk datas only me?
02/21/2014 21:21 GunnerMBT#11
Quote:
Originally Posted by Mt2Gamer97 View Post
What is it?
Client security?
“Verschlüsselung“?
If i use this, nobody can open my eix/epk datas only me?
Hardly, that is entirely up to you. This only provides you with the tools to easily manage your files.
02/21/2014 21:58 IHateJuif#12
Who need the Src i have decompielt its easy C#
02/21/2014 22:21 Laben#13
how i can decrypt type 3 and 4 ?
02/21/2014 22:37 IHateJuif#14
Quote:
Originally Posted by Laben View Post
how i can decrypt type 3 and 4 ?
White this not use offical MakePack.exe for type3

example:

MakePack.exe --extract patch2 patch2.iv

u need only the Serverside files
02/21/2014 22:55 GunnerMBT#15
Quote:
Originally Posted by IHateJuif View Post
Who need the Src i have decompielt its easy C#
Congratulations.

Quote:
Originally Posted by Laben View Post
how i can decrypt type 3 and 4 ?
Those types are not yet supported.