Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Czytanie widocznej listy graczy z jądrem
#1
Mam sterownik jądra gotowy na RPM, mogę załadować go dobrze bez kopania po godzinach grania. Ale jak dokładnie uzyskać adres dla baseplayer (ja) i mojej widocznej listy graczy? Czy nadal nie potrzebuję uchwytu, który jest naprawdę łatwy do wykrycia? Myślałem, że punktem odczytu z jądra jest wyeliminowanie potrzeby obsługi, ale nie jestem pewien, jak to zrobić
Reply
#2
Zobacz, jak BlackBone odczytuje pamięć.
Reply
#3
Zacytować: Napisał iamoutlaw Zobacz, jak BlackBone odczytuje pamięć. Wydaje się używać standardowego odczytu z przeciążeniem do odczytu przy użyciu listy przesunięć, którą mój sterownik już robi. Jak jednak zdobyć adres? czy nie dostaję czegoś? E: Masz na myśli hak? I mam użyć bezpośrednio biblioteki jedności w sterowniku (lub module)?
Reply
#4
Zacytować: Originally Posted by dler4 Wydaje się używać standardowego odczytu z przeciążeniem do odczytu przy użyciu listy przesunięć, którą mój sterownik już robi. Jak jednak zdobyć adres? czy nie dostaję czegoś? E: Masz na myśli hak? I mam użyć bezpośrednio biblioteki jedności w sterowniku (lub module)? Nie rozumiem tego pytania. Czy pytasz, jak znaleźć adresy / odsunięcia, z których musisz czytać?
Reply
#5
Zacytować: Napisał iamoutlaw Nie rozumiem tego pytania. Czy pytasz, jak znaleźć adresy / odsunięcia, z których musisz czytać? Tak. Na przykład, czy mam znaleźć adresy obiektów graczy bezpośrednio w moim zewnętrznym hacku, wywołując FindObjectsOfType lub iterując visiblePlayerList? Jeśli tak, to mam dostać uchwyt do mojego zewnętrznego hacka, który jest niebezpieczny? A może jest inny sposób na zrobienie tego?
Reply
#6
Przeczytaj wewnętrzny / zewnętrzny wątek, aby zrozumieć iterujące byty, dosłownie wszystko, czego potrzebujesz, jest tam. Odczytujesz pamięć od sterownika za pomocą MmCopyVirtualMemory, nie potrzebujesz obsługi do gry.
Reply
#7
Zacytować: Napisał iamoutlaw Przeczytaj wewnętrzny / zewnętrzny wątek, aby zrozumieć iterujące byty, dosłownie wszystko, czego potrzebujesz, jest tam. Odczytujesz pamięć od sterownika za pomocą MmCopyVirtualMemory, nie potrzebujesz obsługi do gry. Ahh teraz widzę. Tak więc używam ActiveObjects GameObjectManager jako bazy, iterując używając nextObjectLink. Czy powolne byłoby sprawdzanie każdego obiektu w pętli? Czy powinienem przechowywać kod logiczny iteratora w moim urządzeniu lub moim hackowaniu zewnętrznym? Wygląda na to, że zwrócenie bufora dla każdego adresu do programu nie jest zbyt efektywne Wielkie dzięki za pomoc, było głupie pytanie z perspektywy czasu
Reply
#8
Zacytować: Originally Posted by dler4 Tak. Na przykład, czy mam znaleźć adresy obiektów graczy bezpośrednio w moim zewnętrznym hacku, wywołując FindObjectsOfType lub iterując visiblePlayerList? Jeśli tak, to mam dostać uchwyt do mojego zewnętrznego hacka, który jest niebezpieczny? A może jest inny sposób na zrobienie tego? Jesteś zewnętrzny, więc nie wywołujesz żadnych funkcji jedności. Jesteś jądrem, więc nie otwierasz uchwytów. Powinieneś przyłączyć się do docelowej pamięci i kopiować / pisać używając buforów i DeviceIO. Szczerze mówiąc, to jest coś, co powinieneś wiedzieć, zanim zaczniesz się bawić w jądrze, ale każdemu z nich.
Reply
#9
Zacytować: Wysłane przez pierwotnie [censored] ss Jesteś zewnętrzny, więc nie wywołujesz żadnych funkcji jedności. Jesteś jądrem, więc nie otwierasz uchwytów. Powinieneś przyłączyć się do docelowej pamięci i kopiować / pisać używając buforów i DeviceIO. Szczerze mówiąc, to jest coś, co powinieneś wiedzieć, zanim zaczniesz się bawić w jądrze, ale każdemu z nich. Zacytować: Originally Posted by dler4 to było głupie pytanie z perspektywy czasu Zdałem sobie sprawę :/ Jeśli chodzi o mój ostatni post, postanowiłem poświęcić jeden wątek na iterację wszystkich obiektów, aby zobaczyć, czy nowi gracze muszą zostać dodani, a inny wątek obsługuje listę obiektów graczy, aby zaktualizować wartości. Czy to właściwy sposób?
Reply
#10
Zacytować: Originally Posted by dler4 Zdałem sobie sprawę :/ Jeśli chodzi o mój ostatni post, postanowiłem poświęcić jeden wątek na iterację wszystkich obiektów, aby zobaczyć, czy nowi gracze muszą zostać dodani, a inny wątek obsługuje listę obiektów graczy, aby zaktualizować wartości. Czy to właściwy sposób? Tak, to zadziała, ale upewnij się, że nigdy nie masz dostępu do / zmiany tych samych danych w tym samym czasie. Jeśli zamierzają udostępnić listę obiektów, użyj czegoś takiego jak CriticalSection, aby zapobiec zbędnemu udostępnianiu wspólnej puli danych.
Reply




Users browsing this thread: 1 Guest(s)