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!

Rusty Hearts

Status
Not open for further replies.
DRGunZ 2 Creator
Loyal Member
Joined
Jan 21, 2007
Messages
4,493
Reaction score
161
You can use this extractor, filter out what you want, etc.
I'll try your program out too pushedx, but there is just too many .txt files.
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Dec 16, 2010
Messages
8
Reaction score
0
The game itself is pretty great . Just take some time to level up , grind required ^^
 
Experienced Elementalist
Joined
Apr 2, 2011
Messages
249
Reaction score
3
Wow you guys found out alot 0-0
Well I hope it would be enough for a PS :D
 
Experienced Elementalist
Joined
Apr 2, 2011
Messages
249
Reaction score
3
Creating a private server of a game takes more than just screwing with the client :p

Yeah I notice :D
but dont you need like database and all those stuff right? :D
also one question
could u guys explain this in simpler terms 0-0 for new peeps

Installing sql 2005 or more, then attack 2 is Db_Logs and Db_Tank db (1 db is not there anymore but the ldf file, but the db is not important) place sa 123,456 pass
- In the source directory server releasePatch the section runs
- By creating a folder d drive D: \ dandantang, then the Herman-PC \ workspace \ Servercopy out what's in it to D: \ dandantang
- At the Drive E: \ create directory E: \ ddtserver (PvE) and also copy everything that the Herman-PC \ workspace \ Server on
If there is to drive E releasePatch \ ... find the file of the form. Exe.config reconfiguration.
- Set the iis to run asp web
- Find the correct ip machine config file (many files)
- Temporary such as DC running server without being dis those still in the server error message.
- The most important but the file copy to C: \ Inetpub \ wwwroot to run the web host (still looking)
 
Last edited:
Junior Spellweaver
Joined
May 26, 2005
Messages
101
Reaction score
6
Installing sql 2005 or more, then attack 2 is Db_Logs and Db_Tank db (1 db is not there anymore but the ldf file, but the db is not important) place sa 123,456 pass
- In the source directory server releasePatch the section runs
- By creating a folder d drive D: \ dandantang, then the Herman-PC \ workspace \ Servercopy out what's in it to D: \ dandantang
- At the Drive E: \ create directory E: \ ddtserver (PvE) and also copy everything that the Herman-PC \ workspace \ Server on
If there is to drive E releasePatch \ ... find the file of the form. Exe.config reconfiguration.
- Set the iis to run asp web
- Find the correct ip machine config file (many files)
- Temporary such as DC running server without being dis those still in the server error message.
- The most important but the file copy to C: \ Inetpub \ wwwroot to run the web host (still looking)
please do it in someplace else like... here
 
Newbie Spellweaver
Joined
Dec 21, 2008
Messages
48
Reaction score
19
if anybody needs a beta key lemme know with a pm or quote to this post and i will be more than happy to give mine out.

i got it in my email a while ago, so dont know if it is needed anymore
 
Custom Title Activated
Loyal Member
Joined
Mar 30, 2006
Messages
2,533
Reaction score
114
I'm still waiting for my Sash- I mean Natasha :p

 
DRGunZ 2 Creator
Loyal Member
Joined
Jan 21, 2007
Messages
4,493
Reaction score
161
Haha, yeah. Natasha is going to rule. I love gunslingers.

There was some news about the state of the game and what is coming up in upcoming patches.
Topics include: Stamina, Level of Difficulty, PvP Changes, Quest and Dungeon Changes, and Item and Gear Changes.


There is also the Rusty Hearts Dev Diary #3:
 
We are Maverick!
Loyal Member
Joined
Feb 27, 2009
Messages
2,913
Reaction score
1,000
Removal of stamina = good
Increase difficulty = great (Solo'ing VH shouldn't be possible imo)
PvP = sounds good
New items and gear = yay
Quests and dungeons = maybe they will yeild more EXP now.
 
DRGunZ 2 Creator
Loyal Member
Joined
Jan 21, 2007
Messages
4,493
Reaction score
161
I agree with everything you said Dell Honne. They sent everyone a survey in their e-mail accounts. Go do that if you haven't.
 
We are Maverick!
Loyal Member
Joined
Feb 27, 2009
Messages
2,913
Reaction score
1,000
Still waiting for my free item...
 
Initiate Mage
Joined
Jul 15, 2008
Messages
1
Reaction score
4
RUSTY HEARTS GAME PROTECTION:

The game protection on this game is weak:
- MPatcher.exe contains the keys to decrypt f00X.dat, and this program doesn't have any PE packing. Just hook up a debugger and watch it unpack the MIP files that it receives while patching to figure out how to do f00X.dat.
- The CRC table is also available from MPatcher.exe.
- XTrap can be seen from the Task Manager and Process Explorer.
- IDA Pro can continue to run while XTrap is running
- No PE Protection on RustyHearts.exe
- Very non-random AES key.
- The AESIV used for decryption is located right next to the Rijndael SBox in the executable which makes it very easy to find.

I would strongly encourage the development team at Perfect World Entertainment to beef up their security.

RUSTY HEARTS UNPACKING:

All of the files which I refer to are available in the ZIP file in this post.

The file directory is stored in f00X.dat. The encryption on f00x.dat is an extremely simple static stream cipher. The stream cipher is attached in the file called "RustyHearts.keys".

There is a crc32 also implemented to check file integrity. Although I have not included the calculation in the python scripts attached, I have included the CRC Table in "RustyHearts.crc".

Once you've decrypted f00X.dat by XORing it with the RustyHearts.keys, decompress it with zlib. Then you can fetch the directoryTree:

Code:
directoryTreeFile
{
    fileName (UTF-16 string)
	packFileNumber (byte)
	fileLength (int32)
	fileChecksum (int32)
	fileOffset (int32)
	nulls (int32)
}

Now that you have the directory tree, simply open up the PCK file represented by directoryTreeFile.packFileNumber, seek to the directoryTreeFile.fileOffset, and then read directoryTreeFile.fileLength bytes and write out to the file given by directoryTreeFile.fileName.

WARNING: There are some fileNames which are in asian languages. This may not play nicely with English on Windows 7. It didn't for me!

After you get the files unpacked, then you'll want to unpack the Rusty Hearts tables (located in "/table/" with suffix ".rh"). These are encrypted with AES-256.

AESKey = gkw3iurpamv;kj20984;asdkfjat1af\0
AESIV = 0xDB0F4940
AESMode = ECB

For the AESKey, that's 31 characters followed by a null terminator. The null terminator is required for the AES cipher to function. Decrypt the ".rh" files.

The tables are fairly simple:

Code:
rhFile
{
	numRows (int32)
	numColumns (int32)
	columnNames (array of strings)
	columnTypes (array of int32)
	rowData
}

Code:
ENUM columnTypes
{
	int32 = 0
	float32 = 1
	string = 3
	int64 = 4
}

I haven't found anywhere that uses a columnType of 2.

From this point in the file, it's just a matter of reading all of the row data which should be extremely straightforward.

For the unpacker, you will need the following:

Python 2.6 ( )
NumPy ( )
PyCrypto ( )

There is a hash that's used in Service.dat. That would be SHA-1. I don't know what it's hashing at the moment.
 

Attachments

You must be registered for see attachments list
DRGunZ 2 Creator
Loyal Member
Joined
Jan 21, 2007
Messages
4,493
Reaction score
161
Damn, that's nice. Even tough I didn't understand a word :/
Thanks for the share though, can help those who do understand.

By the way guys, they have a new interview and a new first-look created for it.



Also, scheduled maintenance will start today at 10pm PST/1am EST, and will be scheduled every Tuesday at the same time.
 
Initiate Mage
Joined
Apr 3, 2012
Messages
1
Reaction score
0
hello,

I looks simple but even if I've a bit of knowledge about programing, I don't know python at all.

I need to acces the rusty hearts tables because I'm working a on rusty hearts wiki, I need dialogs and such...

Is there a way to get an exacutable version (for windows) of this unpacker, because if I understood it right with your unpacker we can decrypt those tables.

Thanks to at least reply.
Regards.
 
Junior Spellweaver
Joined
Oct 31, 2007
Messages
192
Reaction score
59
Hey elfine,
Since python is an interpreter for py files, here a little guide for you to get this done:
Install Python
Install Numpy
Install Pycrypto
Add Python bin dir to path
Open up Console and type this:
python scriptname.py
Add parameters after the script if needed.
???????????
Profit!

Sent from my GT-I9100 with Tapatalk
 
Creator of Code
Joined
Mar 5, 2006
Messages
371
Reaction score
131
i noticed that you get names on in the channel list if you copy the encrypted channellist.rh from the client into the table dir on the server.
 
Creator of Code
Joined
Mar 5, 2006
Messages
371
Reaction score
131
I have noticed that my app is a bit buggy, wont fix it right now instead i will give you something else:

e77989ed21758e78331b20e477fc5582 - dev (no xtrap it seems) - Game runs
9c285fc4f99ab149f8a6eb1884c7c215 - kor (korean xtrap?) - Game wont run
ada53304c5b9e4a839615b6e8f908eb6 - usa (USA xtrap?) - Game runs
7ed6a8fb7b7dc82d82ff922c89d51701 - kor_beta (korean xtrap?) - Game wont run
d91d0a6eb59f71238ff572a944babe8c - usa_beta (USA xtrap?) - Didnt try to run

This is put in Service.dat, i havent tried them out. Dev cant login but i think its because the server im trying on is in usa mode.
 
Status
Not open for further replies.
Back
Top