Eudemons Server Files!!!

12/18/2007 14:26 forcer#16
I have compatible client, however I don't know how to set password for new account in database. client always refuses to connect(bad user/password)
12/18/2007 22:53 forcer#17
We are getting somewhere I think.. I found that private server's client does have different ini/GameSetUp.ini from latest english EO client. I realised that Chinese Private Client is able to connect to the server(well not connect, but at least we see login attempts in log), however english is not able to do so.
I have tried to remove additional line from original english:
Code:
[AccountServer]
91U=0
and now, I see my login tries in debug_sql.log (located in Account Server dir). however I'm not able to set correct password in account table, maybe somekind of hash function is used for this?
I have tried this with latest Eng. Eudemons client(with all patches)

So we need only to play around the database now.
:ibbanana:

btw, when you create oem.ini in
ini/ folder with contents:
Code:
[Oem]
Id=2010
; maybe something else can be here?

[AccountSetup]
Type=1

[ServerInfo]
URL=http://whatever you like.txt

[ServerStatus]
Link=http://whatever you like.txt

[Header]
GroupAmount=1
Group1=GroupName

[Group1]
ServerAmount=1

Server1=ServerName
Ip1=127.0.0.1
Pic1=Server1
ServerName1=ServerName
you will bypass default server.dat

(edited because fix was in other file ;)
12/19/2007 06:58 rookiehacker#18
maybe i can find sometime this weekend to help out...but it looks like forcer is kicking butt
12/19/2007 10:23 forcer#19
[Only registered and activated users can see links. Click Here To Register...]
sucess!
All works as it should.
only things I have done are:
- extend password column in account table to 32 characters
- thanks to snaity from other forum, I got md5 hash algorithm used for password.
copy&paste this to blank html in notepad, and you will have working password-generator.
first field is your password, second the hash.
HTML Code:
<html>
<script language="JavaScript">
<!--
var hex_chr = "0123456789abcdef";
function rhex(num)
{
 str = "";
 for(j = 0; j <= 3; j++)
 str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) +
 hex_chr.charAt((num >> (j * 8)) & 0x0F);
 return str;
}
function str2blks_MD5(str)
{
 nblk = ((str.length + 8) >> 6) + 1;
 blks = new Array(nblk * 16);
 for(i = 0; i < nblk * 16; i++) blks[i] = 0;
 for(i = 0; i < str.length; i++)
 blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);
 blks[i >> 2] |= 0x80 << ((i % 4) * 8);
 blks[nblk * 16 - 2] = str.length * 8;
 return blks;
}
function add(x, y)
{
 var lsw = (x & 0xFFFF) + (y & 0xFFFF);
 var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
 return (msw << 16) | (lsw & 0xFFFF);
}
function rol(num, cnt)
{
 return (num << cnt) | (num >>> (32 - cnt));
}
function cmn(q, a, b, x, s, t)
{
 return add(rol(add(add(a, q), add(x, t)), s), b);
}
function ff(a, b, c, d, x, s, t)
{
 return cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function gg(a, b, c, d, x, s, t)
{
 return cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function hh(a, b, c, d, x, s, t)
{
 return cmn(b ^ c ^ d, a, b, x, s, t);
}
function ii(a, b, c, d, x, s, t)
{
 return cmn(c ^ (b | (~d)), a, b, x, s, t);
}
function MD5(str)
{
 x = str2blks_MD5(str);
 var a = 1732584193;
 var b = -271733879;
 var c = -1732584194;
 var d = 271733878;
 for(i = 0; i < x.length; i += 16)
 {
 var olda = a;
 var oldb = b;
 var oldc = c;
 var oldd = d;
 a = ff(a, b, c, d, x[i+ 0], 7 , -680876936);
 d = ff(d, a, b, c, x[i+ 1], 12, -389564586);
 c = ff(c, d, a, b, x[i+ 2], 17, 606105819);
 b = ff(b, c, d, a, x[i+ 3], 22, -1044525330);
 a = ff(a, b, c, d, x[i+ 4], 7 , -176418897);
 d = ff(d, a, b, c, x[i+ 5], 12, 1200080426);
 c = ff(c, d, a, b, x[i+ 6], 17, -1473231341);
 b = ff(b, c, d, a, x[i+ 7], 22, -45705983);
 a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
 d = ff(d, a, b, c, x[i+ 9], 12, -1958414417);
 c = ff(c, d, a, b, x[i+10], 17, -42063);
 b = ff(b, c, d, a, x[i+11], 22, -1990404162);
 a = ff(a, b, c, d, x[i+12], 7 , 1804603682);
 d = ff(d, a, b, c, x[i+13], 12, -40341101);
 c = ff(c, d, a, b, x[i+14], 17, -1502002290);
 b = ff(b, c, d, a, x[i+15], 22, 1236535329);
 a = gg(a, b, c, d, x[i+ 1], 5 , -165796510);
 d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
 c = gg(c, d, a, b, x[i+11], 14, 643717713);
 b = gg(b, c, d, a, x[i+ 0], 20, -373897302);
 a = gg(a, b, c, d, x[i+ 5], 5 , -701558691);
 d = gg(d, a, b, c, x[i+10], 9 , 38016083);
 c = gg(c, d, a, b, x[i+15], 14, -660478335);
 b = gg(b, c, d, a, x[i+ 4], 20, -405537848);
 a = gg(a, b, c, d, x[i+ 9], 5 , 568446438);
 d = gg(d, a, b, c, x[i+14], 9 , -1019803690);
 c = gg(c, d, a, b, x[i+ 3], 14, -187363961);
 b = gg(b, c, d, a, x[i+ 8], 20, 1163531501);
 a = gg(a, b, c, d, x[i+13], 5 , -1444681467);
 d = gg(d, a, b, c, x[i+ 2], 9 , -51403784);
 c = gg(c, d, a, b, x[i+ 7], 14, 1735328473);
 b = gg(b, c, d, a, x[i+12], 20, -1926607734);
 a = hh(a, b, c, d, x[i+ 5], 4 , -378558);
 d = hh(d, a, b, c, x[i+ 8], 11, -2022574463);
 c = hh(c, d, a, b, x[i+11], 16, 1839030562);
 b = hh(b, c, d, a, x[i+14], 23, -35309556);
 a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
 d = hh(d, a, b, c, x[i+ 4], 11, 1272893353);
 c = hh(c, d, a, b, x[i+ 7], 16, -155497632);
 b = hh(b, c, d, a, x[i+10], 23, -1094730640);
 a = hh(a, b, c, d, x[i+13], 4 , 681279174);
 d = hh(d, a, b, c, x[i+ 0], 11, -358537222);
 c = hh(c, d, a, b, x[i+ 3], 16, -722521979);
 b = hh(b, c, d, a, x[i+ 6], 23, 76029189);
 a = hh(a, b, c, d, x[i+ 9], 4 , -640364487);
 d = hh(d, a, b, c, x[i+12], 11, -421815835);
 c = hh(c, d, a, b, x[i+15], 16, 530742520);
 b = hh(b, c, d, a, x[i+ 2], 23, -995338651);
 a = ii(a, b, c, d, x[i+ 0], 6 , -198630844);
 d = ii(d, a, b, c, x[i+ 7], 10, 1126891415);
 c = ii(c, d, a, b, x[i+14], 15, -1416354905);
 b = ii(b, c, d, a, x[i+ 5], 21, -57434055);
 a = ii(a, b, c, d, x[i+12], 6 , 1700485571);
 d = ii(d, a, b, c, x[i+ 3], 10, -1894986606);
 c = ii(c, d, a, b, x[i+10], 15, -1051523);
 b = ii(b, c, d, a, x[i+ 1], 21, -2054922799);
 a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
 d = ii(d, a, b, c, x[i+15], 10, -30611744);
 c = ii(c, d, a, b, x[i+ 6], 15, -1560198380);
 b = ii(b, c, d, a, x[i+13], 21, 1309151649);
 a = ii(a, b, c, d, x[i+ 4], 6 , -145523070);
 d = ii(d, a, b, c, x[i+11], 10, -1120210379);
 c = ii(c, d, a, b, x[i+ 2], 15, 718787259);
 b = ii(b, c, d, a, x[i+ 9], 21, -343485551);
 a = add(a, olda);
 b = add(b, oldb);
 c = add(c, oldc);
 d = add(d, oldd);
 }
 return rhex(a) + rhex(b) + rhex(c) + rhex(d);
}

function login(txtPassword)
{
	var a = txtPassword;
	var b = "xa3xacxa1xa3";
	var c = "fdjf,jkgfkl";
	var s =  a+b+c;
	var r = MD5(s);	
	return r;
}

-->
</script>

<form name="val">
<input name="pwd">
<input name="md5hash">
<input type="button" value="generate" OnClick="val.md5hash.value = login(val.pwd.value)"
</form>
12/19/2007 13:43 Yup#20
So, give me a step by step tutorial on how to make my own. Starting from when I first download the server files.
12/19/2007 14:24 mihatud03#21
Omg grats forcer bro I'm with u 100% even though I know absolute nothing about programing. A server without EP and TQ...heaven!
12/19/2007 15:55 forcer#22
The Guide
  1. make sure you have at least 1GB ram!!!
  2. extract server files wherever you like
  3. install mysql(when asked for database password use 'test'),
  4. Extract files from data.rar to mysql installation directory(C:\Program Files\MySQL\MySQL Server XX\)
  5. copy your whole installed english client to whenever you like.
  6. edit ini/GameSetUp.ini as I written before
  7. create client/ini/oem.ini using example I written before
    then you'll need to also change ini files:
    hint:
    filename -> fields to change
    client/ini/oem.ini -> Server1, ServerName1
    server/ACCServer/config.ini -> GAMESERVER, SERVERNAME
    server/GameServer/shell.ini -> GAMESERVER
    server/GameServer/config.ini -> GAMESERVER

    all those values must match one string, for example MyLocalServer(this replaces chinese characters)
  8. execute this under mysql command line client(can be found start->programs->mysql server->mysql command line)
    (use 'test' as a password)
    Code:
    SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('test');
    ALTER TABLE `account`.`account` MODIFY COLUMN `password` VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;
    insert into account.account (name,password,reg_date) values ('test','53b6320eb06e2c62888a6d1739cd24bd',now());
    grant all on account.* to 'ODBC'@'localhost';
    grant all on my.* to 'ODBC'@'localhost';
    • will set 'old-fashioned' mysql password
    • will change column password to 32 character varchar.
    • importantly will create new EO account 'test' with password 'test'
    • insert mysql user ODBC, which will eliminate annoying messages when running AccountServer
  9. run the server(first AccountServer.exe, then MsgServer.exe then NPCServer.exe)
  10. try to run your modified client and login with user test password test
  11. best is to create shortcut that runs soul.exe with parameter blacknull
12/19/2007 16:37 forcer#23
hope someone will give me a thanks at least :) this was 3 nights no-sleep
12/19/2007 18:21 mihatud03#24
*thanks* :)
Good luck, since EO is dying I think a private server will beat tq's
12/19/2007 21:33 forcer#25
I'm curious about server messages.. those are really annoying(all in chinese), and I can't find any place where all those are stored, I fear they are directly in EXE files.. this would be very sad
12/20/2007 16:48 nooneatall#26
which client do you use to get it to work?
latest client with 1086 patch doesnt work at all :/
12/20/2007 18:17 forcer#27
you need to change GameSetUp.ini as I wrote above.
also oem.ini
12/20/2007 18:48 bisiol#28
Hi.
when i run account server i see that error popup on start:
Quote:
DB real connect error: Access denied for user 'ODBC'@'localhost' (using password: NO)
12/20/2007 19:54 nooneatall#29
also u need to put the same servername u set in Oem.ini in this 4 files also..
in folder ACCserver edit this 2 files... config.ini and account.ini and put same servername as u put in Oem.ini... and in GameServer do the same in this 2 files: config.ini, shell.ini
12/20/2007 20:14 forcer#30
Quote:
Originally Posted by bisiol View Post
Hi.
when i run account server i see that error popup on start:
you can ignore that error. or create new ODBC user in mysql.