PDA

View Full Version : Guide Possible fix for game crashing after GameGuard update.



TrekkiesUnite
Sep 5, 2012, 11:56 PM
Ok so I don't see any threads or posts for this so I apologize if this has been posted already.

After the GG update I was having PSO freeze and crash my entire computer after running for about 5 minutes. Looking here it seems a lot of people are also having this issue. I remembered a fix for PSU on Windows 7 and applied it to PSO2 and it seems to have fixed the issue for me.

The fix is that you need to add PSO2 and GameGuard to the DEP list in Windows 7. DEP is basically a feature that stops programs that use memory in a way that Microsoft deems incorrect. So it seems that GG and PSO2 fall into that category and it's causing the game and sometimes Windows itself to crash in a rather spectacular way.

So to apply this fix this is what you need to do:

1) Right click on Computer, go to properties.
2) Click Advanced System Settings
3) In the Advanced tab of the window that comes up, click the Settings button in the Performance section
4) Click the Data Execution Prevention tab.
5) Click the "Turn on DEP for all programs and services except those I select"
6) Click the add button and add the following items from your pso2_bin directory:

pso2.exe
GameGuard.des -this one wont show up in the window that appears but you can type the file name in and add it that way.

This seemed to fix the issue for me. So it may fix it for other people having the same issue on 64 bit Windows 7.

Sp-24
Sep 6, 2012, 02:07 AM
Gonna try that. ...Sometime later. Even if it hurts, it probably won't be as bad as what GG does already. Thanks in advance!

EDIT: I think it worked. Can't check it out extensively, but I've managed to get into the game 2 times out of 2, which is a record number so far. Just in case it did fix the problem... How?! We're essentially limiting every program in the OS except for Gameguard with this solution, when Gameguard is what's causing it in the first place.

ANOTHER EDIT: Checked my DEP settings after exiting PSO2, and it's still set to "Turn on for essential processes only". Switched it back to "all except..." restarted again, but it's still at the first option for some reason. Is it supposed to be like that, or are my changes getting reverted after restarting?

zelda_king3
Sep 6, 2012, 06:00 AM
I did it and it made my PSO2 crash at the Nvidia logo instead of it crashing before the Sega logo even plays.

It gives me the same error as before. I've tried allowing other GameGuard files and it didn't work.

zamoth
Sep 6, 2012, 06:35 AM
It didn't work for me either. But thanks for the idea !

TrekkiesUnite
Sep 6, 2012, 09:00 AM
Gonna try that. ...Sometime later. Even if it hurts, it probably won't be as bad as what GG does already. Thanks in advance!

EDIT: I think it worked. Can't check it out extensively, but I've managed to get into the game 2 times out of 2, which is a record number so far. Just in case it did fix the problem... How?! We're essentially limiting every program in the OS except for Gameguard with this solution, when Gameguard is what's causing it in the first place.

ANOTHER EDIT: Checked my DEP settings after exiting PSO2, and it's still set to "Turn on for essential processes only". Switched it back to "all except..." restarted again, but it's still at the first option for some reason. Is it supposed to be like that, or are my changes getting reverted after restarting?

Are you logged in as an Administrator account? The reason this works is because you are telling Windows to ignore PSO2 and GG entirely from DEP. With the default settings it's possible that Windows is still trying to prevent GG and PSO2 from properly running, even though they are not essential processes.


I did it and it made my PSO2 crash at the Nvidia logo instead of it crashing before the Sega logo even plays.

It gives me the same error as before. I've tried allowing other GameGuard files and it didn't work.

Did you use the GameGuard.des file in the pso2_bin directory or the ones in pso2_bin/GameGuard? The one I used was just in the pso2_bin directory.

Ana-Chan
Sep 6, 2012, 09:46 AM
With the default settings, it is set to only force DEP for essential Windows applications only, the rest can opt in to DEP if desired.

The only versions where it can cause problems because it is forced on for everything by default are the server versions of Windows.

TrekkiesUnite
Sep 6, 2012, 11:06 AM
With the default settings, it is set to only force DEP for essential Windows applications only, the rest can opt in to DEP if desired.

The only versions where it can cause problems because it is forced on for everything by default are the server versions of Windows.

Game Guard and PSO2/PSU are affected by it though. So it's not only the Server versions that do this. DEP essentially sees if programs try to write to memory that Windows typically doesn't allow to be used. If a program tries to do that, it stops it. Even when it's on the default Windows Application only settings. By changing the DEP settings to this you are basically telling Windows to completely ignore PSO2 and Game Guard.

This is a very common issue with games, especially ones that use Game Guard.

Ana-Chan
Sep 6, 2012, 01:10 PM
Game Guard and PSO2/PSU are affected by it though. So it's not only the Server versions that do this. DEP essentially sees if programs try to write to memory that Windows typically doesn't allow to be used. If a program tries to do that, it stops it. Even when it's on the default Windows Application only settings. By changing the DEP settings to this you are basically telling Windows to completely ignore PSO2 and Game Guard.

This is a very common issue with games, especially ones that use Game Guard.

You missed my point it seems.

The default client setting is to opt into no execute. This means that it has to be in the executable's flags to be affected by DEP. A good one to look at is the executable header for a built in Windows component.

Microsoft (R) COFF/PE Dumper Version 11.00.50727.1
Copyright (C) Microsoft Corporation. All rights reserved.


Dump of file c:\windows\explorer.exe

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
8664 machine (x64)
6 number of sections
4D672EE4 time date stamp Fri Feb 25 04:24:04 2011
0 file pointer to symbol table
0 number of symbols
F0 size of optional header
22 characteristics
Executable
Application can handle large (>2GB) addresses

OPTIONAL HEADER VALUES
20B magic # (PE32+)
9.00 linker version
B7C00 size of code
205600 size of initialized data
0 size of uninitialized data
2B754 entry point (000000010002B754)
1000 base of code
100000000 image base (0000000100000000 to 00000001002BFFFF)
1000 section alignment
200 file alignment
6.01 operating system version
6.01 image version
6.01 subsystem version
0 Win32 version
2C0000 size of image
600 size of headers
2C8AF6 checksum
2 subsystem (Windows GUI)
8140 DLL characteristics
Dynamic base
NX compatible
Terminal Server Aware
80000 size of stack reserve
E000 size of stack commit
100000 size of heap reserve
1000 size of heap commit
0 loader flags
10 number of directories
0 [ 0] RVA [size] of Export Directory
DDD28 [ 190] RVA [size] of Import Directory
FA000 [ 1C2E88] RVA [size] of Resource Directory
ED000 [ CE04] RVA [size] of Exception Directory
0 [ 0] RVA [size] of Certificates Directory
2BD000 [ 265C] RVA [size] of Base Relocation Directory
B8A58 [ 38] RVA [size] of Debug Directory
0 [ 0] RVA [size] of Architecture Directory
0 [ 0] RVA [size] of Global Pointer Directory
0 [ 0] RVA [size] of Thread Storage Directory
0 [ 0] RVA [size] of Load Configuration Directory
2D8 [ 1B4] RVA [size] of Bound Import Directory
B9000 [ 1B28] RVA [size] of Import Address Table Directory
DD8A0 [ 140] RVA [size] of Delay Import Directory
0 [ 0] RVA [size] of COM Descriptor Directory
0 [ 0] RVA [size] of Reserved Directory

Do you see how under the optional header, the DLL characteristics (yes I know, badly named but it does affect regular executables too) has the NX Compatable characteristic? This is telling Windows that the executable is opting in to DEP.

For the GameGuard files, we have

Microsoft (R) COFF/PE Dumper Version 11.00.50727.1
Copyright (C) Microsoft Corporation. All rights reserved.


Dump of file GameMon64.des

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
8664 machine (x64)
3 number of sections
5017721D time date stamp Tue Jul 31 06:50:21 2012
0 file pointer to symbol table
0 number of symbols
F0 size of optional header
223 characteristics
Relocations stripped
Executable
Application can handle large (>2GB) addresses
Debug information stripped

OPTIONAL HEADER VALUES
20B magic # (PE32+)
9.00 linker version
2F200 size of code
14600 size of initialized data
0 size of uninitialized data
8D178 entry point (000000014008D178)
1000 base of code
140000000 image base (0000000140000000 to 000000014008FFFF)
1000 section alignment
200 file alignment
5.02 operating system version
0.00 image version
5.02 subsystem version
0 Win32 version
90000 size of image
200 size of headers
6E2F2 checksum
2 subsystem (Windows GUI)
8000 DLL characteristics
Terminal Server Aware
100000 size of stack reserve
7000 size of stack commit
100000 size of heap reserve
1000 size of heap commit
0 loader flags
10 number of directories
0 [ 0] RVA [size] of Export Directory
8D000 [ 178] RVA [size] of Import Directory
8E000 [ 1C80] RVA [size] of Resource Directory
43000 [ 1254] RVA [size] of Exception Directory
0 [ 0] RVA [size] of Certificates Directory
0 [ 0] RVA [size] of Base Relocation Directory
0 [ 0] RVA [size] of Debug Directory
0 [ 0] RVA [size] of Architecture Directory
0 [ 0] RVA [size] of Global Pointer Directory
0 [ 0] RVA [size] of Thread Storage Directory
0 [ 0] RVA [size] of Load Configuration Directory
0 [ 0] RVA [size] of Bound Import Directory
8D078 [ 50] RVA [size] of Import Address Table Directory
0 [ 0] RVA [size] of Delay Import Directory
0 [ 0] RVA [size] of COM Descriptor Directory
0 [ 0] RVA [size] of Reserved Directory

Microsoft (R) COFF/PE Dumper Version 11.00.50727.1
Copyright (C) Microsoft Corporation. All rights reserved.


Dump of file GameMon.des

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
14C machine (x86)
6 number of sections
4FB9D5E7 time date stamp Mon May 21 06:43:03 2012
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
10F characteristics
Relocations stripped
Executable
Line numbers stripped
Symbols stripped
32 bit word machine

OPTIONAL HEADER VALUES
10B magic # (PE32)
6.00 linker version
CC000 size of code
39000 size of initialized data
0 size of uninitialized data
6FE000 entry point (00AFE000)
1000 base of code
CD000 base of data
400000 image base (00400000 to 00AFEFFF)
1000 section alignment
1000 file alignment
4.00 operating system version
0.00 image version
4.00 subsystem version
0 Win32 version
6FF000 size of image
1000 size of headers
4025AE checksum
2 subsystem (Windows GUI)
0 DLL characteristics
100000 size of stack reserve
1000 size of stack commit
100000 size of heap reserve
1000 size of heap commit
0 loader flags
10 number of directories
0 [ 0] RVA [size] of Export Directory
10606D [ 95] RVA [size] of Import Directory
101000 [ 4F20] RVA [size] of Resource Directory
0 [ 0] RVA [size] of Exception Directory
3F2A38 [ 1788] RVA [size] of Certificates Directory
0 [ 0] RVA [size] of Base Relocation Directory
0 [ 0] RVA [size] of Debug Directory
0 [ 0] RVA [size] of Architecture Directory
0 [ 0] RVA [size] of Global Pointer Directory
0 [ 0] RVA [size] of Thread Storage Directory
0 [ 0] RVA [size] of Load Configuration Directory
0 [ 0] RVA [size] of Bound Import Directory
0 [ 0] RVA [size] of Import Address Table Directory
0 [ 0] RVA [size] of Delay Import Directory
0 [ 0] RVA [size] of COM Descriptor Directory
0 [ 0] RVA [size] of Reserved Directory

Microsoft (R) COFF/PE Dumper Version 11.00.50727.1
Copyright (C) Microsoft Corporation. All rights reserved.


Dump of file GameGuard.des

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
14C machine (x86)
3 number of sections
4FCD9E61 time date stamp Tue Jun 05 06:51:29 2012
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
10F characteristics
Relocations stripped
Executable
Line numbers stripped
Symbols stripped
32 bit word machine

OPTIONAL HEADER VALUES
10B magic # (PE32)
6.00 linker version
1E000 size of code
1000 size of initialized data
6F000 size of uninitialized data
8DA10 entry point (0048DA10)
70000 base of code
8E000 base of data
400000 image base (00400000 to 0048EFFF)
1000 section alignment
200 file alignment
4.00 operating system version
0.00 image version
4.00 subsystem version
0 Win32 version
8F000 size of image
1000 size of headers
5D75E checksum
2 subsystem (Windows GUI)
0 DLL characteristics
100000 size of stack reserve
1000 size of stack commit
100000 size of heap reserve
1000 size of heap commit
0 loader flags
10 number of directories
0 [ 0] RVA [size] of Export Directory
8ECC0 [ 208] RVA [size] of Import Directory
8E000 [ CC0] RVA [size] of Resource Directory
0 [ 0] RVA [size] of Exception Directory
4D0C8 [ 1788] RVA [size] of Certificates Directory
0 [ 0] RVA [size] of Base Relocation Directory
0 [ 0] RVA [size] of Debug Directory
0 [ 0] RVA [size] of Architecture Directory
0 [ 0] RVA [size] of Global Pointer Directory
0 [ 0] RVA [size] of Thread Storage Directory
0 [ 0] RVA [size] of Load Configuration Directory
0 [ 0] RVA [size] of Bound Import Directory
0 [ 0] RVA [size] of Import Address Table Directory
0 [ 0] RVA [size] of Delay Import Directory
0 [ 0] RVA [size] of COM Descriptor Directory
0 [ 0] RVA [size] of Reserved Directory

PSO2.exe has

Microsoft (R) COFF/PE Dumper Version 11.00.50727.1
Copyright (C) Microsoft Corporation. All rights reserved.


Dump of file pso2.exe

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
14C machine (x86)
6 number of sections
5044BACD time date stamp Mon Sep 03 15:12:29 2012
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
10F characteristics
Relocations stripped
Executable
Line numbers stripped
Symbols stripped
32 bit word machine

OPTIONAL HEADER VALUES
10B magic # (PE32)
9.00 linker version
1DDC200 size of code
525200 size of initialized data
0 size of uninitialized data
2E27000 entry point (03227000)
1000 base of code
1DDF000 base of data
400000 image base (00400000 to 0322C9FF)
1000 section alignment
200 file alignment
5.00 operating system version
0.00 image version
5.00 subsystem version
0 Win32 version
2E2CA00 size of image
400 size of headers
E65B7C checksum
2 subsystem (Windows GUI)
8000 DLL characteristics
Terminal Server Aware
100000 size of stack reserve
1000 size of stack commit
100000 size of heap reserve
1000 size of heap commit
0 loader flags
10 number of directories
2E20318 [ E2] RVA [size] of Export Directory
2B6706D [ 95] RVA [size] of Import Directory
2B61000 [ 5F98] RVA [size] of Resource Directory
0 [ 0] RVA [size] of Exception Directory
E58200 [ 17D0] RVA [size] of Certificates Directory
0 [ 0] RVA [size] of Base Relocation Directory
0 [ 0] RVA [size] of Debug Directory
0 [ 0] RVA [size] of Architecture Directory
0 [ 0] RVA [size] of Global Pointer Directory
0 [ 0] RVA [size] of Thread Storage Directory
0 [ 0] RVA [size] of Load Configuration Directory
0 [ 0] RVA [size] of Bound Import Directory
0 [ 0] RVA [size] of Import Address Table Directory
0 [ 0] RVA [size] of Delay Import Directory
0 [ 0] RVA [size] of COM Descriptor Directory
0 [ 0] RVA [size] of Reserved Directory

Sorry for the wall of text here, but as you can see, none of them opt in to DEP. So unless you have specifically changed the settings so that it forces DEP on everything (like you are suggesting) then it wouldn't touch those. Anyway, the side effect is that any other program also not marked as DEP compatable may also crash.

TrekkiesUnite
Sep 6, 2012, 01:48 PM
That's fine and dandy, it still doesn't change the fact that DEP has some kind of an effect on Game Guard and PSO, PSU, and PSO2. If it didn't this fix wouldn't work for any of those games. Yet if you look up in Tech support for PSO, PSU, and any other game that uses Game Guard you will see this fix listed as an official fix for this kind of problem. You will even find it listed on Microsoft's website as a fix for program incompatibilities with DEP.

DEP isn't this cut and dry. The issue is programs that don't properly support it. They don't opt-in, but they don't opt-out either. Microsoft has an application that can apply a fix to any program that makes it specify to disable it for that program. By putting PSO2 and Game Guard on the exclude list, you are forcing it to Opt-Out where before it didn't specify.

Ana-Chan
Sep 6, 2012, 03:39 PM
That's fine and dandy, it still doesn't change the fact that DEP has some kind of an effect on Game Guard and PSO, PSU, and PSO2. If it didn't this fix wouldn't work for any of those games. Yet if you look up in Tech support for PSO, PSU, and any other game that uses Game Guard you will see this fix listed as an official fix for this kind of problem. You will even find it listed on Microsoft's website as a fix for program incompatibilities with DEP.

DEP isn't this cut and dry. The issue is programs that don't properly support it. They don't opt-in, but they don't opt-out either. Microsoft has an application that can apply a fix to any program that makes it specify to disable it for that program. By putting PSO2 and Game Guard on the exclude list, you are forcing it to Opt-Out where before it didn't specify.

It is that cut and dry though, if you notice the settings, it quite clearly tells you that the defaults for client versions of Windows are to only apply DEP to essential Windows processes and services only. That means that it is an opt in situation. There is also the fact that DEP only really affects applications that automatically generate its own code or do something else that will try to execute code from pages not marked as execute. This isn't common in everyday code and the biggest library responsible for this was old versions of ATL, and PSO2 doesn't depend on it.

So unless a process specifically enables DEP on itself (Functions in Windows like SetProcessDEPPolicy) or it isn't in the executable flags, then using the default settings for Windows DEP is disabled.

There is also the simple fact that if it was a DEP issue, then the crashing would be a lot more prevailant than it is and would also affect anyone using 32 bit systems too (since they also have hardware DEP).

If you also look at the manifestations of the problems, what we get are bluescreens (caused by GG terminating a process if it detects some form of intrusion in it regardless of it being a critical file) and the game itself giving unexpected errors. If it was DEP then one of the processes would be crashing due to access violations. Yet it isn't, the game itself is exiting in a controlled manner and the GG processes are too. The only time that you see access violations are also when the game is using an underpowered graphics adaptor. In the general case things run fine.

*Edit*

Also, as a bit of an experiment, I forced DEP on for my entire system.

http://nyaanyaa.ath.cx/stuff/img/nx.png

From the above screenshot, look at Process Explorer. Do you notice how in the DEP column it had DEP (permanent)? Well, that means that DEP is on and permanently enabled for those processes. That isn't the default though, that only happens with nx set to AlwaysOn, the defaults are pso2.exe is disabled, GameMon.des is disabled and GameMon64.des is enabled (it would use SetProcessDEPProfile to enabled).

Anyway, with everything enabled what does this mean? Well, DEP errors happen consistantly. That is to say, that if it happens once at a certain time then it will always happen at that exact time on every system with DEP enabled. So if any of the current problems from PSO2 are caused by DEP, then it is from a bug and would cause the game to crash regardless.

TrekkiesUnite
Sep 6, 2012, 04:56 PM
If it was that cut and dry it would never be a problem then. Ever. Yet it clearly is a cause for issues like this. It was an issue for PSO:BB and PSU. It's an issue for many other games that use Game Guard as well. Don't believe me? Look at support threads for other games that use it. You will see this listed as a common fix. I've had my Windows 7 machine set like this for years now, it hasn't caused a problem at all for any other programs.

On PSU and PSO:BB this only affected Windows 7 users who used 64 bit. And the AlwaysOn option is not what this fix does by the way. There are 4 configurations for DEP. Opt-In (Default), Opt-Out (What this fix does), AlwaysOn, and AlwaysOff. Opt-Out turns it on for all processed but allows you to manually configure what programs that DEP should ignore, and it will obey compatibility fixes. Always On forces it on everything and ignores compatibility fixes and your exception list.

The bottom line here is this, this fix worked for me for PSO, PSU, and now PSO2. It hasn't caused any other DEP errors for any other games or programs I have ran with it. After I applied this fix last night I was able to play PSO2 for well over an hour. Before I could only get on for at most 5 minutes before it locked up.

Ana-Chan
Sep 6, 2012, 05:28 PM
The bottom line here is this, this fix worked for me for PSO, PSU, and now PSO2. It hasn't caused any other DEP errors for any other games or programs I have ran with it. After I applied this fix last night I was able to play PSO2 for well over an hour. Before I could only get on for at most 5 minutes before it locked up.

And that on its own means that it isn't DEP. First, as I said, DEP does not cause the locking up, if it was a DEP error then PSO2 or one of the GG processes would crash with an access violation. Not lock up or anything like that.

Secondly, and more importantly, if the game or GG was written in a way that would cause DEP to kick in, then it would always happen. Not just lock up one person's system here, cause a BSOD there and some general slowdown everywhere, but everyone would be having either PSO2 or GG crash every single time because of access violations. The fact that there is enough people out there with the game running normally, and as the screenshot I also gave showed, it would run normally with DEP forced to always on shows is that there is not enough consistancy to warrant classing this as a DEP error. The fact that it happens normally to people when DEP isn't even applied to the game also disputes that.

I would also like to reiterate, this is a very cut and dry thing. It is black and white, no shades of grey. DEP is either enabled for a process or it is not enabled. If DEP is enabled and it tries to execute code in a data segment then it will crash with an access violation.
If an application is programmed to do something that will execute code in a data segment and DEP is active, then it will always crash. You can never get into a situation where it will sometimes work and sometimes not work. In this situation is it enough to have a single working case. Or do you have some other explanation as to why my system can run PSO2 and GG with DEP forced to always on? Especially when applications are a sequence of instructions.

TrekkiesUnite
Sep 6, 2012, 05:41 PM
I can't explain why it works for you with DEP forced on and why it doesn't for others. Because PC's are not black and white. With the level of complexity Operating systems have reached and the complete inconsistent nature of PC hardware configurations there are countless causes for why things like this can happen.

All I am saying is that this worked for me, it may work for others having the same problem.

EDIT:

I just reverted my system to the default DEP Settings where it only applies it to windows processes. PSO2 crashed and took the rest of my computer with it at the Title screen. I reapplied the fix when I rebooted and PSO2 is running fine again with no crashing problems.

Renzer
Sep 6, 2012, 07:43 PM
yeah just tried your solution and it still crashes right as the PSO2 game starts (before the SEGA logo).

Oh well...

Sp-24
Sep 7, 2012, 06:45 AM
OK, finally got around to try playing PSO2, and guess why did I say "try". Turns out switching DEP mode did work because, while the incorrect option is always selected by default in that window, bcdedit says that I have DEP set to "OptOut". It didn't stop GG from doing what it does best, but at least it just freezes my OS instead of BSoDing now (what a relief). But thanks for the suggestion anyway.

zamoth
Sep 7, 2012, 07:20 AM
I ran pso2 a few minutes ago. There was an update of GameGuard and I had no crash during my 10 minutes play. Perhaps it's working again.

Sp-24
Sep 7, 2012, 07:36 AM
Just tried running it, and there was no update. But at least I've managed to delete that piece of shit from running processes fast enough.

zamoth
Sep 7, 2012, 07:45 AM
I saw smth like pso2.jp updating. But it crashed again on my computer...

zamoth
Sep 7, 2012, 09:51 AM
Do you think it works better with windows xp 32 bits ?

Ana-Chan
Sep 7, 2012, 01:36 PM
The problem is with the methods they are using to block cheating on 64 bit Windows. The 32 bit verion shouldn't have had any significant changes. So any 32 bit version of Windows will work better. But this won't fix the problem for 64 bit versions. It will just be a work around for now.

chihiro
Sep 7, 2012, 05:55 PM
I have been experimenting with the posted fixes, including this fix, though my issues are not as dire as most people seem to be experiencing. This fix made absolutely no difference for me. I am still experiencing periodic PC freezing when gameguard is active.

Halvaard
Sep 8, 2012, 11:19 PM
I'm going to try out the nProtect GameGuard Personal program... see if I can get it to scan my system and report any conflicts... If you don't hear from me again, it ate my PC!

PC un-eaten, but it didn't help.
Game froze up after intro videos, which WAS farther than it had previously gotten tonight, but that could just be random.