|
You last visited: Today at 21:06
Advertisement
[Development] C# sources
Discussion on [Development] C# sources within the EO PServer Hosting forum part of the Eudemons Online category.
06/29/2010, 21:22
|
#31
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by DEADP00L
keep goin hio, your doing awesome man
|
no intention on giving up  i really want to push us into new possibles etc ... a few people tried to start a group to do this but they seemed to have flopped so its my turn lol
Quote:
Originally Posted by funhacker
Yes that's been out there for a while (the NPC thing) as when you notice the client has it's own way of interpreting the cq_action thus the old dat file that can still be found in the client.
|
yea ... its interesting how it does that lol ... with co you just change the packet type so its gonna need a bit of a rework with that  but ill get there lol
Quote:
Originally Posted by funhacker
You know that the packet encryption is pretty obvious?
|
it is? to me any encryption is like ugh lol
|
|
|
06/29/2010, 22:07
|
#32
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
It has a 4Byte XOR encryption of (A1 87 A9 8F) on your first line then (A1 8B A9 83) on your second line and so forth this continues or I guess you could say a 32 byte XOR of (A1 87 A9 8F A1 87 A9 8F A1 87 A9 8F A1 87 A9 8F A1 8B A9 83 A1 8B A9 83 A1 8B A9 83 A1 8B A9 83)
If you're not too sure about what this means just select the data you wish to XOR in winhex then somewhere there is a spot where you can do a calculation or something select XOR and input the 4bytes worth
|
|
|
06/30/2010, 07:00
|
#33
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by funhacker
It has a 4Byte XOR encryption of (A1 87 A9 8F) on your first line then (A1 8B A9 83) on your second line and so forth this continues or I guess you could say a 32 byte XOR of (A1 87 A9 8F A1 87 A9 8F A1 87 A9 8F A1 87 A9 8F A1 8B A9 83 A1 8B A9 83 A1 8B A9 83 A1 8B A9 83)
If you're not too sure about what this means just select the data you wish to XOR in winhex then somewhere there is a spot where you can do a calculation or something select XOR and input the 4bytes worth
|
to be honest even telling me that i have no idea what your saying lol! ... i think i needa read up on in
EDIT: There is now updates on the game server progress added to the first post
|
|
|
06/30/2010, 09:56
|
#34
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
ok XORing a byte of data will + or - the amount off the byte in question
Example
Encryption of FF and I had the following
20 (encrypted number)
I now do an Xor of FF
I get DF (this can be done with Win7 Programmer Window)
So the official number is 223
|
|
|
06/30/2010, 10:05
|
#35
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by funhacker
ok XORing a byte of data will + or - the amount off the byte in question
Example
Encryption of FF and I had the following
20 (encrypted number)
I now do an Xor of FF
I get DF (this can be done with Win7 Programmer Window)
So the official number is 223
|
i get the single byte stuff (modify data in winhex) but it is more the whole key that i get the issues with .... but the packet length don't look right ... idk if im doing it wrong or something though ... it only allows a 2 characters for the xor in that option
|
|
|
06/30/2010, 16:56
|
#36
|
elite*gold: 20
Join Date: Aug 2007
Posts: 606
Received Thanks: 563
|
did you actualy look at old EO sources I have released? it might be very helpful in packet reverse-engineering..
btw: finally I see someone doing something useful here, send me a message on IM if you need some help.
|
|
|
06/30/2010, 21:27
|
#37
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by forcer
did you actualy look at old EO sources I have released? it might be very helpful in packet reverse-engineering..
btw: finally I see someone doing something useful here, send me a message on IM if you need some help.
|
i have looked at it but to tell ya the truth they aint helped me much yet (i guess i aint read them enough though)
EDIT: do you know where exactly the packets are handled (in which project would be a good start for me  )
as a side note forcer did you used to be called blacknull lol? i just found something interesting in the source mentioning blacknull and acme
|
|
|
07/01/2010, 03:45
|
#38
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
Quote:
Originally Posted by hio77
i get the single byte stuff (modify data in winhex) but it is more the whole key that i get the issues with .... but the packet length don't look right ... idk if im doing it wrong or something though ... it only allows a 2 characters for the xor in that option
|
I have never used a built in function for encryption keys I have usually done my own functions
|
|
|
07/01/2010, 06:04
|
#39
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by funhacker
I have never used a built in function for encryption keys I have usually done my own functions
|
thats fine lol ill just work on a crypto for the server itself
|
|
|
07/01/2010, 07:42
|
#40
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
Code:
SQLExec("delete from cq_mapdestination;", myConnection);
SQLExec("delete from cq_mapdestination_mapcount;", myConnection);
FileStream fs = File.OpenRead(openFileDialog1.FileName);
BinaryReader br = new BinaryReader(fs);
PathCount = br.ReadInt32();
Paths = new MapData[PathCount];
int h = 0;
for (int i = 0; i < PathCount; i++)
{
if (h == 27)
{
h = 0;
}
Paths[i].Name = null;
Paths[i].Description = null;
for (int k = 0; k < 255; k++)
{
int Byte = br.ReadByte() ^ key[h];
Paths[i].Name += Convert.ToChar(Byte);
}
Paths[i].Name = Paths[i].Name.Replace(@"\b", "\r\n").Replace("~", " ");
for (int m = 0; m < 257; m++)
{
int Byte = br.ReadByte() ^ key[h];
Paths[i].Description += Convert.ToChar(Byte);
}
Paths[i].Description = Paths[i].Description.Replace(@"\b", "\r\n").Replace("~"," ");
uint[] rByte = new uint[4];
#region MenuID
Paths[i].menuid = Convert.ToUInt32(br.ReadByte() ^ key[h]);
if (h >= 18 && h <= 20)
{
Paths[i].menuid += Convert.ToUInt32(br.ReadByte()) * 256;
Paths[i].menuid += Convert.ToUInt32(br.ReadByte()) * 65536;
Paths[i].menuid += Convert.ToUInt32(br.ReadByte()) * 16777216;
}
else
{
Paths[i].menuid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 256;
Paths[i].menuid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 65536;
Paths[i].menuid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 16777216;
}
#endregion
#region Xpos
Paths[i].xpos = Convert.ToUInt32(br.ReadByte() ^ key[h]);
if (h >= 18 && h <= 20)
{
Paths[i].xpos += Convert.ToUInt32(br.ReadByte()) * 256;
Paths[i].xpos += Convert.ToUInt32(br.ReadByte()) * 65536;
Paths[i].xpos += Convert.ToUInt32(br.ReadByte()) * 16777216;
}
else
{
Paths[i].xpos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 256;
Paths[i].xpos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 65536;
Paths[i].xpos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 16777216;
}
#endregion
#region YPos
Paths[i].ypos = Convert.ToUInt32(br.ReadByte() ^ key[h]);
if (h >= 18 && h <= 20)
{
Paths[i].ypos += Convert.ToUInt32(br.ReadByte()) * 256;
Paths[i].ypos += Convert.ToUInt32(br.ReadByte()) * 65536;
Paths[i].ypos += Convert.ToUInt32(br.ReadByte()) * 16777216;
}
else
{
Paths[i].ypos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 256;
Paths[i].ypos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 65536;
Paths[i].ypos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 16777216;
}
#endregion
#region ParentID
Paths[i].parentid = Convert.ToUInt32(br.ReadByte() ^ key[h]);
if (h >= 18 && h <= 20)
{
Paths[i].parentid += Convert.ToUInt32(br.ReadByte()) * 256;
Paths[i].parentid += Convert.ToUInt32(br.ReadByte()) * 65536;
Paths[i].parentid += Convert.ToUInt32(br.ReadByte()) * 16777216;
}
else
{
Paths[i].parentid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 256;
Paths[i].parentid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 65536;
Paths[i].parentid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 16777216;
}
#endregion
#region MapID
Paths[i].mapid = Convert.ToUInt32(br.ReadByte() ^ key[h]);
if (h >= 18 && h <= 20)
{
Paths[i].mapid += Convert.ToUInt32(br.ReadByte()) * 256;
Paths[i].mapid += Convert.ToUInt32(br.ReadByte()) * 65536;
Paths[i].mapid += Convert.ToUInt32(br.ReadByte()) * 16777216;
}
else
{
Paths[i].mapid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 256;
Paths[i].mapid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 65536;
Paths[i].mapid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 16777216;
}
#endregion
listBox1.Items.Add(Paths[i].Name);
h++;
}
SQLUpdate(Paths);
this.Text = "Pathfinder Decryptor Paths[" + PathCount.ToString() + "]";
That's a snipet from my pathfinder app it shows the use of decryption
DecryptedByte = EncryptedByte ^ EncryptionKey;
That's how easy it is to decrypt files
|
|
|
07/01/2010, 23:56
|
#41
|
elite*gold: 20
Join Date: Aug 2007
Posts: 606
Received Thanks: 563
|
Quote:
Originally Posted by hio77
EDIT: do you know where exactly the packets are handled (in which project would be a good start for me  )
|
look in AccountServer/EncryptServer.h
there might be more, just search in all .cpp and .h for "encrypt" or "decrypt"
Quote:
|
as a side note forcer did you used to be called blacknull lol? i just found something interesting in the source mentioning blacknull and acme
|
blacknull? I don't think it's a nickname of someone I know... "soul.exe blacknull" is only case I can think of.
|
|
|
07/02/2010, 06:54
|
#42
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by funhacker
Code:
SQLExec("delete from cq_mapdestination;", myConnection);
SQLExec("delete from cq_mapdestination_mapcount;", myConnection);
FileStream fs = File.OpenRead(openFileDialog1.FileName);
BinaryReader br = new BinaryReader(fs);
PathCount = br.ReadInt32();
Paths = new MapData[PathCount];
int h = 0;
for (int i = 0; i < PathCount; i++)
{
if (h == 27)
{
h = 0;
}
Paths[i].Name = null;
Paths[i].Description = null;
for (int k = 0; k < 255; k++)
{
int Byte = br.ReadByte() ^ key[h];
Paths[i].Name += Convert.ToChar(Byte);
}
Paths[i].Name = Paths[i].Name.Replace(@"\b", "\r\n").Replace("~", " ");
for (int m = 0; m < 257; m++)
{
int Byte = br.ReadByte() ^ key[h];
Paths[i].Description += Convert.ToChar(Byte);
}
Paths[i].Description = Paths[i].Description.Replace(@"\b", "\r\n").Replace("~"," ");
uint[] rByte = new uint[4];
#region MenuID
Paths[i].menuid = Convert.ToUInt32(br.ReadByte() ^ key[h]);
if (h >= 18 && h <= 20)
{
Paths[i].menuid += Convert.ToUInt32(br.ReadByte()) * 256;
Paths[i].menuid += Convert.ToUInt32(br.ReadByte()) * 65536;
Paths[i].menuid += Convert.ToUInt32(br.ReadByte()) * 16777216;
}
else
{
Paths[i].menuid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 256;
Paths[i].menuid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 65536;
Paths[i].menuid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 16777216;
}
#endregion
#region Xpos
Paths[i].xpos = Convert.ToUInt32(br.ReadByte() ^ key[h]);
if (h >= 18 && h <= 20)
{
Paths[i].xpos += Convert.ToUInt32(br.ReadByte()) * 256;
Paths[i].xpos += Convert.ToUInt32(br.ReadByte()) * 65536;
Paths[i].xpos += Convert.ToUInt32(br.ReadByte()) * 16777216;
}
else
{
Paths[i].xpos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 256;
Paths[i].xpos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 65536;
Paths[i].xpos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 16777216;
}
#endregion
#region YPos
Paths[i].ypos = Convert.ToUInt32(br.ReadByte() ^ key[h]);
if (h >= 18 && h <= 20)
{
Paths[i].ypos += Convert.ToUInt32(br.ReadByte()) * 256;
Paths[i].ypos += Convert.ToUInt32(br.ReadByte()) * 65536;
Paths[i].ypos += Convert.ToUInt32(br.ReadByte()) * 16777216;
}
else
{
Paths[i].ypos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 256;
Paths[i].ypos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 65536;
Paths[i].ypos += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 16777216;
}
#endregion
#region ParentID
Paths[i].parentid = Convert.ToUInt32(br.ReadByte() ^ key[h]);
if (h >= 18 && h <= 20)
{
Paths[i].parentid += Convert.ToUInt32(br.ReadByte()) * 256;
Paths[i].parentid += Convert.ToUInt32(br.ReadByte()) * 65536;
Paths[i].parentid += Convert.ToUInt32(br.ReadByte()) * 16777216;
}
else
{
Paths[i].parentid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 256;
Paths[i].parentid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 65536;
Paths[i].parentid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 16777216;
}
#endregion
#region MapID
Paths[i].mapid = Convert.ToUInt32(br.ReadByte() ^ key[h]);
if (h >= 18 && h <= 20)
{
Paths[i].mapid += Convert.ToUInt32(br.ReadByte()) * 256;
Paths[i].mapid += Convert.ToUInt32(br.ReadByte()) * 65536;
Paths[i].mapid += Convert.ToUInt32(br.ReadByte()) * 16777216;
}
else
{
Paths[i].mapid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 256;
Paths[i].mapid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 65536;
Paths[i].mapid += Convert.ToUInt32(br.ReadByte() ^ 0xFF) * 16777216;
}
#endregion
listBox1.Items.Add(Paths[i].Name);
h++;
}
SQLUpdate(Paths);
this.Text = "Pathfinder Decryptor Paths[" + PathCount.ToString() + "]";
That's a snipet from my pathfinder app it shows the use of decryption
DecryptedByte = EncryptedByte ^ EncryptionKey;
That's how easy it is to decrypt files
|
Thanks
Quote:
Originally Posted by forcer
look in AccountServer/EncryptServer.h
there might be more, just search in all .cpp and .h for "encrypt" or "decrypt"
blacknull? I don't think it's a nickname of someone I know... "soul.exe blacknull" is only case I can think of.
|
hmmmm i think im looking in the wrong source lmfao
Code:
//////////////////////////////////////////////////////////////////////
// Purpose: base function for game
//
// WriteBy: blacknull 10-16-2002
//
// ModifyBy: blacknull 10-16-2002
//
// CopyRight: Acme Entertrainment, copyright 2002
//////////////////////////////////////////////////////////////////////
thats what im talking about btw forcer
|
|
|
07/02/2010, 14:24
|
#43
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
Could I make a suggestion hio? Since imo writing up the server binary files so they are open source requires almost as much work as making one of your own. Why not make our own Client/Server/Database setup. Honestly there is soooo much wasted space with EO it was poorly put together.. It has no functionality with multiple screen resolutions.. And we will still be limited to what official EO releases.
The plus side to making our own c# version of EO is for one there is a very nice package by Microsoft called XNA which makes programming with Direct X sooo much easier. Collisions and such are easily calculated and it has a basic game loop setup already for you. The biggest time cost these days in games are Graphics and Concept.. both of which are supplied by a EO client... XNA handles .dds files no problem at all I am sure if we rubbed up forcer enough he may be willing to ask that friend of his to write a little DLL file for loading .c3 files as workable mesh files or we could just convert them all to .3ds files..
Just I have a much better map design system then TQ ever had.. their's is **** over loaded and just another waste of space >.> I already have files like pathfinder and levexp sorted out and shop.dat itemtype.dat INI files it would require very little work compared to writing your own game just an idea I know I would be willing to spare some time when ever I had it to work on this it might bring me back to EO pserver community a little more full on
|
|
|
07/09/2010, 03:49
|
#44
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by funhacker
Could I make a suggestion hio? Since imo writing up the server binary files so they are open source requires almost as much work as making one of your own. Why not make our own Client/Server/Database setup. Honestly there is soooo much wasted space with EO it was poorly put together.. It has no functionality with multiple screen resolutions.. And we will still be limited to what official EO releases.
The plus side to making our own c# version of EO is for one there is a very nice package by Microsoft called XNA which makes programming with Direct X sooo much easier. Collisions and such are easily calculated and it has a basic game loop setup already for you. The biggest time cost these days in games are Graphics and Concept.. both of which are supplied by a EO client... XNA handles .dds files no problem at all I am sure if we rubbed up forcer enough he may be willing to ask that friend of his to write a little DLL file for loading .c3 files as workable mesh files or we could just convert them all to .3ds files..
Just I have a much better map design system then TQ ever had.. their's is crap over loaded and just another waste of space >.> I already have files like pathfinder and levexp sorted out and shop.dat itemtype.dat INI files it would require very little work compared to writing your own game just an idea I know I would be willing to spare some time when ever I had it to work on this it might bring me back to EO pserver community a little more full on 
|
it is a pretty good idea in many ways just one massive task lol ... a full client rewrite may aswell be making a whole new game
i just don't know if ild have the knowledge to be able to help out very much with it lol
i aint done much gfx work in the way of programing at all .. mainly just in making servers and stuff
but it may be a option we can certainly look at
and it would be a legal way lmfao 
|
|
|
07/10/2010, 05:24
|
#45
|
elite*gold: 90
Join Date: Feb 2008
Posts: 1,112
Received Thanks: 642
|
sorry that i ask this
but i am intrested to in the c# version
its nice to have a other version that is less limited then the mysql version ( i still love mysql :P)
anyway , the question i want to ask is if you got already a place to host ??
if not then i want to make you a nice offer
if you want for the project , i want to provide you a vps for it
but please contact me on msn about it so we can talk over it
you can find my msn on my profile
Thank you
Greetings From PowerChaos
|
|
|
 |
|
Similar Threads
|
help with sources
03/11/2010 - CO2 Private Server - 2 Replies
im tryin to use the NewestCO 5165 server source which probably wouldnt be bad if i could get the NewestCoServer.exe to load everytime i tried to start it up it opens up and then closes with no errors or anything i followed the guide for getting it running and it still didnt work. So, my question is, Does anyone know of a way to keep the NewestCoServer.exe from closing down all the time or maybe someone knows of a decent 5165 source that i can DL? Any help is greatly appreciated
|
Looking For TQ Bin Sources
09/12/2009 - CO2 Private Server - 4 Replies
hey all :handsdown:
Who have the Latest Bin ?
Who have Bin Source website ?
link of Bin >> Fixed Bin
OR who Have it just Mailing me at Signature !
Any Mod. Please Give aperiod to me may i get what i Need !
4botters TEAM !
|
For using sources?
04/18/2009 - CO2 Private Server - 3 Replies
whats the best source to use as a beginner p-server maker
and whats the best source to use as a pro
|
BWH-Sources
06/11/2006 - General Coding - 9 Replies
Hi,
weiß jemand wo ich den BWH Source herbekommen kann?
Würd mich mal intressieren wie der genau arbeitet,meine Trainer
beschränken sich nämlich aufs Offset Patchen,von Offset auslesen etc. kann
nicht die Rede sein,die sind immer fest eincompiliert :/
Naja in Google hab ich jedenfalls nichts finden können...bis auf erschreckend viele Pornoseiten :?
Danke im voraus,
Xalon
|
All times are GMT +1. The time now is 21:07.
|
|