Using Ollydbg.
All you have to do is:
1.)Lineage is opened. The breakpoint is set in CreateProcess.
2.)It executes (F9).
It executes it until the break is done with CreateProcess.
The break might be done several times on the way.
3.)It makes CreateProcess's being on purpose made fail when the break is done with CreateProcess. CreateProcess fails and it returns. The return value when failing is confirmed.
4.)The memory access breakpoint is set in the place where the return value is stored. The part where this value is referred is a result judgment.
5.)The part where it executes (F9) and the return value is referred is confirmed.
The break is done two or more times because it refers in two or more places. It is necessary to understand the meaning of processing here reading the assembler ahead.
6.)It returns after the break several-time. The judgment part there.
When the code is read, the value of the generation failure of GameGurad and the value of the start success are understood. The return value is rewritten in the value of the start success.
7.)GameGuard is now successfully bypassed!