==================================================================================== # # this file has been created for the Lame patcher program available for both *nix # and Windows platforms. # You need this program for continuing the patching of your files: # # http://aluigi.org/mytoolz.htm#lpatch # # Quick step-by-step for Windows: # - launch lpatch.exe # - select this q3unban.lpatch file # - read the message windows and click yes # - select the executable file to patch # - read the message windows to know if everything has been patched correctly # - test your game # # Quick step-by-step for Linux: # - compile lpatch: gcc -c md5.c ; gcc -o lpatch lpatch.c md5.o # - launch ./lpatch q3unban.lpatch # - read the text messages # - specify the name of the file to patch # - read the text messages to know if everything has been patched correctly # - test your game TITLE Quake 3 engine unban fix (Windows and Linux) 0.1 by Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org INTRO Unofficial patch for the bug described here: . http://aluigi.org/poc/q3unban.cfg . Remember to test your server with the proof-of-concept for sudppipe since the cfg one could not work properly. . The patch is simple, instead of occupying all the userinfo buffer in SV_DirectConnect I have truncated it at 1000 bytes (instead of 1024) so Info_SetValueForKey can add the client's IP without problems. . Note that this patch has been tested with almost all the vulnerable (yes, some games like JK2 and Sof2 are not vulnerbale and MOHAA doesn't support banning at all) latest releases of these games (dedicated servers) for both Windows and Linux, older versions will be NOT supported by me, so don't ask. FILE *.exe;*ded.*;*ded ONLY_ONE BYTES_ORIGINAL 68 ?? ?? ?? ?? ; push 004B8FE0 E8 ?? ?? ?? ?? ; call 00419CC0 83 C4 04 ; add esp, 00000004 68 00 04 00 00 ; push 00000400 6A 01 ; push 00000001 E8 ?? ?? ?? ?? ; call 00419180 83 C4 04 ; add esp, 00000004 BYTES_PATCH ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? e8 03 00 00 BYTES_ORIGINAL 68 ?? ?? ?? ?? ; push 080EB304 E8 ?? ?? ?? ?? ; call 0001517B 83 C4 FC ; add esp, FFFFFFFC 68 00 04 00 00 ; push 00000400 83 C4 F4 ; add esp, FFFFFFF4 6A 01 ; push 00000001 E8 ?? ?? ?? ?? ; call 00014BE7 83 C4 10 ; add esp, 00000010 BYTES_PATCH ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? e8 03 00 00 BYTES_ORIGINAL 68 ?? ?? ?? ?? ; push 00FBAE34 E8 ?? ?? ?? ?? ; call 004BDAB0 6A 01 ; push 00000001 E8 ?? ?? ?? ?? ; call 004BD000 8D 54 24 ?? ; lea edx, dword ptr [esp+08] 68 00 04 00 00 ; push 00000400 50 ; push eax 52 ; push edx E8 ?? ?? ?? ?? ; call 004E6334 BYTES_PATCH ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? e8 03 00 00 BYTES_ORIGINAL BE 00 04 00 00 ; mov esi, 00000400 53 ; push ebx BB ?? ?? ?? ?? ; mov ebx, 080E36C1 81 EC ?? ?? ?? ?? ; sub esp, 00064B9C C7 04 24 ?? ?? ?? ?? ; mov dword ptr [esp], 080E36AB 8D AC 24 ?? ?? ?? ?? ; lea ebp, dword ptr [esp+0006475C] E8 ?? ?? ?? ?? ; call 0001D1CB C7 04 24 01 00 00 00 ; mov dword ptr [esp], 00000001 E8 ?? ?? ?? ?? ; call 0001969B 89 74 24 08 ; mov dword ptr [esp+08], esi 89 2C 24 ; mov dword ptr [esp], ebp 89 44 24 04 ; mov dword ptr [esp+04], eax E8 ?? ?? ?? ?? ; call 0003EB4B BYTES_PATCH ?? e8 03 00 00 BYTES_ORIGINAL C7 04 24 ?? ?? ?? ?? ; mov dword ptr [esp], 0819ADDC E8 ?? ?? ?? ?? ; call 00026EAE C7 04 24 01 00 00 00 ; mov dword ptr [esp], 00000001 E8 ?? ?? ?? ?? ; call 000E023E 8D 95 ?? ?? ?? ?? ; lea edx, dword ptr [ebp+FFFAE760] 89 14 24 ; mov dword ptr [esp], edx 89 44 24 04 ; mov dword ptr [esp+04], eax C7 44 24 08 00 04 00 00 ; mov [esp+08], 00000400 E8 ?? ?? ?? ?? ; call 000331FE 8D 85 ?? ?? ?? ?? ; lea eax, dword ptr [ebp+FFFAE760] BYTES_PATCH ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? e8 03 00 00 BYTES_ORIGINAL A1 ?? ?? ?? ?? ; mov eax, dword ptr [008D5020] 83 C4 04 ; add esp, 00000004 83 F8 01 ; cmp eax, 00000001 B8 ?? ?? ?? ?? ; mov eax, 00597B80 76 05 ; jbe 004573C2 A1 ?? ?? ?? ?? ; mov eax, dword ptr [008D2624] 68 FF 03 00 00 ; push 000003FF 50 ; push eax 8D ?? 24 ; lea eax, dword ptr [esp+50] BYTES_PATCH ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? e7 03 00 00 ====================================================================================