xDiffPatcher, xDiffGen2, Packet Parser and Packet Extractor

Shakto

Community Contributors
Messages
265
Points
0
Age
36
Location
Paris, France
Github
Shaktoh
Emulator
Hercules
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
default_smile.png


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

 
Last edited by a moderator:
Count me in
default_smile.png
.

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)

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

 
Last edited by a moderator:
great release guys ^-^

 
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

 
Last edited by a moderator:
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.

 
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?

 

 
yeah i guess a readme/howto file or introduction would be nice to provide :3

 
@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
default_smile.png


 
Last edited by a moderator:
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.

 
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.

 
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)

 
Last edited by a moderator:
Back
Top