Esse tutorial é antigo e baseado em um GameServer 1.00.16. Assim, todos os offsets desse tutorial são dessa versão de GS. Mas o princípio e os passos poderão ser usados em qualquer versão de GS (sendo que os offsets são diferentes), desde que ele não esteja packeado. Os offsets desse tutorial são 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.
Código: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.
Código: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.
Código: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.
Código: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.
Código: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
Código: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:
7 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.Código: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
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.
Código: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:
Código: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:
7 - Com o botão direito, selecione a opção Copy to Executable -> All modifications.Código: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
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