Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Gothic Multiplayer - Kod z banlisty


Dante275

Rekomendowane odpowiedzi

Opublikowano

Witajcie, zastanawiałem się co to za kod pochodzący z GMP, a dokładniej z  banlisty i czy można go zmienić?

Chodzi o ten kod:

ebacc78af2ff353e7a6db9c7c1b3bd5f814da317

Tutaj umieściłem przykładowy ban na gracza:

ebacc78af2ff353e7a6db9c7c1b3bd5f814da317 10-FE-ED-25-F3-49 82.160.13.2 Nick
------------------?????----------------- -------MAC------- ----IP----- --NICK---

Będę wdzięczny za odpowiedzi.

 

Jeśli takowy użytkownik nie będzie chciał podzielić się ze wszystkimi tą wiedzą, może wysłać mi odpowiedź na PW.

Opublikowano

Gdzieś kiedyś słyszałem, że się da. Np. na serwie widziałem jak gracz dostał bana, póżniej wbił znowu... Może jakoś się da. A wiesz co to za kod ?

Opublikowano

Ja wiem, już tłumaczę jak działa system banowania i za co (prawdopodobnie) odpowiada tenże hash:

bacc78af2ff353e7a6db9c7c1b3bd5f814da317 - jest to zaszyfrowany HWID dysku lub czegoś innego, ale to nie jest istotne.

Kod ten jest zapisywany w pamięci gry wtedy, kiedy gmp.dll hest wstrzykiwane do Gothic2.exe.

Skoro jest w pamięci gry, to można go bardzo łatwo znaleźć, gdyż rezyduje tam w postaci niezakodowanej zaraz obok adresu MAC ( kilka, kilkanaście bajtów bliżej/dalej).

Podam kod, który omija ów zabezpieczenie i pozwala grać bez bana przy zmianie samego IP:

// gProc_id - PID procesu gry.
// prochandle - uchwyt procesu gry.
//...
gmpBaseModuleAddress = GetModuleBase(L"gmp.dll", gProc_id);
//...
int mac_to_write = 1424010979;
int MAC_R9_ADDRESS;
 
ReadProcessMemory(prochandle, (void*)(gmpBaseModuleAddress + 0x002AB240), &MAC_R9_ADDRESS, sizeof(MAC_R9_ADDRESS), NULL);
WriteProcessMemory(prochandle, (void*)(MAC_R9_ADDRESS + 0x138), &mac_to_write, sizeof(mac_to_write), &bytesWritten);

Nie jest to kompletny kod, z resztą takiego wam nie podam, ale powinniście po tym zobaczyć, jak proste i nieskuteczne są zabezpieczenia GMP R9 oraz R11 (One się  różnią adresami w pamięci tego MAC i hasha, wystarczy poszukać).

Edit: Dodam też, że można zmienić wartość adresu na jaką się chce - ja nadpisałem pierwsze kilka bajtów całkowicie losowymi liczbami.

Opublikowano
/...
lBaseModuleAddress = GetModuleBase(L"gmp.dll", gProc_id);
//...
ULONGLONG Hash_overwrite = 6283637604167782992;
int mac_to_write = 1424010979;
int MAC_R9_ADDRESS;
 
ReadProcessMemory(prochandle, (void*)(lBaseModuleAddress + 0x002AB240), &MAC_R9_ADDRESS, sizeof(MAC_R9_ADDRESS), NULL);
ULONGLONG Hash_overwrite = 6283657604167782992;
WriteProcessMemory(prochandle, (void*)(MAC_R9_ADDRESS + 0x138), &mac_to_write, sizeof(mac_to_write), &bytesWritten);
WriteProcessMemory(prochandle, (void*)(MAC_R9_ADDRESS + 0x106), &Hash_overwrite, sizeof(Hash_overwrite), &bytesWritten);

 

Ten kod trzeba gdzieś wkleić, czy to kod wyciągnięty z Gothic2.exe ?

Opublikowano

Ten kod trzeba gdzieś wkleić, czy to kod wyciągnięty z Gothic2.exe ?

Jak już pisałem, to nie jest pełny kod i takiego też nie podam. Platforma ledwo dycha, więc nie będę jej dobijał.

To jest napisane w C++ i miało dać ogólne spojrzenie na prostotę mechanizmu banowania.

Znacznie wygodniejszym sposobem na ominięcie tych "zabezpieczeń" jest edycja gmp.dll - nie wiem, czy teraz sprawdzają md5, ale jak się bawiłem pół roku temu to dało się wiele rzeczy zrobić.

Podepnij sobie jakiś skaner inny niż Cheat Engine, poszukaj string "Cheat Engine" i zmień na co tylko chcesz. Bravo, właśnie pozbyłeś się zabezpieczenia przeciw CE.

Ja wskaźniki do adresów MAC i tego hasha znalazłem w taki sam sposób, możesz też szukać nazwy serwera na którym jesteś i kilka/kilkanaście bajtów dalej masz hash i MAC obok siebie.

Opublikowano

Próbowałem złamać zabezpieczenie przed CE, przez Resource Hacker, znalazłem coś na temat CE i usunąłęm to i nic.

Używałem też  twojego "Bypassa" , lecz też nie działa.

Opublikowano

Wcześniej podałem kod, w którym to nadpisywałem ten hash. To błąd.

Tak wygląda sposób uzyskiwania kodu seryjnego:

UINT serialHDD;
GetVolumeInformationA("C:\\",NULL,NULL,&serialHDD,NULL,NULL,NULL,NULL);

W przypadku zbanowania wystarczy zmienić w "C:\\" literke "C" na inną partycję. Znacznie lepszym rozwiązaniem jest hook do GetVolumeInformation.

Tak więc finalna postać kodu z banlisty będzie wyglądać tak:

ebacc78af2ff353e7a6db9c7c1b3bd5f814da317 10-FE-ED-15-F3-49 82.160.11.2   Nick
------------------HDDSerial------------- -------MAC------- ----IP----- --NICK---

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...