Esse tutorial foi feito com base nos GS da versão beta 33 do Luciano Aibar e comparados com os GS fixados por Sable. Assim, deixo aqui os agradecimentos a Sable por disponibilizar os GS com os fixes para Potion Bug, Party Zen Bug e PK Bug.
Lembro que os offsets do tutorial são da versão beta 33 do Luciano Aibar.
Fix PK Bug - GS normal
1 - Abra o GS no Olly e procure o offset
00427A71 |. C785 48FFFFFF >|MOV DWORD PTR SS:[EBP-B8],40400000
2 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
00427A71 |. 90 |NOP
00427A72 |. 90 |NOP
00427A73 |. 90 |NOP
00427A74 |. 90 |NOP
00427A75 |. 90 |NOP
00427A76 |. 90 |NOP
00427A77 |. 90 |NOP
00427A78 |. 90 |NOP
00427A79 |. 90 |NOP
00427A7A |. 90 |NOP
3 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
4 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
5 - Abra novamente o GS normal e procure pelo offset 004CD0FF.
004CD0FF |. C785 68FFFFFF >|MOV DWORD PTR SS:[EBP-98],3F800000
6 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
004CD0FF |. 90 |NOP
004CD100 |. 90 |NOP
004CD101 |. 90 |NOP
004CD102 |. 90 |NOP
004CD103 |. 90 |NOP
004CD104 |. 90 |NOP
004CD105 |. 90 |NOP
004CD106 |. 90 |NOP
004CD107 |. 90 |NOP
004CD108 |. 90 |NOP
7 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
8 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
=======================
Fix PK Bug - GS-CS
1 - Abra o GS-CS no Olly e procure o offset
00429401 |. C785 48FFFFFF >|MOV DWORD PTR SS:[EBP-B8],40400000
2 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
00429401 |. 90 |NOP
00429402 |. 90 |NOP
00429403 |. 90 |NOP
00429404 |. 90 |NOP
00429405 |. 90 |NOP
00429406 |. 90 |NOP
00429407 |. 90 |NOP
00429408 |. 90 |NOP
00429409 |. 90 |NOP
0042940A |. 90 |NOP
3 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
4 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
5 - Abra novamente o GameServer e procure pelo offset 004DE9DF.
004DE9DF |. C785 68FFFFFF 0000803F |MOV DWORD PTR SS:[EBP-98],3F800000
6 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
004DE9DF |. 90 |NOP
004DE9E0 |. 90 |NOP
004DE9E1 |. 90 |NOP
004DE9E2 |. 90 |NOP
004DE9E3 |. 90 |NOP
004DE9E4 |. 90 |NOP
004DE9E5 |. 90 |NOP
004DE9E6 |. 90 |NOP
004DE9E7 |. 90 |NOP
004DE9E8 |. 90 |NOP
7 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
8 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
==============================================
Fix Potion Bug e Party Zen Bug - GS-CS
1 - Abra o GS-CS e procure pelo offset 004DE98E:
004DE98E |. C785 68FFFFFF >|MOV DWORD PTR SS:[EBP-98],40400000
2 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
004DE98E |. 90 |NOP
004DE98F |. 90 |NOP
004DE990 |. 90 |NOP
004DE991 |. 90 |NOP
004DE992 |. 90 |NOP
004DE993 |. 90 |NOP
004DE994 |. 90 |NOP
004DE995 |. 90 |NOP
004DE996 |. 90 |NOP
004DE997 |. 90 |NOP
3 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
4 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
5 - Abra novamente o GS-CS e procure pelo offset 004EF560
004EF560 |. 83C4 14 |ADD ESP,14
004EF563 |>^E9 C1FDFFFF \JMP gameserv.004EF329
004EF568 |> 5F POP EDI
004EF569 |. 5E POP ESI
004EF56A |. 5B POP EBX
004EF56B |. 8BE5 MOV ESP,EBP
004EF56D |. 5D POP EBP
004EF56E \. C3 RETN
6 - Clique então duas vezes no primeiro offset e cole as "strings" seguindo a seqüência abaixo:
004EF560 |. 83C4 14 |ADD ESP,14
004EF563 |>^E9 C1FDFFFF \JMP gameserv.004EF329
004EF568 |> 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004EF56B |. 33C0 XOR EAX,EAX
004EF56D |. 8A41 64 MOV AL,BYTE PTR DS:[ECX+64]
004EF570 |. 83F8 02 CMP EAX,2
004EF573 |. 74 05 JE SHORT gameserv.004EF57A
004EF575 |. 83F8 03 CMP EAX,3
004EF578 |. 75 20 JNZ SHORT gameserv.004EF59A
004EF57A |> 8B91 B4000000 MOV EDX,DWORD PTR DS:[ECX+0B4]
004EF580 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
004EF583 |. DB45 F8 FILD DWORD PTR SS:[EBP-8]
004EF586 |. D80D F8E27000 FMUL DWORD PTR DS:[70E2F8]
004EF58C |. E8 6B450C00 CALL gameserv.005B3AFC
004EF591 |. 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004EF594 |. 8981 B4000000 MOV DWORD PTR DS:[ECX+0B4],EAX
004EF59A |> 5F POP EDI
004EF59B |. 5E POP ESI
004EF59C |. 5B POP EBX
004EF59D |. 8BE5 MOV ESP,EBP
004EF59F |. 5D POP EBP
004EF5A0 \. C3 RETN
7 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
8 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
================================================== =================
Fix Potion Bug e Party Zen Bug - GS-normal
1 - Abra o GS normal e procure pelo offset 004CD0AE:
004CD0AE |. C785 68FFFFFF >|MOV DWORD PTR SS:[EBP-98],40400000
2 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
004CD0AE |. 90 |NOP
004CD0AF |. 90 |NOP
004CD0B0 |. 90 |NOP
004CD0B1 |. 90 |NOP
004CD0B2 |. 90 |NOP
004CD0B3 |. 90 |NOP
004CD0B4 |. 90 |NOP
004CD0B5 |. 90 |NOP
004CD0B6 |. 90 |NOP
004CD0B7 |. 90 |NOP
3 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
4 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
5 - Abra novamente o GS normal e procure pelo offset 004DD310:
004DD310 |. 83C4 14 |ADD ESP,14
004DD313 |>^E9 C1FDFFFF \JMP gameserv.004DD0D9
004DD318 |> 5F POP EDI
004DD319 |. 5E POP ESI
004DD31A |. 5B POP EBX
004DD31B |. 8BE5 MOV ESP,EBP
004DD31D |. 5D POP EBP
004DD31E \. C3 RETN
6 - Clique então duas vezes no primeiro offset e cole as "strings" seguindo a seqüência abaixo:
004DD310 |. 83C4 14 |ADD ESP,14
004DD313 |>^E9 C1FDFFFF \JMP GameServ.004DD0D9
004DD318 |> 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004DD31B |. 33C0 XOR EAX,EAX
004DD31D |. 8A41 64 MOV AL,BYTE PTR DS:[ECX+64]
004DD320 |. 83F8 02 CMP EAX,2
004DD323 |. 74 05 JE SHORT GameServ.004DD32A
004DD325 |. 83F8 03 CMP EAX,3
004DD328 |. 75 20 JNZ SHORT GameServ.004DD34A
004DD32A |> 8B91 B4000000 MOV EDX,DWORD PTR DS:[ECX+B4]
004DD330 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
004DD333 |. DB45 F8 FILD DWORD PTR SS:[EBP-8]
004DD336 |. D80D D8816B00 FMUL DWORD PTR DS:[6B81D8]
004DD33C |. E8 6B2F0A00 CALL GameServ.005802AC
004DD341 |. 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004DD344 |. 8981 B4000000 MOV DWORD PTR DS:[ECX+B4],EAX
004DD34A |> 5F POP EDI
004DD34B |. 5E POP ESI
004DD34C |. 5B POP EBX
004DD34D |. 8BE5 MOV ESP,EBP
004DD34F |. 5D POP EBP
004DD350 \. C3 RETN
7 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
8 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
créditos:
* Sable por ter postado os GS modificados
* chris05 - DSTeam por ter elaborado o tutorial
Lembro que os offsets do tutorial são da versão beta 33 do Luciano Aibar.
Fix PK Bug - GS normal
1 - Abra o GS no Olly e procure o offset
00427A71 |. C785 48FFFFFF >|MOV DWORD PTR SS:[EBP-B8],40400000
2 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
00427A71 |. 90 |NOP
00427A72 |. 90 |NOP
00427A73 |. 90 |NOP
00427A74 |. 90 |NOP
00427A75 |. 90 |NOP
00427A76 |. 90 |NOP
00427A77 |. 90 |NOP
00427A78 |. 90 |NOP
00427A79 |. 90 |NOP
00427A7A |. 90 |NOP
3 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
4 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
5 - Abra novamente o GS normal e procure pelo offset 004CD0FF.
004CD0FF |. C785 68FFFFFF >|MOV DWORD PTR SS:[EBP-98],3F800000
6 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
004CD0FF |. 90 |NOP
004CD100 |. 90 |NOP
004CD101 |. 90 |NOP
004CD102 |. 90 |NOP
004CD103 |. 90 |NOP
004CD104 |. 90 |NOP
004CD105 |. 90 |NOP
004CD106 |. 90 |NOP
004CD107 |. 90 |NOP
004CD108 |. 90 |NOP
7 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
8 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
=======================
Fix PK Bug - GS-CS
1 - Abra o GS-CS no Olly e procure o offset
00429401 |. C785 48FFFFFF >|MOV DWORD PTR SS:[EBP-B8],40400000
2 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
00429401 |. 90 |NOP
00429402 |. 90 |NOP
00429403 |. 90 |NOP
00429404 |. 90 |NOP
00429405 |. 90 |NOP
00429406 |. 90 |NOP
00429407 |. 90 |NOP
00429408 |. 90 |NOP
00429409 |. 90 |NOP
0042940A |. 90 |NOP
3 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
4 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
5 - Abra novamente o GameServer e procure pelo offset 004DE9DF.
004DE9DF |. C785 68FFFFFF 0000803F |MOV DWORD PTR SS:[EBP-98],3F800000
6 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
004DE9DF |. 90 |NOP
004DE9E0 |. 90 |NOP
004DE9E1 |. 90 |NOP
004DE9E2 |. 90 |NOP
004DE9E3 |. 90 |NOP
004DE9E4 |. 90 |NOP
004DE9E5 |. 90 |NOP
004DE9E6 |. 90 |NOP
004DE9E7 |. 90 |NOP
004DE9E8 |. 90 |NOP
7 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
8 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
==============================================
Fix Potion Bug e Party Zen Bug - GS-CS
1 - Abra o GS-CS e procure pelo offset 004DE98E:
004DE98E |. C785 68FFFFFF >|MOV DWORD PTR SS:[EBP-98],40400000
2 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
004DE98E |. 90 |NOP
004DE98F |. 90 |NOP
004DE990 |. 90 |NOP
004DE991 |. 90 |NOP
004DE992 |. 90 |NOP
004DE993 |. 90 |NOP
004DE994 |. 90 |NOP
004DE995 |. 90 |NOP
004DE996 |. 90 |NOP
004DE997 |. 90 |NOP
3 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
4 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
5 - Abra novamente o GS-CS e procure pelo offset 004EF560
004EF560 |. 83C4 14 |ADD ESP,14
004EF563 |>^E9 C1FDFFFF \JMP gameserv.004EF329
004EF568 |> 5F POP EDI
004EF569 |. 5E POP ESI
004EF56A |. 5B POP EBX
004EF56B |. 8BE5 MOV ESP,EBP
004EF56D |. 5D POP EBP
004EF56E \. C3 RETN
6 - Clique então duas vezes no primeiro offset e cole as "strings" seguindo a seqüência abaixo:
004EF560 |. 83C4 14 |ADD ESP,14
004EF563 |>^E9 C1FDFFFF \JMP gameserv.004EF329
004EF568 |> 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004EF56B |. 33C0 XOR EAX,EAX
004EF56D |. 8A41 64 MOV AL,BYTE PTR DS:[ECX+64]
004EF570 |. 83F8 02 CMP EAX,2
004EF573 |. 74 05 JE SHORT gameserv.004EF57A
004EF575 |. 83F8 03 CMP EAX,3
004EF578 |. 75 20 JNZ SHORT gameserv.004EF59A
004EF57A |> 8B91 B4000000 MOV EDX,DWORD PTR DS:[ECX+0B4]
004EF580 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
004EF583 |. DB45 F8 FILD DWORD PTR SS:[EBP-8]
004EF586 |. D80D F8E27000 FMUL DWORD PTR DS:[70E2F8]
004EF58C |. E8 6B450C00 CALL gameserv.005B3AFC
004EF591 |. 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004EF594 |. 8981 B4000000 MOV DWORD PTR DS:[ECX+0B4],EAX
004EF59A |> 5F POP EDI
004EF59B |. 5E POP ESI
004EF59C |. 5B POP EBX
004EF59D |. 8BE5 MOV ESP,EBP
004EF59F |. 5D POP EBP
004EF5A0 \. C3 RETN
7 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
8 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
================================================== =================
Fix Potion Bug e Party Zen Bug - GS-normal
1 - Abra o GS normal e procure pelo offset 004CD0AE:
004CD0AE |. C785 68FFFFFF >|MOV DWORD PTR SS:[EBP-98],40400000
2 - Clique com o botão direito nesse offset e selecione a opção Binary -> Fill with NOPs. Ficará então como mostrado abaixo.
004CD0AE |. 90 |NOP
004CD0AF |. 90 |NOP
004CD0B0 |. 90 |NOP
004CD0B1 |. 90 |NOP
004CD0B2 |. 90 |NOP
004CD0B3 |. 90 |NOP
004CD0B4 |. 90 |NOP
004CD0B5 |. 90 |NOP
004CD0B6 |. 90 |NOP
004CD0B7 |. 90 |NOP
3 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
4 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
5 - Abra novamente o GS normal e procure pelo offset 004DD310:
004DD310 |. 83C4 14 |ADD ESP,14
004DD313 |>^E9 C1FDFFFF \JMP gameserv.004DD0D9
004DD318 |> 5F POP EDI
004DD319 |. 5E POP ESI
004DD31A |. 5B POP EBX
004DD31B |. 8BE5 MOV ESP,EBP
004DD31D |. 5D POP EBP
004DD31E \. C3 RETN
6 - Clique então duas vezes no primeiro offset e cole as "strings" seguindo a seqüência abaixo:
004DD310 |. 83C4 14 |ADD ESP,14
004DD313 |>^E9 C1FDFFFF \JMP GameServ.004DD0D9
004DD318 |> 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004DD31B |. 33C0 XOR EAX,EAX
004DD31D |. 8A41 64 MOV AL,BYTE PTR DS:[ECX+64]
004DD320 |. 83F8 02 CMP EAX,2
004DD323 |. 74 05 JE SHORT GameServ.004DD32A
004DD325 |. 83F8 03 CMP EAX,3
004DD328 |. 75 20 JNZ SHORT GameServ.004DD34A
004DD32A |> 8B91 B4000000 MOV EDX,DWORD PTR DS:[ECX+B4]
004DD330 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
004DD333 |. DB45 F8 FILD DWORD PTR SS:[EBP-8]
004DD336 |. D80D D8816B00 FMUL DWORD PTR DS:[6B81D8]
004DD33C |. E8 6B2F0A00 CALL GameServ.005802AC
004DD341 |. 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004DD344 |. 8981 B4000000 MOV DWORD PTR DS:[ECX+B4],EAX
004DD34A |> 5F POP EDI
004DD34B |. 5E POP ESI
004DD34C |. 5B POP EBX
004DD34D |. 8BE5 MOV ESP,EBP
004DD34F |. 5D POP EBP
004DD350 \. C3 RETN
7 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.
8 - Clique em Copy all na janela que vai aparecer. Nessa janela, com o botão direito selecione Save File. E salve o arquivo.
créditos:
* Sable por ter postado os GS modificados
* chris05 - DSTeam por ter elaborado o tutorial