Jump to content
Shakto

xDiffPatcher, xDiffGen2, Packet Parser and Packet Extractor

Recommended Posts

If anyone want to join this project, tell me or tell to Yommy

 

-= xDiffPatcher =-

 

324462xdiffpatcher.jpg

 

Download

xDiffPatcher

This is our Next-Generation Diff Patcher, it requires a new style of diff file called xDiff, (xml based) each xdiff is specific for a single ragexe,

and will not work on any other ragexe date.

xDiff files are created with the xDiffGen software below.

There is a recent build in the directory : xDiffPatcherbinDebug

Source is included if anyone wants to improve somethings

 

---------------------------------------------------

 

All the following software need to use php language. Please install it on your computer.

This is CommandLine PHP, Do not attempt to run these scripts in a web browser

We would recommend using Subversion since these projects are frequently updated with new features.

 

- Linux : sudo apt-get install php5

- Windows : install this http://windows.php.net/download/#php-5.4

Open your control panel and search : Edit environment variable for your account

In this Windows, the second part (title System variables), search the variable Path

Enter your PHP directory at the end, including ';' before (e.g. ;C:php)

 

Now search your php.ini files

Uncomment the line extension=php_sockets.dll (you have to remove the char ';')

 
 
 

 

-= xDiffGen 2 =-

 

567994xdiffgen.jpg

 

 

Download

xDiffGen2

 

To use that software, you have to put the decrypted exe in the Clients folder and open the file DiffGen.bat

Then select the first option (0 - Local client folder), select your exe and the xDiff will be create in the Diffs folder

some patches also extract some data (msgstringtables, packet_lengths, etc), these are put into the Extracted_Data folder

 

Options 2 and 3 do not fully work as intended, since gravity are distributing new clients with Themida protection /sadface

Options M and F are used to test a single patch against all clients to detect when some patterns fails (again not working with themida clients)

 

 

 

-= Packet Parser =-

 

760959packetparser.jpg

 

Download

PacketParser

 

To use that software you have to place ws2_pp.dll from the dev folder, into your RO folder.

Then hex edit your Ragexe.exe : search ws2_32.dll and replace the both occurrences by ws2_pp.dll

 

Next you should extract the packetlength file using Packet Extract, And place it into packet parserdatapacket

Next, open the parser.bat, choose Live Network Capture, choose your packet length tables file, and choose full_info

Then open your Ragexe.exe (if done correct you will be prompted to use PacketParser)

Enjoy :)

 

 

-= Packet Extract =-

 

434971packetextract.jpg

 

Download

this is a subscript of PacketParser above

 

All you have to do here is to place your Ragexe.exe in the folder clients, with a pattern like this : 2013-05-22Ragexe.exe

Open Packet_Extract.bat, select your exe

Your Packet Data Length is now in the plens folder

 

 

All credits to Yommy

I just worked personally on the xDiffGen2 patches.

 

We are open for anyone who wants to help with any of these projects.

they are designed to be edited and hacked about with, and hope you can find some use with them

Edited by Yommy

Share this post


Link to post
Share on other sites

Count me in :).

I thought that the projects are already functional so what is missing? combining the patcher and generator?

The only missing thing that i have seen is the addition of an extra section to store code & data like in WeeDiffGen (but i think that can be easily added)

Share this post


Link to post
Share on other sites

Yup MStream, the things to do :

 

If we haven't an extra section to store code it would be :

Find a way to search zero code (x00x00) x times -> for exemple for multiples grfs and disable multiple windows and search a way to haven't conflict between the offset searching

 

To combining patcher and generator, i prefer to seperate it because ppl will try to diff their exe without update and check the code to see if all working fine.

It's not a prob for me to check every week to release the patch ^^

 

Ps : you can join me on skype or irc if you want to talk about the project

 

P.P.S : You can add some patches if you want to (like share body palette) like u worked on the first client ^^

Edited by Shakto

Share this post


Link to post
Share on other sites

I have made a few patches for xDiffGen - Didn't get a chance to test them out yet , I just replicated the logic used in the WeeDiffPatcher into php so they should work ideally.

 

http://www.mediafire.com/?rz809o783y0y9ga

 

Patches included in the file:

Only First Login Background

Only Second Login Background (this is in same group as first)

Remove Serial Display

Shared Body Palettes (there are two versions which you can select from in the group - gender included and excluded versions)

Shared Head Palettes (similar to body there are two versions)

Enable Custom 3D Bones

 

Let me know if you find any problems with them.

BTW are there any other patches left missing in xDiffGen present in WeeDiff other than these

Edited by MStream

Share this post


Link to post
Share on other sites

MStream, would you like svn access to commit them ?

require your assembla account <3

Share this post


Link to post
Share on other sites

hmm looks like they had some syntax issues. I have updated the patches archive. Yommy i want to make sure they are ok before we add them to the repository.

Right now i am facing one issue -  the shared palette diffs are not adding anything in the <changes> tag but there are no errors either. I am adding replace codes in multiple locations. Any idea why it is happening.

Share this post


Link to post
Share on other sites

I am so sorry if this comes off total noob...but just wondering if I could have some assistance...

I am used to using Shin's Diff patcher, but obviously this one is newer and will support newer EXE's. I downloaded the xDiffPatcher you posted, but there is no readme or instructions so I am a little confused :/ I tried opening random files but my computer does not recognize any of them and none of them open your nice diff patcher application like in the preview image. So I was just wondering if someone could just post a short explaination on what to do? Am I missing a program needed to open it maybe?

 

Share this post


Link to post
Share on other sites

@MStream : Ok, little syntax problem

Change :

if($exe) Byif($exe === true)

 

@Mist : Don't forget it's for dev things tools, there is the patcher with the diff in the Client Support tool, i'll release tomorrow a new exe, and ill ask to a mod to move my topic in the release part

 

@Enko : Yes because nobody support it anymore, and it's more simple to code with that tool

 

@Judas : Done :)

Edited by Shakto

Share this post


Link to post
Share on other sites

oh i thought the condition automatically takes it as true if it contains any normal value other than false. OK i will change that.

 

@Enko
Pros
------

1) Easier to make changes compared to WeeDiff (Higher level of abstraction and we don't need to take care of any memory management)

2) Easy to adapt to any mods in client (like what happened with themida unpacking).

 

Cons (Well not exactly cons but still)

-------

1) If you want to generate diffs then you need to have php installed (not required for patcher).

2) All the code is open which means you can't have any hidden code for your own patch.

Share this post


Link to post
Share on other sites

did you test them out in a client ? If its ok then go ahead.

I am at office right now, need to get home first before i can test them.

Share this post


Link to post
Share on other sites

did you test them out in a client ? If its ok then go ahead.

I am at office right now, need to get home first before i can test them.

 

i'm testing them know ^^ seems to work

I just can't test the shared palette things

 

P.S : i added them to svn (All credit to MStream for those patches)

Edited by Shakto

Share this post


Link to post
Share on other sites

Support DNS

Disable Multiple Windows

 

And i can't find the patch to enable space in guildname because rathena is down :(

Share this post


Link to post
Share on other sites

@MStream : Ok, little syntax problem

Change :

if($exe) Byif($exe === true)

 

@Mist : Don't forget it's for dev things tools, there is the patcher with the diff in the Client Support tool, i'll release tomorrow a new exe, and ill ask to a mod to move my topic in the release part

 

I do apologize, I did not realize it was preliminary release for devs~ Thanks for the instructions Yommy and Shakto, much appreciated! Of course thank every one of you who worked to make a new diff patcher, it looks really nice :meow:

Share this post


Link to post
Share on other sites

Support DNS

Disable Multiple Windows

 

And i can't find the patch to enable space in guildname because rathena is down :(

Luckily I save my diff patches :3

 

 

Guild Space:
6A 20 53 FF D6 83 C4 08
6A 21 53 FF D6 83 C4 08

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.