Luigi Auriemma

aluigi.org (ARCHIVE-ONLY FORUM!)
It is currently 19 Jul 2012 14:44

All times are UTC [ DST ]





Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 149 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Author Message
 Post subject:
PostPosted: 04 Nov 2007 22:38 

Joined: 24 Oct 2007 00:44
Posts: 26
Yeah, we need to be able to use the jk2 1.03 dedicated server for 1.02, so that we can use the 1.03 source code in 1.02.

Oh and, server side lol, since not everyones gonna download it..


Top
 Profile  
 
 
 Post subject:
PostPosted: 04 Nov 2007 22:54 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
Exactly was I meant, in fact the check is server side.
Do you need the modification for teh Linux or Windows executable?


Top
 Profile  
 
 Post subject:
PostPosted: 04 Nov 2007 23:28 

Joined: 24 Oct 2007 00:44
Posts: 26
Windows, and Linux lol


Top
 Profile  
 
 Post subject:
PostPosted: 04 Nov 2007 23:36 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
For Windows 1.02c go at offset 0x26EE2, you should find the byte 0x74, substituite it with 0xeb
For Linux, wait tomorrow ih ih ih


Top
 Profile  
 
 Post subject:
PostPosted: 05 Nov 2007 00:04 

Joined: 24 Oct 2007 00:44
Posts: 26
Well I edited 1.03a dedicated exe, but now I get a client side error:
CL_ParsePacktEntities: End of message
So I set sv_pure to 0, then I get a bad animation number: 1100 error.


Last edited by Some Guy Named Dave on 05 Nov 2007 03:05, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: 05 Nov 2007 02:12 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
what!??! ok totally confused lol

1. i did not find offset 0x36ee2

2. we're trying to let 1.02 people connect to 1.03a, so don't know why u said to look in 1.02c

3. err what?

4. how do u know where to put it?


Top
 Profile  
 
 Post subject:
PostPosted: 05 Nov 2007 11:25 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
Windows 1.03: 28A12 - 74 -> EB
Linux 1.03a: 1b0f - 74 -> EB


Last edited by aluigi on 05 Nov 2007 22:25, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: 05 Nov 2007 21:48 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
err what? what do we do with that, it couldnt find those

(1.03a jk2ded windows)


Top
 Profile  
 
 Post subject:
PostPosted: 05 Nov 2007 22:27 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
the offsets to change with your hex editor:
hexadecimal offset - old byte -> new byte


Top
 Profile  
 
 Post subject:
PostPosted: 05 Nov 2007 22:43 

Joined: 24 Oct 2007 00:44
Posts: 26
aluigi wrote:
Windows 1.03: 28A12 - 74 -> EB

Are you sure? There isnt a 74 there, but a 40.


Top
 Profile  
 
 Post subject:
PostPosted: 05 Nov 2007 22:48 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
yeah definitly only a 40, no 74 there


Top
 Profile  
 
 Post subject:
PostPosted: 05 Nov 2007 23:07 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
jk2ded.exe v1.03, the offset is right


Top
 Profile  
 
 Post subject:
PostPosted: 06 Nov 2007 00:45 

Joined: 24 Oct 2007 00:44
Posts: 26
Ok, I thought you ment 1.03a lol. I patched the exe, and I still get the client errors.
Bad Animation number: 1100.


Top
 Profile  
 
 Post subject:
PostPosted: 06 Nov 2007 01:06 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
eh my error was

Cl_ParsePacketEntities


Top
 Profile  
 
 Post subject:
PostPosted: 06 Nov 2007 01:17 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
blarg


Last edited by evan1715 on 21 Jan 2008 19:07, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: 06 Nov 2007 17:20 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
Dave:
"Bad Animation number: 1100" is normal since allowing an old client to join doesn't mean that it's compatible with the server. Trying is never bad but you must be prepared to compatibility issues.

evan:
the "blah blah" is just the confirmation of the 1.03a patch when I told you that the bug is NOT the q3msgboom bug, the fact that my PoC can be used to exploit this other server-side bug means only that you need to send a lot of data to the server. stop.

Now the patch:
the main difference between the two executables is just in the "Netchan_Process" message which has been removed, but I have not checked if have been implemented other optimized functions (for giving an example of what I mean: snprintf instead of sprintf).

You can try to modify the following bytes in jk2ded.exe 1.02c:
offset 11B5D, from byte 7E to EB

If this doesn't work, I repeat that "I don't support old versions" so I don't have desire to spend other time on it.


Top
 Profile  
 
 Post subject:
PostPosted: 06 Nov 2007 22:09 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
blarg


Last edited by evan1715 on 21 Jan 2008 19:07, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: 08 Nov 2007 22:23 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
blarg


Last edited by evan1715 on 21 Jan 2008 19:08, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: 10 Nov 2007 02:47 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
blarg


Last edited by evan1715 on 21 Jan 2008 19:08, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: 10 Nov 2007 11:40 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
The function is ConcatArgs located in game\g_cmds.c
This function is used for rebuilding the command sent by the client as an unique string instead of the various argv[0], argv[1] and so on.


Top
 Profile  
 
 Post subject:
PostPosted: 10 Nov 2007 15:46 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
blarg


Last edited by evan1715 on 21 Jan 2008 19:08, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: 10 Nov 2007 15:56 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
1024 is MAX_STRING_CHARS
the modification I did was from:

if ( len + tlen >= MAX_STRING_CHARS - 1 ) {

to:

if ( len + tlen >= 896 ) {


Top
 Profile  
 
 Post subject:
PostPosted: 10 Nov 2007 21:26 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
blarg


Last edited by evan1715 on 21 Jan 2008 19:08, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: 10 Nov 2007 22:34 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
Take a look to ClientUserinfoChanged in game/g_client.c
all the changes of nicknames and other options of the clients pass from this function (which as you can see is called also by ClientConnect which is the first function called when a client joins).
Info_ValueForKey is used for getting the cvars sent by the client and "name" contains its name.


Top
 Profile  
 
 Post subject:
PostPosted: 10 Nov 2007 22:34 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
Take a look to ClientUserinfoChanged in game/g_client.c
all the changes of nicknames and other options of the clients pass from this function (which as you can see is called also by ClientConnect which is the first function called when a client joins).
Info_ValueForKey is used for getting the cvars sent by the client and "name" contains its name.


Top
 Profile  
 
 Post subject:
PostPosted: 11 Nov 2007 14:45 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
I don't know if this works but try the attached patch for jk2 1.02c about the netchan bug


Attachments:
jk2_102_fix.lpatch [609 Bytes]
Downloaded 77 times
Top
 Profile  
 
 Post subject:
PostPosted: 11 Nov 2007 21:22 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
no that didn't work

and i had to download a new one because i tried it on my already patched jk2ded, patched from multircon, infoboom and q3dirtrav, and it said "there are no bytes to be patched"


Top
 Profile  
 
 Post subject:
PostPosted: 11 Nov 2007 22:24 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
the bytes searched by this experimental patch are not modified by the other patches and I have rechecked it with version 1.02c of jk2ded for Windows.
Anyway, in short, it's just the removing of the Netchan error and the setting of the string size to 0x3fff if is longer or equal to 0x4000.
You can try it manually with a disassembler and a hex editor


Top
 Profile  
 
 Post subject:
PostPosted: 13 Nov 2007 04:02 

Joined: 05 Oct 2007 01:20
Posts: 402
Location: Florida
blarg


Last edited by evan1715 on 21 Jan 2008 19:09, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: 13 Nov 2007 11:30 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
I already compared that Netchan function between 1.03 and 1.03a and the only difference is just the complete removing of the Netchan error.
It's natural that there are other differences but having the full source code is one thing, spending hours comparing 2 executables is another.
Anyway the experimental modification I posted was my last tentative, if you want to fix these bugs upgrade to 1.04 or ask to someone else.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 149 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

All times are UTC [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for: