Jump to content

Server Version needs Update


Kitarity

Recommended Posts

nope. i think left4downtown needs to be updated. I may be able to do that myself

 

checked, yes, l4downtown2 needs to be updated. I wou8ld, but its the 4th and i need to go blow stuff up. sorry guys. if it's not fixed tomorrow ill do it myself. If anyone knows reverse engineering and understands function signatures message me, I will need help.

Link to comment
Share on other sites

nope. i think left4downtown needs to be updated. I may be able to do that myself

 

checked, yes, l4downtown2 needs to be updated. I wou8ld, but its the 4th and i need to go blow stuff up. sorry guys. if it's not fixed tomorrow ill do it myself. If anyone knows reverse engineering and understands function signatures message me, I will need help.

 

Msg me on steam if you need help with their C functions.

Link to comment
Share on other sites

currently downloading the linux and windows servers, so i thought id write an explanation of what is going on for any aspiring hackers (and to get my mind in the zone)

 

When people create applications they use a high or mid level language like c++. for example:

int add(int a, int {
return a+b;
}

 

Now, the processor doesn't know what to do with the above because the processor only works with a language called assembly. Assembly looks like this roughly for the above function (I haven't written asm for like 8 years so this may be a bit off):

pop eax
pop ebx
add ebx, eax
push ebx

This code is represented in binary/hex in the actual computer. For example the above may be stored as "48 a4 bc 02 59". Plugins like left4downtown hook into functions to allow us to process data before it is sent into the function. In order to hook into these functions the plugin needs to know where they are, and this is where crap hits the fan.

 

We can't use the actual location because that changes with every new version of the server and fixing it would be totally inefficient. So sourcemod uses function signatures, which are basically a unique set of bytes found only one place in the file. In the above example the signature would be "x48xa4xbcx02x59". When ever the plugin loads it scans the file for these bytes and hooks the function as needed

 

With the recent server modification these signatures changed because valve implemented linux and now all of these signatures are invalid. For example "x48xa4xbcx02x59" may actually be "x11xa4xaax02x50". So my job is to find these new signatures.

 

Normally this is near impossible without debugging techniques, but we have and advantage- linux. In linux files function addresses are stored in a vtable. This vtable says something like "add 0x4001001" which means function add is at address 4001001. Windows does not have a similaer vtable which is why we use function signatures. So using the linux address I can get a rough idea of where the function is in windows and search the windows file to find similar logic. i then need to get the unique bytes, save them in the left4downtown config file.

 

This also explains why linux servers are already online

 

Make sense?

  • Like 1
Link to comment
Share on other sites

GC Server Admin

currently downloading the linux and windows servers, so i thought id write an explanation of what is going on for any aspiring hackers (and to get my mind in the zone)

 

When people create applications they use a high or mid level language like c++. for example:

int add(int a, int {
return a+b;
}

 

Now, the processor doesn't know what to do with the above because the processor only works with a language called assembly. Assembly looks like this roughly for the above function (I haven't written asm for like 8 years so this may be a bit off):

pop eax
pop ebx
add ebx, eax
push ebx

This code is represented in binary/hex in the actual computer. For example the above may be stored as "48 a4 bc 02 59". Plugins like left4downtown hook into functions to allow us to process data before it is sent into the function. In order to hook into these functions the plugin needs to know where they are, and this is where crap hits the fan.

 

We can't use the actual location because that changes with every new version of the server and fixing it would be totally inefficient. So sourcemod uses function signatures, which are basically a unique set of bytes found only one place in the file. In the above example the signature would be "x48xa4xbcx02x59". When ever the plugin loads it scans the file for these bytes and hooks the function as needed

 

With the recent server modification these signatures changed because valve implemented linux and now all of these signatures are invalid. For example "x48xa4xbcx02x59" may actually be "x11xa4xaax02x50". So my job is to find these new signatures.

 

Normally this is near impossible without debugging techniques, but we have and advantage- linux. In linux files function addresses are stored in a vtable. This vtable says something like "add 0x4001001" which means function add is at address 4001001. Windows does not have a similaer vtable which is why we use function signatures. So using the linux address I can get a rough idea of where the function is in windows and search the windows file to find similar logic. i then need to get the unique bytes, save them in the left4downtown config file.

 

This also explains why linux servers are already online

 

Make sense?

 

 

Thanks crasx

 

and NO!

  • Like 1
Link to comment
Share on other sites

currently downloading the linux and windows servers, so i thought id write an explanation of what is going on for any aspiring hackers (and to get my mind in the zone)

 

When people create applications they use a high or mid level language like c++. for example:

int add(int a, int {
return a+b;
}

 

Now, the processor doesn't know what to do with the above because the processor only works with a language called assembly. Assembly looks like this roughly for the above function (I haven't written asm for like 8 years so this may be a bit off):

pop eax
pop ebx
add ebx, eax
push ebx

This code is represented in binary/hex in the actual computer. For example the above may be stored as "48 a4 bc 02 59". Plugins like left4downtown hook into functions to allow us to process data before it is sent into the function. In order to hook into these functions the plugin needs to know where they are, and this is where crap hits the fan.

 

We can't use the actual location because that changes with every new version of the server and fixing it would be totally inefficient. So sourcemod uses function signatures, which are basically a unique set of bytes found only one place in the file. In the above example the signature would be "x48xa4xbcx02x59". When ever the plugin loads it scans the file for these bytes and hooks the function as needed

 

With the recent server modification these signatures changed because valve implemented linux and now all of these signatures are invalid. For example "x48xa4xbcx02x59" may actually be "x11xa4xaax02x50". So my job is to find these new signatures.

 

Normally this is near impossible without debugging techniques, but we have and advantage- linux. In linux files function addresses are stored in a vtable. This vtable says something like "add 0x4001001" which means function add is at address 4001001. Windows does not have a similaer vtable which is why we use function signatures. So using the linux address I can get a rough idea of where the function is in windows and search the windows file to find similar logic. i then need to get the unique bytes, save them in the left4downtown config file.

 

This also explains why linux servers are already online

 

Make sense?

This post owns and you own. Thanks for fixing the server!
Link to comment
Share on other sites

so, im calling it quits for the night. This is super hard, asking for help on the other forums.

 

Basically for all 30 of these functions I need to make educated guesses using strings and knowledge of assembly and... this is going to involve a lot of crying

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...