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

Eaglent.sys


Rekomendowane odpowiedzi

Opublikowano

Swego czasu N1ght vel Dziki Wonrz pisał mi o tym sterowniku. Prawdopodobnie to za jego sprawą hacki w formie plików exe, czyli takie, które nie współdzielą pamięci z procesem gry, nie działają. Trochę pogrzebałem w sieci za sterownikami i metodami ich unieszkodliwiania. Sytuacja z EagleNT.sys wygląda mniej więcej tak, że sterownik tworzy się przy starcie gry i znika wraz z jej zakończeniem. Docelowo powstaje w katalogu X:\WINDOWS\system32\drivers.

Zwykli śmiertelnicy, pisząc aplikcje i korzystając z większości funkcji dostępnych Windows API poruszają się w tej najbardziej zewnętrznej sferze komunikacji w systemie tzw user-mode. Gdyby wgryźć się głębiej do jądra systemu, to znajdziemy usługi trybu kernel (kernel-mode). Te usługi to między innymi odpowiednie sterowniki. Sterowniki też korzystają z funkcji dostepnych w Windows API, ale tylko wybranych. Strukturą kodu mogą przypominać biblioteki w C.

Moim punktem wyjścia były właśnie te usługi. Programem ServiWin próbowałem wyłączyć EagleNT.sys po załadowaniu do gry, ale w jakiś sposób gra się przed tym broni. Chyba udało się go tylko zapauzować. Programem DriverView z kolei zdobyłem kolejne informacje o EagleNT.sys, m.in jego adres. Prawdopodobnie chodzi o punkt wejścia tego sterownika w pamięci, ale nie mam jak tego podejrzeć, bo w ułamku sekundy CE zostaje wykryty. Dezassemblacja też odpada, bo nie wiem czym rozpakować wersje 2.0.3 Themidy. Liczyłem trochę na Was w tym m.in. na speców od Delphi, żeby podpowiedzi, jak wygląda otwieranie procesu w kernel-mode w Cheat Engine.

Na chwile obecną chyba najlepszym rozwiązaniem byłoby nie dopuścić do załadowania tego sterownika, niż rozładowywać go po załadowaniu. Możnaby przy tym wykorzystać wspomniany wyżej adres, albo spróbowac shookować funkcję ładującą sterowniki. Wydaje mi się, że to funkcja o nazwie CreateService.

 

Edit:

 

Mam już pewien pomysł i zdaje się jest skuteczny. Przed odpaleniem gry, za pomocą:

 

KODFile.Create(Environment.SystemDirectory + @"\Drivers\EagleNT.sys");

 

tworzę pusty plik, odpowiadający plikowi sterownika. Dopóki nie zamknę programu, który stworzył plik, to nie da się go usunąć, ani podmienić. Jednocześnie gra ładuje nową usługę referującą do tego pustego pliku, bo nie może utworzyć oryginalnego EagleNT.sys na jego miejsce. Usługa formalnie działa, ale nic nie robi smile.gif

 

 

 

 

test_colors.jpg

×
×
  • Dodaj nową pozycję...