- Joined
- Apr 9, 2012
- Messages
- 2,359
- Reaction score
- 442
if your server crash when you open it (in loading) you might have wrong configuration, you dont need to follow this guide if that is the case.
this is an example case :
http://forum.ragezone.com/f152/crashes-saved-1069518/
http://forum.ragezone.com/f152/logout-packets-1060031/
this is problem from @sadi, not sure if he fixed it...
but, as you can see, zone creating exception log when your server is crashing...
what you need to do is open the log
this is an example from that thread :
see the red part?
that is our guide,
Code : C0000005 ACCESS_VIOLATION
this problem caused by access violation usually when you try to access NULL pointer member, this problem occured, that is why checking NULL pointer is very important in C++ most of (or perhaps i should say every) crash is mostly caused by this.
Address : 4041034A
this is our main problem, this is the address,
let's open ida pro, open your zone, let it analyze it (this one take time, so i would suggest to save the database by pressing ctrl+s when the analyze is done, so next time you could just load it without the need to reanalyze),
when it's done, click on assembly windows, just place the cursor anywhere in the graph, yes the one with graphic/(or something with move eax, push ecx, etc), press "G" on your keyboard, or click on jump menu, and choose jump to address -_-, jump address box will appear, copy the address from the log, the address is : 14041034A, yes, you need to add 1 in the beginning xD
then jump,
View attachment 157186
in sadi case, it will bring you to :
View attachment 157187
if you get your hand into ida pro 6.6 or above with hex-ray decompiler, you can produce pseudo code (kind like converting assembly into source code which more make sense, or you could say decompiled source of the function by pressing "F5" in the keyboard. this is the result in sadi case :
View attachment 157188
as we can see,
the problem occur when accessing v13 (this one is CUserDB pointer) this v13 which have NULL pointer, the program is trying to access m_dwAccountSerial from it, which is invalid because the pointer is NULL it's not pointing to a valid address.
usually i would just disable the whole function if the game can goes on without it,
but if it's something important you should just fix it using module, and check for NULL value, if it's NULL return an error, and allowed it if it's not NULL
goodluck with your server :
an example :
problem : http://forum.ragezone.com/f152/zoneserver-crash-2-2-3-a-1114400-post8692619/#post8692619
fix : http://forum.ragezone.com/f152/zoneserver-crash-2-2-3-a-1114400-post8697631/#post8697631
this is an example case :
http://forum.ragezone.com/f152/crashes-saved-1069518/
http://forum.ragezone.com/f152/logout-packets-1060031/
this is problem from @sadi, not sure if he fixed it...
but, as you can see, zone creating exception log when your server is crashing...
what you need to do is open the log
this is an example from that thread :
Code:
==================================================================================
ZoneServer : Exception Program
Exe : D:\2232\2.ZoneServer\RF_Bin\~~.exe
OS : Windows 6.1(XP), build7601 PlatformId 2 "Service Pack 1"
Computer :
Time : 2015-07-01 WED, 03:08:38.387 PM
[COLOR=#FF0000][SIZE=3][B]Code : C0000005 ACCESS_VIOLATION
Address : 4041034A [/B][/SIZE][/COLOR]
==================================================================================
------------------------------------------------------------------------
Call stack
------------------------------------------------------------------------
Address Frame Function SourceFile
4041034A AB11FB40 <2>0000:00000000
401C1617 AB11FB80 <2>0000:00000000
401DF141 AB11FC80 <2>0000:00000000
401DB780 AB11FCB0 <2>0000:00000000
40478A68 AB11FD90 <2>0000:00000000
40477D96 AB11FDD0 <2>0000:00000000
40481CB9 AB11FE10 <2>0000:00000000
401F4E03 AB11FE80 <2>0000:00000000
401EE85D AB11FEC0 <2>0000:00000000
616353C5 AB11FF10 <2>0001:000043C5 C:\Windows\WinSxS\amd64_microsoft.vc80.debugcrt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_9cf5f2ffebeea69a\MSVCR80D.dll
6163538C AB11FF50 <2>0001:0000438C C:\Windows\WinSxS\amd64_microsoft.vc80.debugcrt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_9cf5f2ffebeea69a\MSVCR80D.dll
771E652D AB11FF80 <2>0001:0001552D C:\Windows\system32\kernel32.dll
7731C541 AB11FFD0 <2>0001:0002B541 C:\Windows\SYSTEM32\ntdll.dll
------------------------------------------------------------------------
Load Modules
------------------------------------------------------------------------
40000000 D:\2232\2.ZoneServer\RF_Bin\~~.exe
772F0000 C:\Windows\SYSTEM32\ntdll.dll
771D0000 C:\Windows\system32\kernel32.dll
FD280000 C:\Windows\system32\KERNELBASE.dll
FADE0000 C:\Windows\system32\NETAPI32.dll
FADB0000 C:\Windows\system32\netutils.dll
FE590000 C:\Windows\system32\msvcrt.dll
FCB30000 C:\Windows\system32\srvcli.dll
FE9D0000 C:\Windows\system32\RPCRT4.dll
FAD60000 C:\Windows\system32\wkscli.dll
F1660000 C:\Windows\system32\ODBC32.dll
FD470000 C:\Windows\system32\ADVAPI32.dll
FF1D0000 C:\Windows\SYSTEM32\sechost.dll
770D0000 C:\Windows\system32\USER32.dll
FEF70000 C:\Windows\system32\GDI32.dll
FEEA0000 C:\Windows\system32\LPK.dll
FD550000 C:\Windows\system32\USP10.dll
FF530000 C:\Windows\system32\WS2_32.dll
FF250000 C:\Windows\system32\NSI.dll
F95D0000 C:\Windows\system32\WINMM.dll
F0CB0000 C:\Windows\system32\DDRAW.dll
FA580000 C:\Windows\system32\DCIMAN32.dll
FD620000 C:\Windows\system32\SETUPAPI.dll
FD240000 C:\Windows\system32\CFGMGR32.dll
FEFE0000 C:\Windows\system32\OLEAUT32.dll
FE630000 C:\Windows\system32\ole32.dll
FD300000 C:\Windows\system32\DEVOBJ.dll
FB740000 C:\Windows\system32\dwmapi.dll
00400000 D:\2232\2.ZoneServer\RF_Bin\d3dx9_30.dll
614C0000 C:\Windows\WinSxS\amd64_microsoft.vc80.debugcrt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_9cf5f2ffebeea69a\MSVCP80D.dll
61630000 C:\Windows\WinSxS\amd64_microsoft.vc80.debugcrt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_9cf5f2ffebeea69a\MSVCR80D.dll
60BE0000 C:\Windows\WinSxS\amd64_microsoft.vc80.debugmfc_1fc8b3b9a1e18e3b_8.0.50727.4053_none_a1d5f4f1e8c2d5cd\MFC80D.DLL
FF580000 C:\Windows\system32\SHLWAPI.dll
10000000 D:\2232\2.ZoneServer\RF_Bin\AntiCpSvr.dll
00160000 D:\2232\2.ZoneServer\RF_Bin\RFACC.dll
FF260000 C:\Windows\system32\WININET.dll
FD3F0000 C:\Windows\system32\api-ms-win-downlevel-user32-l1-1-0.dll
FD330000 C:\Windows\system32\api-ms-win-downlevel-shlwapi-l1-1-0.dll
FD460000 C:\Windows\system32\api-ms-win-downlevel-version-l1-1-0.dll
FC0F0000 C:\Windows\system32\version.DLL
FD340000 C:\Windows\system32\api-ms-win-downlevel-normaliz-l1-1-0.dll
774B0000 C:\Windows\system32\normaliz.DLL
FEB30000 C:\Windows\system32\iertutil.dll
FD320000 C:\Windows\system32\api-ms-win-downlevel-advapi32-l1-1-0.dll
FD400000 C:\Windows\system32\USERENV.dll
FD0C0000 C:\Windows\system32\profapi.dll
F25E0000 C:\Windows\system32\dbghelp.dll
721E0000 C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_88e41e092fab0294\MSVCP80.dll
72110000 C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_88e41e092fab0294\MSVCR80.dll
FEEB0000 C:\Windows\system32\comdlg32.dll
F19F0000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_a4d6a923711520a9\COMCTL32.dll
FD800000 C:\Windows\system32\SHELL32.dll
FEB00000 C:\Windows\system32\IMM32.DLL
FF0C0000 C:\Windows\system32\MSCTF.dll
67180000 C:\Windows\system32\odbcint.dll
67530000 C:\Windows\WinSxS\amd64_microsoft.vc80.mfcloc_1fc8b3b9a1e18e3b_8.0.50727.6195_none_bc20f59b0bdd1acd\MFC80CHS.DLL
FB6C0000 C:\Windows\system32\uxtheme.dll
FBA60000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_fa396087175ac9ac\comctl32.DLL
FCF10000 C:\Windows\system32\CRYPTBASE.dll
FEE00000 C:\Windows\system32\CLBCatQ.DLL
04280000 D:\2232\2.ZoneServer\RF_Bin\CHI_NETD.dll
FC210000 C:\Windows\system32\gameudp.dll
774C0000 C:\Windows\system32\PSAPI.DLL
FC1E0000 C:\Windows\system32\IPHLPAPI.DLL
FC1D0000 C:\Windows\system32\WINNSI.DLL
FC840000 C:\Windows\system32\mswsock.dll
FC1C0000 C:\Windows\System32\wshtcpip.dll
FCAA0000 C:\Windows\system32\CRYPTSP.dll
FC580000 C:\Windows\system32\rsaenh.dll
F7CE0000 C:\Windows\system32\odbccp32.dll
FCE80000 C:\Windows\system32\SspiCli.dll
FCA60000 C:\Windows\system32\bcrypt.dll
FC4C0000 C:\Windows\system32\bcryptprimitives.dll
F1000000 C:\Windows\system32\SQLSRV32.dll
FD0D0000 C:\Windows\system32\CRYPT32.dll
FD0B0000 C:\Windows\system32\MSASN1.dll
02080000 C:\Windows\system32\sqlsrv32.rll
F1D50000 C:\Windows\system32\DBNETLIB.DLL
020A0000 C:\Windows\system32\security.dll
FCCB0000 C:\Windows\system32\SECUR32.DLL
FC470000 C:\Windows\system32\credssp.dll
FC780000 C:\Windows\system32\msv1_0.DLL
FCB60000 C:\Windows\system32\cryptdll.dll
F9440000 C:\Windows\system32\ntdsapi.dll
FC610000 C:\Windows\system32\schannel.DLL
FC9D0000 C:\Windows\system32\ncrypt.dll
FC670000 C:\Windows\system32\DNSAPI.dll
------------------------------------------------------------------------
Hardware/Driver Information
------------------------------------------------------------------------
Processor: 0x9
Display : Unknown
Page Size: 4096
Min App Address: 0x00010000
Max App Address: 0xFFFEFFFF
Processor Mask: 0xF
Number of Processors: 4
Processor Type: 8664
Allocation Granularity: 65536
Processor Level: 6
Processor Revision: 5898
Percent memory used: 71
Physical memory: 2443603968/4158242816
Page file: 1615237120/398237696
Virtual memory: 249012224/4294836224
see the red part?
that is our guide,
Code : C0000005 ACCESS_VIOLATION
this problem caused by access violation usually when you try to access NULL pointer member, this problem occured, that is why checking NULL pointer is very important in C++ most of (or perhaps i should say every) crash is mostly caused by this.
Address : 4041034A
this is our main problem, this is the address,
let's open ida pro, open your zone, let it analyze it (this one take time, so i would suggest to save the database by pressing ctrl+s when the analyze is done, so next time you could just load it without the need to reanalyze),
when it's done, click on assembly windows, just place the cursor anywhere in the graph, yes the one with graphic/(or something with move eax, push ecx, etc), press "G" on your keyboard, or click on jump menu, and choose jump to address -_-, jump address box will appear, copy the address from the log, the address is : 14041034A, yes, you need to add 1 in the beginning xD
then jump,
View attachment 157186
in sadi case, it will bring you to :
View attachment 157187
if you get your hand into ida pro 6.6 or above with hex-ray decompiler, you can produce pseudo code (kind like converting assembly into source code which more make sense, or you could say decompiled source of the function by pressing "F5" in the keyboard. this is the result in sadi case :
View attachment 157188
as we can see,
the problem occur when accessing v13 (this one is CUserDB pointer) this v13 which have NULL pointer, the program is trying to access m_dwAccountSerial from it, which is invalid because the pointer is NULL it's not pointing to a valid address.
usually i would just disable the whole function if the game can goes on without it,
but if it's something important you should just fix it using module, and check for NULL value, if it's NULL return an error, and allowed it if it's not NULL
goodluck with your server :
an example :
problem : http://forum.ragezone.com/f152/zoneserver-crash-2-2-3-a-1114400-post8692619/#post8692619
fix : http://forum.ragezone.com/f152/zoneserver-crash-2-2-3-a-1114400-post8697631/#post8697631
Attachments
You must be registered for see attachments list
Last edited: