AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Module Coding (https://forums.alliedmods.net/forumdisplay.php?f=9)
-   -   anti server crash 1.1 (update to metamod) (https://forums.alliedmods.net/showthread.php?t=185555)

201724 05-19-2012 03:44

anti server crash 1.1 (update to metamod)
 
2 Attachment(s)
Originally wanted to write amxx modules, and finally wrote a separate Dll

....
delete old code ,the new code save to anti_crash1.1_src.zip

this application hook game engine,use exception catch all memory exception and other exception, but stack zero not catch

1.1 update:
[+]A file modification became a metamod plugin, still use assembler to write
[!]Fixed the DEP Data Execution Prevention machine infinite loop

author:201724
9.May.2012

dasha 05-23-2012 03:01

Re: anti server crash
 
.dll ?

K.K.Lv 05-23-2012 03:04

Re: anti server crash
 
PHP Code:

//mov eax,[eax] //读出fs寄存器中的ESP修复标志 

...

201724 05-23-2012 08:16

Re: anti server crash
 
Quote:

Originally Posted by dasha (Post 1714808)
.dll ?

patched hlds.exe


PHP Code:

01405C90  /$  A0 44014601   MOV AL,BYTE PTR DS:[1460144]
01405C95  |.  81EC 1C020000 SUB ESP,21C
01405C9B  
|.  C605 50054601>MOV BYTE PTR DS:[1460550],0
01405CA2  
|.  53            PUSH EBX
01405CA3  
|.  55            PUSH EBP
01405CA4  
|.  56            PUSH ESI
01405CA5  
|.  33F6          XOR ESI,ESI
01405CA7  
|.  84C0          TEST AL,AL
01405CA9  
|.  57            PUSH EDI
01405CAA  
|.  74 0D         JE SHORT 01405CB9
01405CAC  
|.  E8 2F090000   CALL 014065E0
01405CB1  
|.  8B10          MOV EDX,DWORD PTR DS:[EAX]
01405CB3  |.  56            PUSH ESI
01405CB4  
|.  8BC8          MOV ECX,EAX
01405CB6  
|.  FF52 5C       CALL DWORD PTR DS:[EDX+5C]
01405CB9  |>  8B1D 00E24401 MOV EBX,DWORD PTR DS:[<&USER32.PeekMessa>;  user32.PeekMessageA
01405CBF  
|.  8B2D 04E24401 MOV EBP,DWORD PTR DS:[<&USER32.Translate>;  user32.TranslateMessage
01405CC5  
|>  A1 54014601   /MOV EAX,DWORD PTR DS:[1460154]
01405CCA  |.  85C0          |TEST EAX,EAX
01405CCC  
|.  0F85 2A020000 |JNZ 01405EFC
01405CD2  
|.  A1 5C014601   |MOV EAX,DWORD PTR DS:[146015C]
01405CD7  |.  50            |PUSH EAX
01405CD8  
|.  E8 D3F7FFFF   |CALL 014054B0
01405CDD  
|.  83C4 04       |ADD ESP,4
01405CE0  
|.  8BF0          |MOV ESI,EAX
01405CE2  
|.  E8 89FFFFFF   |CALL 01405C70
01405CE7  
|.  85F6          |TEST ESI,ESI
01405CE9  
|.  74 11         |JE SHORT 01405CFC
01405CEB  
|.  6A 00         |PUSH 0
01405CED  
|.  68 F09B4501   |PUSH 01459BF0                           ;  ASCII "VENGINE_HLDS_API_VERSION002"
01405CF2  |.  FFD6          |CALL ESI
01405CF4  
|.  83C4 08       |ADD ESP,8
01405CF7  
|.  A3 40014601   |MOV DWORD PTR DS:[1460140],EAX
01405CFC  
|>  E8 6FFFFFFF   |CALL 01405C70
01405D01  
|.  A1 40014601   |MOV EAX,DWORD PTR DS:[1460140]
01405D06  |.  85C0          |TEST EAX,EAX
01405D08  
|.  0F84 FB010000 |JE 01405F09
01405D0E  
|.  8B0D 38014601 |MOV ECX,DWORD PTR DS:[1460138]          ;  FileSyst.CreateInterface
01405D14  
|.  8B30          |MOV ESI,DWORD PTR DS:[EAX]
01405D16  |.  51            |PUSH ECX
01405D17  
|.  E8 B4F7FFFF   |CALL 014054D0
01405D1C  
|.  8B0D E4984501 |MOV ECX,DWORD PTR DS:[14598E4]          ;  hlds.0145E088
01405D22  
|.  50            |PUSH EAX
01405D23  
|.  8B11          |MOV EDX,DWORD PTR DS:[ECX]
01405D25  |.  FF52 04       |CALL DWORD PTR DS:[EDX+4]
01405D28  |.  50            |PUSH EAX
01405D29  
|.  E8 42FEFFFF   |CALL 01405B70
01405D2E  
|.  8B0D 40014601 |MOV ECX,DWORD PTR DS:[1460140]          ;  swds.04D22350
01405D34  
|.  50            |PUSH EAX
01405D35  
|.  FF56 04       |CALL DWORD PTR DS:[ESI+4]
01405D38  |.  84C0          |TEST AL,AL
01405D3A  
|.  0F84 C9010000 |JE 01405F09
01405D40  
|.  E8 2BFFFFFF   |CALL 01405C70
01405D45  
|.  A0 44014601   |MOV AL,BYTE PTR DS:[1460144]
01405D4A  |.  84C0          |TEST AL,AL
01405D4C  
|.  74 7D         |JE SHORT 01405DCB
01405D4E  
|.  E8 AD080000   |CALL 01406600
01405D53  
|.  8B10          |MOV EDX,DWORD PTR DS:[EAX]
01405D55  |.  68 E49B4501   |PUSH 01459BE4                           ;  ASCII "PLATFORM"
01405D5A  |.  68 D89B4501   |PUSH 01459BD8                           ;  ASCII "platform"
01405D5F  |.  8BC8          |MOV ECX,EAX
01405D61  
|.  FF52 10       |CALL DWORD PTR DS:[EDX+10]
01405D64  |.  68 C49B4501   |PUSH 01459BC4                           ;  ASCII "SteamInstallPath"
01405D69  |.  E8 B2E30200   |CALL 01434120
01405D6E  
|.  83C4 04       |ADD ESP,4
01405D71  
|.  85C0          |TEST EAX,EAX
01405D73  
|.  74 1A         |JE SHORT 01405D8F
01405D75  
|.  50            |PUSH EAX
01405D76  
|.  68 B89B4501   |PUSH 01459BB8                           ;  ASCII "%s/config"
01405D7B  |.  8D4424 34     |LEA EAX,DWORD PTR SS:[ESP+34]
01405D7F  |.  68 00020000   |PUSH 200
01405D84  
|.  50            |PUSH EAX
01405D85  
|.  E8 96AC0200   |CALL 01430A20
01405D8A  
|.  83C4 10       |ADD ESP,10
01405D8D  
|.  EB 26         |JMP SHORT 01405DB5
01405D8F  
|>  BF A89B4501   |MOV EDI,01459BA8                        ;  ASCII "platform/config"
01405D94  |.  83C9 FF       |OR ECX,FFFFFFFF
01405D97  
|.  33C0          |XOR EAX,EAX
01405D99  
|.  8D5424 2C     |LEA EDX,DWORD PTR SS:[ESP+2C]
01405D9D  |.  F2:AE         |REPNE SCAS BYTE PTR ES:[EDI]
01405D9F  |.  F7D1          |NOT ECX
01405DA1  
|.  2BF9          |SUB EDI,ECX
01405DA3  
|.  8BC1          |MOV EAX,ECX
01405DA5  
|.  8BF7          |MOV ESI,EDI
01405DA7  
|.  8BFA          |MOV EDI,EDX
01405DA9  
|.  C1E9 02       |SHR ECX,2
01405DAC  
|.  F3:A5         |REP MOVS DWORD PTR ES:[EDI],DWORD PTR D>
01405DAE  |.  8BC8          |MOV ECX,EAX
01405DB0  
|.  83E1 03       |AND ECX,3
01405DB3  
|.  F3:A4         |REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:>
01405DB5  |>  E8 46080000   |CALL 01406600
01405DBA  
|.  8B10          |MOV EDX,DWORD PTR DS:[EAX]
01405DBC  |.  8D4C24 2C     |LEA ECX,DWORD PTR SS:[ESP+2C]
01405DC0  |.  68 C0934501   |PUSH 014593C0                           ;  ASCII "CONFIG"
01405DC5  |.  51            |PUSH ECX
01405DC6  
|.  8BC8          |MOV ECX,EAX
01405DC8  
|.  FF52 10       |CALL DWORD PTR DS:[EDX+10]
01405DCB  |>  E8 A0FEFFFF   |CALL 01405C70
01405DD0  
|.  A1 50014601   |MOV EAX,DWORD PTR DS:[1460150]
01405DD5  |.  85C0          |TEST EAX,EAX
01405DD7  
|.  74 0C         |JE SHORT 01405DE5
01405DD9  
|.  8B0D 40014601 |MOV ECX,DWORD PTR DS:[1460140]          ;  swds.04D22350
01405DDF  
|.  50            |PUSH EAX
01405DE0  
|.  8B11          |MOV EDX,DWORD PTR DS:[ECX]
01405DE2  |.  FF52 10       |CALL DWORD PTR DS:[EDX+10]
01405DE5  |>  A1 58014601   |MOV EAX,DWORD PTR DS:[1460158]
01405DEA  |.  85C0          |TEST EAX,EAX
01405DEC  
|.  74 0A         |JE SHORT 01405DF8
01405DEE  
|.  8B40 7C       |MOV EAX,DWORD PTR DS:[EAX+7C]
01405DF1  |.  50            |PUSH EAX                                ; /hEvent
01405DF2  
|.  FF15 54E04401 |CALL DWORD PTR DS:[<&KERNEL32.SetEvent>>; \SetEvent
01405DF8  
|>  E8 73FEFFFF   |CALL 01405C70
01405DFD  
|>  A0 44014601   |/MOV AL,BYTE PTR DS:[1460144]
01405E02  |.  84C0          ||TEST AL,AL
01405E04  
|.  74 05         ||JE SHORT 01405E0B
01405E06  
|.  E8 65FEFFFF   ||CALL 01405C70
01405E0B  
|>  6A 01         ||PUSH 1
01405E0D  
|.  FF15 20014601 ||CALL DWORD PTR DS:[1460120]            ;  hlds.01405900
01405E13  
|.  A0 44014601   ||MOV AL,BYTE PTR DS:[1460144]
01405E18  |.  83C4 04       ||ADD ESP,4
01405E1B  
|.  84C0          ||TEST AL,AL
01405E1D  
|.  75 64         ||JNZ SHORT 01405E83
01405E1F  
|.  6A 00         ||PUSH 0
01405E21  
|.  6A 00         ||PUSH 0
01405E23  
|.  6A 00         ||PUSH 0
01405E25  
|.  8D4C24 1C     ||LEA ECX,DWORD PTR SS:[ESP+1C]
01405E29  |.  6A 00         ||PUSH 0
01405E2B  
|.  51            ||PUSH ECX
01405E2C  
|.  FFD3          ||CALL EBX
01405E2E  
|.  85C0          ||TEST EAX,EAX
01405E30  
|.  74 3A         ||JE SHORT 01405E6C
01405E32  
|>  6A 00         ||/PUSH 0                                ; /MsgFilterMax 0
01405E34  
|.  6A 00         |||PUSH 0                                ; |MsgFilterMin 0
01405E36  
|.  8D5424 18     |||LEA EDX,DWORD PTR SS:[ESP+18]         ; |
01405E3A  |.  6A 00         |||PUSH 0                                ; |hWnd NULL
01405E3C  
|.  52            |||PUSH EDX                              ; |pMsg
01405E3D  
|.  FF15 08E24401 |||CALL DWORD PTR DS:[<&USER32.GetMessag>; \GetMessageA
01405E43  
|.  85C0          |||TEST EAX,EAX
01405E45  
|.  74 5A         |||JE SHORT 01405EA1
01405E47  
|.  8D4424 10     |||LEA EAX,DWORD PTR SS:[ESP+10]
01405E4B  |.  50            |||PUSH EAX
01405E4C  
|.  FFD5          |||CALL EBP
01405E4E  
|.  8D4C24 10     |||LEA ECX,DWORD PTR SS:[ESP+10]
01405E52  |.  51            |||PUSH ECX                              ; /pMsg
01405E53  
|.  FF15 0CE24401 |||CALL DWORD PTR DS:[<&USER32.DispatchM>; \DispatchMessageA
01405E59  
|.  6A 00         |||PUSH 0
01405E5B  
|.  6A 00         |||PUSH 0
01405E5D  
|.  6A 00         |||PUSH 0
01405E5F  
|.  8D5424 1C     |||LEA EDX,DWORD PTR SS:[ESP+1C]
01405E63  |.  6A 00         |||PUSH 0
01405E65  
|.  52            |||PUSH EDX
01405E66  
|.  FFD3          |||CALL EBX
01405E68  
|.  85C0          |||TEST EAX,EAX
01405E6A  
|.^ 75 C6         ||\JNZ SHORT 01405E32
01405E6C  
|>  A1 54014601   ||MOV EAX,DWORD PTR DS:[1460154]
01405E71  |.  85C0          ||TEST EAX,EAX
01405E73  
|.  75 2C         ||JNZ SHORT 01405EA1
01405E75  
|.  A0 44014601   ||MOV AL,BYTE PTR DS:[1460144]
01405E7A  |.  84C0          ||TEST AL,AL
01405E7C  
|.  75 05         ||JNZ SHORT 01405E83
01405E7E  
|.  E8 5DFCFFFF   ||CALL 01405AE0
01405E83  
|>  8B0D 40014601 ||MOV ECX,DWORD PTR DS:[1460140]         ;  swds.04D22350
01405E89  
|.  8B01          ||MOV EAX,DWORD PTR DS:[ECX]
01405E8B  |.  FF50 0C       ||CALL DWORD PTR DS:[EAX+C]
01405E8E  |.  84C0          ||TEST AL,AL
01405E90  
|.  74 0F         ||JE SHORT 01405EA1
01405E92  
|.  6A 00         ||PUSH 0
01405E94  
|.  E8 97FAFFFF   ||CALL 01405930
01405E99  
|.  83C4 04       ||ADD ESP,4
01405E9C  
|.^ E9 5CFFFFFF   |\JMP 01405DFD
01405EA1  
|>  A0 44014601   |MOV AL,BYTE PTR DS:[1460144]
01405EA6  |.  84C0          |TEST AL,AL
01405EA8  
|.  74 0C         |JE SHORT 01405EB6
01405EAA  
|.  E8 C1FDFFFF   |CALL 01405C70
01405EAF  
|.  E8 AC030000   |CALL 01406260
01405EB4  
|.  EB 0F         |JMP SHORT 01405EC5
01405EB6  
|>  E8 15FCFFFF   |CALL 01405AD0
01405EBB  
|.  B9 A0E04501   |MOV ECX,0145E0A0
01405EC0  
|.  E8 ABEBFFFF   |CALL 01404A70
01405EC5  
|>  8B0D 40014601 |MOV ECX,DWORD PTR DS:[1460140]          ;  swds.04D22350
01405ECB  
|.  8B11          |MOV EDX,DWORD PTR DS:[ECX]
01405ECD  |.  FF52 08       |CALL DWORD PTR DS:[EDX+8]
01405ED0  |.  8BF0          |MOV ESI,EAX
01405ED2  
|.  A1 5C014601   |MOV EAX,DWORD PTR DS:[146015C]
01405ED7  |.  50            |PUSH EAX
01405ED8  
|.  E8 C3F5FFFF   |CALL 014054A0
01405EDD  
|.  A1 58014601   |MOV EAX,DWORD PTR DS:[1460158]
01405EE2  |.  83C4 04       |ADD ESP,4
01405EE5  
|.  85C0          |TEST EAX,EAX
01405EE7  
|.  74 0A         |JE SHORT 01405EF3
01405EE9  
|.  8B48 7C       |MOV ECX,DWORD PTR DS:[EAX+7C]
01405EEC  |.  51            |PUSH ECX                                ; /hEvent
01405EED  
|.  FF15 54E04401 |CALL DWORD PTR DS:[<&KERNEL32.SetEvent>>; \SetEvent
01405EF3  
|>  83FE 03       |CMP ESI,3
01405EF6  
|.^ 0F85 C9FDFFFF \JNZ 01405CC5
01405EFC  
|>  8BC6          MOV EAX,ESI
01405EFE  
|.  5F            POP EDI
01405EFF  
|.  5E            POP ESI
01405F00  
|.  5D            POP EBP
01405F01  
|.  5B            POP EBX
01405F02  
|.  81C4 1C020000 ADD ESP,21C
01405F08  
|.  C3            RETN
01405F09  
|>  5F            POP EDI
01405F0A  
|.  5E            POP ESI
01405F0B  
|.  5D            POP EBP
01405F0C  
|.  83C8 FF       OR EAX,FFFFFFFF
01405F0F  
|.  5B            POP EBX
01405F10  
|.  81C4 1C020000 ADD ESP,21C
01405F16  
\.  C3            RETN 

hook the
PHP Code:

01405E83  |> \8B0D 40014601 ||MOV ECX,DWORD PTR DS:[1460140]         ;  swds.04D22350
01405E89  
|.  8B01          ||MOV EAX,DWORD PTR DS:[ECX]
01405E8B  |.  FF50 0C       ||CALL DWORD PTR DS:[EAX+C

go my code
if server crash fix all exception but stack error no fix..

BeasT 05-27-2012 10:28

Re: anti server crash
 
Can someone explain wth is this and how to use it? ^^

Aooka 05-27-2012 10:29

Re: anti server crash
 
Yeah i understand nothing :S

joropito 05-29-2012 10:01

Re: anti server crash
 
Quote:

Originally Posted by BeasT (Post 1717529)
Can someone explain wth is this and how to use it? ^^

The key is at "A1 54014601 /MOV EAX,DWORD PTR DS:[1460154]" , just shift to left some bits in your dll and you will see

DjOptimuS 06-03-2012 11:36

Re: anti server crash(Has issued patches)
 
Linux version ? Thank you.

yokomo 06-03-2012 11:41

Re: anti server crash(Has issued patches)
 
Seriously what is this and how to install it? Is it auto server restarter on crash just like HLSM by Rulzy?

Brian-__- 06-03-2012 13:20

Re: anti server crash(Has issued patches)
 
1 Attachment(s)
PHP Code:

DllMain proc hinstDLL,fdwReason,lpvReserved
    
.if fdwReason==DLL_PROCESS_ATTACH
        invoke Hook
    
.endif
    
ret
DllMain endp 

I think this is a dll which you want to inject to hlds.exe
Use this tools to inject his dll file


All times are GMT -4. The time now is 11:11.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.