Jump to content

Eter Manager Tool


Recommended Posts

  • Bronze

M2 Download Center

This is the hidden content, please
( 102241 + Source ) (Password: metin2)

This is the hidden content, please
( 10141274 ) (Password: metin2)

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

Spoiler

 

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 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

Spoiler

- 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 oberhumer.com 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 (image)

- Index preview, and item selection (both for unpacking and packing, image)

- Quick unpack and repack functions (image1, image2)

- Size optimizer, it finds duplicates and not compressed files (image)

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)

- Packing with quick unpack will output a wrong file Path

How to setup your profile

Spoiler

- 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: Image // Bad example: Image2

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 (image)

6. In order for the GridView to update, you MUST click enter on the selected file, this is the action trigger.

IMPORTANT NOTE:

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.

PLEASE READ THIS BEFORE USING THE SIZE OPTIMIZER.

Download: Mega.co.nz

This is the hidden content, please
~

Change-log

Spoiler

1.0.14.1274 - On 21-02-2014

- Fixed Output log unreferenced object.

- Fixed encoding when packing files.

1.0.15.0 - On 22-02-2014

-> Repacking now properly updates the progress UI.

-> Fixed a bug where repacking would not get logged.

-> Improved exception handling and minor changes in the Detailed log view.

-> Other small bugfixes.

Version 1.1.0.0 - On 24-02-2014

-> Fixed several memory leaks

-> Improved exception handling

-> Minor grammar typos fixed

-> Fixed a bug where Filename CRC hash was not being correctly written (this would cause the client to not be able to read the files packed with the tool)

-> Export to XML implemented (compatible with Tim's unpacker)

-> You can now quickly select/deselect items on the quick unpack/repack window, aswell as set its packing type (repack window)Image

Version 1.1.0.58 - On 25-02-2014

-> Fixed a bug which prevented Quick Unpack from creating valid files.

-> Added 2 new options to applicationSettings (self-explanatory):

- BypassUnpackingIfAlreadyUnpacked

- BypassPackingIfAlreadyPacked

-> You can now select which files to overwrite individually (overriding the global settings)

-> Compression level changed to 999 from 1 (it will be slightly slower but the final size will be smaller)

Credits & final notes

Used oberhumer.com 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.

Edited by Metin2 Dev
Core X - External 2 Internal
  • Metin2 Dev 262
  • kekw 2
  • Eyes 6
  • Dislove 3
  • Angry 2
  • Not Good 1
  • Sad 2
  • Smile Tear 1
  • Think 7
  • Confused 4
  • Scream 4
  • Lmao 1
  • Good 100
  • Love 20
  • Love 208
Link to comment
Share on other sites

  • Developer

My antivirus has detected as a virus  :blink:

74FC8.png

 

If you will publish the source in the future, why did you pack the exe? :ph34r:

FAQs

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...

Edited by Metin2 Dev
Core X - External 2 Internal

when you return 0 and server doesn't boot:

unknown.png

Link to comment
Share on other sites

My antivirus has detected as a virus  :blink:

74FC8.png

 

If you will publish the source in the future, why did you pack the exe? :ph34r:

 

Maybe since he doesn't want to publish the source yet he also wants to protect the exe until he publishes the source.

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

System.NullReferenceException: Nesne başvurusu bir nesnenin örneğine ayarlanmadı.
   konum: EterTool.ViewModels.MainViewModel.<UnpackFilesAction>b__20()
   konum: System.Threading.Tasks.Task.InnerInvoke()
   konum: System.Threading.Tasks.Task.Execute()
--- Özel durumun oluşturulduğu önceki konumdan başlayan yığın izlemesinin sonu ---
   konum: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   konum: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   konum: System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   konum: EterTool.ViewModels.MainViewModel.<UnpackFilesAction>d__23.MoveNext()
--- Özel durumun oluşturulduğu önceki konumdan başlayan yığın izlemesinin sonu ---
   konum: System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__4(Object state)
   konum: System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   konum: MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
 
 
what i should do :)
Link to comment
Share on other sites

  • Bronze

My antivirus has detected as a virus  :blink:

74FC8.png

 

If you will publish the source in the future, why did you pack the exe? :ph34r:

 VT scan addded.

 

System.NullReferenceException: Nesne başvurusu bir nesnenin örneğine ayarlanmadı.

   konum: EterTool.ViewModels.MainViewModel.<UnpackFilesAction>b__20()

   konum: System.Threading.Tasks.Task.InnerInvoke()

   konum: System.Threading.Tasks.Task.Execute()

--- Özel durumun oluşturulduğu önceki konumdan başlayan yığın izlemesinin sonu ---

   konum: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

   konum: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   konum: System.Runtime.CompilerServices.TaskAwaiter.GetResult()

   konum: EterTool.ViewModels.MainViewModel.<UnpackFilesAction>d__23.MoveNext()

--- Özel durumun oluşturulduğu önceki konumdan başlayan yığın izlemesinin sonu ---

   konum: System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__4(Object state)

   konum: System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)

   konum: MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

 

 

what i should do :)

Please read the FAQ. Send me the files, I need to be able to reproduce the issue...

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

  • Bronze

Change-log:

Version 1.0.15.0 - On 22-02-2014

-> Repacking now properly updates the progress UI.

-> Fixed a bug where repacking would not get logged.

-> Improved exception handling and minor changes in the Detailed log view.

-> Other small bugfixes.

Regarding the size optimizer, some of you reported that it finds items which are not real duplicates, why does this happen?

Simply because the EIX files are not 100% accurate, the exptected CRC hash is not correct, basically.

Notice how Eter Tool tells you the exptected hash is different (image). But if you compare the output file with Tim's unpacker, it's the same, but different than the exptected by the EIX file (image).

Conclusion: if you want a 100% accurate Size optimizer analysis you must unpack ALL thefiles in your client and repack them again (using my tool or any other which gets the correct CRC hash).

Edited by Metin2 Dev
Core X - External 2 Internal
  • Metin2 Dev 5
  • Confused 1
  • Good 2
  • Love 1
Link to comment
Share on other sites

Change-log:

Version 1.0.15.0 - On 22-02-2014

-> Repacking now properly updates the progress UI.

-> Fixed a bug where repacking would not get logged.

-> Improved exception handling and minor changes in the Detailed log view.

-> Other small bugfixes.

Regarding the size optimizer, some of you reported that it finds items which are not real duplicates, why does this happen?

Simply because the EIX files are not 100% accurate, the exptected CRC hash is not correct, basically.

Notice how Eter Tool tells you the exptected hash is different (image). But if you compare the output file with Tim's unpacker, it's the same, but different than the exptected by the EIX file (image).

Conclusion: if you want a 100% accurate Size optimizer analysis you must unpack ALL thefiles in your client and repack them again (using my tool or any other which gets the correct CRC hash).

important things do not work

 

so not working "export the xml file" 

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
Share on other sites

  • Bronze

what is your status to "export the xml file" :)

I can't give you an ETA, since there are more pressing matters (e.g: the leaked binaries source seem to be unable to decompress data compressed with compression level 1, thus files wouldn't work). A new version should be released in the next few days though...
Link to comment
Share on other sites

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.