avatar_buffon

[РУКОВОДСТВО] GameGuard в массы! Устанавливаем на свой мейн nProtect GG - защиту с оффа с обновлени

Автор buffon, 2010 Дек. 20, 17:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlineзащитаGameGuardобновленияверсияпротокол (

buffon

nProtect GameGuard - Wikipedia
(насчет критики: там описана ситуация версий 1000, сейчас версия 1500)
В этом гайде пойдет речь о том как вернуть родной GG в свой мейн, в любую версию, любой протокол.

# Нам понадобится:
OllyDBG
# Ход работы:
1) Открываем мейн в OllyDBG
Изображение:
Спойлер
## здесь был скриншот ##
[свернуть]
2) Теперь нужно найти строчку "gg init error". Идем Правая Клавиша Мыши -> Search for -> All referenced text strings. В окне идем Правая Клавиша Мыши -> Search for text-> "gg init error" -> OK и нажать Enter
Изображение:
Спойлер
## здесь был скриншот ##
[свернуть]
3) Отлично! Теперь, если у вас взломанный мейн, нужно вернуть GG систему. Если ваш мейн не взломан, пропустите шаг. Делать нужно следующее:
Найти эти строчки:
005F1658  . 68 A8FE8B00    PUSH main_tes.008BFEA8                  ; /Arg2 = 008BFEA8 ASCII "config.ini read error"
005F165D  . 68 50AC0808    PUSH main_tes.0808AC50                  ; |Arg1 = 0808AC50
005F1662  . E8 BA080C00    CALL main_tes.006B1F21                  ; main_tes.006B1F21
005F1667  . 83C4 08        ADD ESP,8
005F166A  . C785 3CF2FFFF >MOV DWORD PTR SS:[EBP-DC4],0
005F1674  . 8D8D 40FFFFFF  LEA ECX,DWORD PTR SS:[EBP-C0]
005F167A  . E8 51140000    CALL main_tes.005F2AD0
005F167F  . 8B85 3CF2FFFF  MOV EAX,DWORD PTR SS:[EBP-DC4]
005F1685  . E9 BA120000    JMP main_tes.005F2944
005F168A  > 6A 01          PUSH 1
005F168C  . E8 79A02400    CALL main_tes.0083B70A
005F1691  . 83C4 04        ADD ESP,4
005F1694  . 8985 34F2FFFF  MOV DWORD PTR SS:[EBP-DCC],EAX
005F169A  . 83BD 34F2FFFF >CMP DWORD PTR SS:[EBP-DCC],0
005F16A1    75 19          JNZ SHORT main_tes.005F16BC
005F16A3  . A1 F8F78B00    MOV EAX,DWORD PTR DS:[8BF7F8]
005F16A8  . 50            PUSH EAX                                ; /Arg1 => 008BF810 ASCII "MuEng"
005F16A9  . 8B8D 34F2FFFF  MOV ECX,DWORD PTR SS:[EBP-DCC]          ; |
005F16AF  . E8 EC220000    CALL main_tes.005F39A0                  ; main_tes.005F39A0
005F16B4  . 8985 50F1FFFF  MOV DWORD PTR SS:[EBP-EB0],EAX
005F16BA  . EB 0A          JMP SHORT main_tes.005F16C6
005F16BC  > C785 50F1FFFF >MOV DWORD PTR SS:[EBP-EB0],0
005F16C6  > 8B8D 50F1FFFF  MOV ECX,DWORD PTR SS:[EBP-EB0]
005F16CC  . 898D 38F2FFFF  MOV DWORD PTR SS:[EBP-DC8],ECX
005F16D2  . 8B95 38F2FFFF  MOV EDX,DWORD PTR SS:[EBP-DC8]
005F16D8  . 8915 88B00808  MOV DWORD PTR DS:[808B088],EDX
005F16DE  . E8 BDE40B00    CALL main_tes.006AFBA0
005F16E3  . 25 FF000000    AND EAX,0FF
005F16E8  . 85C0          TEST EAX,EAX
005F16EA    E9 8A000000    JMP main_tes.005F1779
005F16EF    90            NOP
005F16F0  . 68 C0FE8B00    PUSH main_tes.008BFEC0                  ; /Arg2 = 008BFEC0 ASCII "gg init error"

и заменить на:
005F1658  . 68 A8FE8B00    PUSH main_tes.008BFEA8                  ; /Arg2 = 008BFEA8 ASCII "config.ini read error"
005F165D  . 68 50AC0808    PUSH main_tes.0808AC50                  ; |Arg1 = 0808AC50
005F1662  . E8 BA080C00    CALL main_tes.006B1F21                  ; main_tes.006B1F21
005F1667  . 83C4 08        ADD ESP,8
005F166A  . C785 3CF2FFFF >MOV DWORD PTR SS:[EBP-DC4],0
005F1674  . 8D8D 40FFFFFF  LEA ECX,DWORD PTR SS:[EBP-C0]
005F167A  . E8 51140000    CALL main_tes.005F2AD0
005F167F  . 8B85 3CF2FFFF  MOV EAX,DWORD PTR SS:[EBP-DC4]
005F1685  . E9 BA120000    JMP main_tes.005F2944
005F168A  > 6A 01          PUSH 1
005F168C    E8 79A02400    CALL main_tes.0083B70A
005F1691    83C4 04        ADD ESP,4
005F1694    8985 34F2FFFF  MOV DWORD PTR SS:[EBP-DCC],EAX
005F169A    83BD 34F2FFFF >CMP DWORD PTR SS:[EBP-DCC],0
005F16A1    74 19          JE SHORT main_tes.005F16BC
005F16A3    A1 F8F78B00    MOV EAX,DWORD PTR DS:[8BF7F8]
005F16A8    50            PUSH EAX                                ; /Arg1 => 008BF810 ASCII "MuEng"
005F16A9    8B8D 34F2FFFF  MOV ECX,DWORD PTR SS:[EBP-DCC]          ; |
005F16AF    E8 EC220000    CALL main_tes.005F39A0                  ; main_tes.005F39A0
005F16B4    8985 50F1FFFF  MOV DWORD PTR SS:[EBP-EB0],EAX
005F16BA    EB 0A          JMP SHORT main_tes.005F16C6
005F16BC    C785 50F1FFFF >MOV DWORD PTR SS:[EBP-EB0],0
005F16C6    8B8D 50F1FFFF  MOV ECX,DWORD PTR SS:[EBP-EB0]
005F16CC    898D 38F2FFFF  MOV DWORD PTR SS:[EBP-DC8],ECX
005F16D2    8B95 38F2FFFF  MOV EDX,DWORD PTR SS:[EBP-DC8]
005F16D8    8915 88B00808  MOV DWORD PTR DS:[808B088],EDX
005F16DE    E8 BDE40B00    CALL main_tes.006AFBA0
005F16E3    25 FF000000    AND EAX,0FF
005F16E8    85C0          TEST EAX,EAX
005F16EA    0F85 89000000  JNZ main_tes.005F1779
005F16F0    68 C0FE8B00    PUSH main_tes.008BFEC0                  ; /Arg2 = 008BFEC0 ASCII "gg init error"
Ваш мейн будет похож на тот, что на картинке:
Спойлер
## здесь был скриншот ##
[свернуть]

4) Теперь, если у вас мейн не корейского протокола, нужно настроить ГГ так, что б он соединялся не с английским севером а корейским. Если у вас корейский мейн, пропустите шаг:
а) Найдите строчку MuEng (делать также как с gg init error). При нажатии Ентера вы перейдет на что-то, похожее на это:
005F16A3    A1 F8F78B00    MOV EAX,DWORD PTR DS:[[color=#FF0000]8BF7F8[/color]]
005F16A8    50            PUSH EAX                                ; /Arg1 => 008BF810 ASCII "MuEng"
б) Перейдите на выделенный оффсет (у меня это 8BF7F8)
в) Затем на том оффсете жмем: Правая Клавиша Мыши -> Follow in Dump -> Selection
Изображение:
Спойлер
## здесь был скриншот ##
[свернуть]
г) Меняем MuEng на Mu
Изображение:
Спойлер
## здесь был скриншот ##
[свернуть]

5) Сохраняемся (как?: /index.php?topic=10945.0)
6) И, наконец, запихиваем все из архива в клиент (архив:MULTIUPLOAD)

# Кредиты:
goodlike (buffon) - подготовил
HueyGTO - поделился знаниями

Насчет того что GG говно: гг уже давно на рынке и будет далеко лучше от скомпиленых сорсов f1x или других сканеров памяти. Не смотря на то что, "он говно, его уже обошли" он остается актуальным посей день, и если попадет в прямые руки админа, то обеспечит отличную защиту приватного сервера. CHECKSUM обязателен, ибо снимается обратным путем гайда (именно так его и обошли тогда).

Simp1e

CHECKSUM  так же обманывается как и этот GameGuard)

вы думаете можно положиться на CHECKSUM  ?? что такое CHECKSUM   пакет который принимает GameServer Да его можно подменить так же и снять GameGuard)
если хотите юзать GameGuard Придумывайте свою запудренную проверку на целостность файлов

buffon

я не говорил что нельзя обойти checksum
кто б сказал как сжделать надежней

Похожие темы (5)