- Joined
- Jul 12, 2007
- Messages
- 417
- Reaction score
- 24
Hmm okay tell me if you would need a web developer ;o
I would like to help to speed up things ;o
I would like to help to speed up things ;o
Well I found something good. It could probably help you outKillerStefan said:== Client Modification ==
patch.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<patcher>
<zonelist>
<zone name="USA">
<host>tr-game01.gpotato.com:9500</host>
<patch host="download4.gpotato.com" path="/Talesrunner/patch/" />
</zone>
</zonelist>
<program defaultparam="gpotato" />
</patcher>
This file is in the directory of the USA version as well as in the tr4.pkg file but for the Korean version it's only in tr4.pkg.
I don't know about other clients, please check this!
You can overwrite this by using parameters on trgame.exe but it seems to be overwritten upon login.
I don't have a host so I can't do it. So far, I got till the starter's "hashing" part.<?xml version="1.0" encoding="utf-8"?>
<patcher>
<zonelist>
<zone name="USA">
<host></host>
<patch host="download.talesrunner.com" path="/Talesrunner/patch/"
/>
</zone>
</zonelist>
<program defaultparam="gpotato" />
</patcher>
EDIT: Checked if my database is already connected.I'd just like to point out that you don't even need an external host since you can just point it to 127.0.0.1 and have a local server catch it and pass back the info. I already have a basic one created in python when I was playing around with this a few weeks ago.
EDIT: Checked if my database is already connected.
It is. It's connected to both localhost and 127.0.0.1 but it keeps showing a connection error. I guess I'll have to wait for KillerStefan to release more stuff.
I can't open roomserver and agentserver but i see in task manager
So now I can have my client connect to the local loadbalanceserver.exe, but it sends an incorrect hash, and loadbalanceserver rejects it. I'll look into this more.
GET_MINUSERS_SERVER_REQ : 192.168.0.12:30850(:0)
onClosed:index=131073, closeType=2
Client disconnected : 65536
You're welcome!
If you're interested in how it works: the ODBC connection information is stored in dbsetting.ini, an encrypted file.
When I found the decrypting function in the server executable, I only had to decompile it and make a little app to use it.
I didn't really research how the en-/decryption actually works, but it shouldn't be too hard to figure out when you have the (decompiled) source.
Source code:To view the content, you need to sign in or register
License: Do whatever you want with it! (public domain)
One request: if you figure out how en-/decryption works, make it public.
Edit: Updated file location.
byte[] buffer = new byte[] {0xB5, 0X9C, 0x19, 0xAE, 0x0C, 0xDC, 0x9F, 0x81, 0xE0, 0x24, 0xD2, 0x5D, 0x33, 0xC1, 0x86, 0x4B, 0x0A, 0x57, 0x5F, 0x3B};
int s = 1;
for (int i = 0; i < buffer.Length; i++)
{
byte b = buffer[i];
buffer[i] = (byte)(((buffer[i] << (7 - s % 7)) | (byte)(buffer[i] >> (8 - (7 - s % 7)))) - s % 255 - 1);
s = (b + s + 1) % 1785;
}
Console.WriteLine(Encoding.ASCII.GetString(buffer));
korea
sa
talesrunner
The byte buffer is simply the dbsetting.ini in hex values. From reading the code it should be fairly clear what is happening here (compared to if you were to use the assembly functions). It should be possible to create an encoding function based on this.
D51205B284CF4DEF3DF05C26894D521E6D1C9C1AF9770BDA32C59D8E3E
Normally I would share the source code/compiled binaries for it, but seeing as how nobody else is working on this (or at least not talking about it, or sharing what they've found), I won't be posting this.
51DA5E3DE8134E01E95CB183F7822875B0A8AEA6AD7C1440D09916DAB6D6502D3E8764BA9B408A889904E70783FD778EF60B0776F175E96E1A6BBC42C4125A6EA68E0F0E345A110E3E4EDFD6C74D82BF29DDBF8B87734585FDFFDE29B02DE4ADBC99C4272EFF67878F3C77B7BF9984DBAAA27E09BDF964D43ED8C8EA1112260945E8F397D2528BCD3702301D21647A3BCE22A888F6EB7530B870707DC78973FCC5DB0DCD60854E8BA851CE099A8AF6F016DAAA3DBDFEFBA64BF2DAB6F0B5F12C236CFD4C41AC00C360277A6C83C35CFBBDE624C6E76B832BD97AC3CAB2BCDDC2E2F0A37F2FAA2BBCF045CC9AA7AC397EBB57A0539D46864DAB03B146C5C737F892B2663FA013DE45E71BEBF0048F4B26B991520C16E4F11B6577E28279B048BF60E05D2CA34772BBDBDCCCAB99670E222D889B1E36A25B8153DC1F386720BA4C8A70D6BBD28CA8F8D186493CE0404F86915DF4EE6BE21071F7E65837A8F8D6DA84E8E0B7A6A8E77F85143501E5C0158F200A635030CC59D813D4F3E5BA04E0603684D0971C