Procesy, wszystko.

Procesy, wszystko.
ZA
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 13 lat
  • Postów:27
0

Cześć, mam pewien problem chce zrobić program który będzie wyświetlał grafikę w pewnej grze. A konkretniej chodzi o to jak się za to zabrać. Czytałem że trzeba zahaczyć proces ale co potem? Czy istnieje jakaś biblioteka do zarządzania procesami wraz z dokumentacją?

OO
" Czy istnieje jakaś biblioteka do zarządzania procesami wraz z dokumentacją?": Biblioteki WinAPI, dokumentacja jest na MSDN.
Wronq
  • Rejestracja:około 17 lat
  • Ostatnio:ponad 10 lat
0

Co to znaczy zahaczyć proces?
Można dostać się do czegoś takiego jak HDC (o ile dobrze pamiętam) innego okna i po tym rysować (również o ile dobrze pamiętam można to wykorzystać przy tworzeniu obiektu graphics, ale nie chce mi się odpalać kompilatora i sprawdzać). Ale ten sposób zadziała chyba tylko przy niepełnoekranowych aplikacjach, poza tym musiałbyś po każdym "odświeżeniu" okna gry odrysowywać swoje rzeczy na nowo.
W przypadku aplikacji Direct, OpenGl itp. można zrobić to delikatnie inaczej - ale tutaj jest wymagana spora wiedza na temat niskopoziomowych wywołań i asemblera.


Some people see things as they are, and say "why?". I dream things that never were and say "why not?".
edytowany 1x, ostatnio: Wronq
OO
"...niskopoziomowych wywołań " - Chodzi Ci o podmianę Dllki czy jakiś inny trik? ( tak z ciekawości pytam )
Wronq
Chodziło mi mniej więcej o wstawki w asmie w taki sposób, aby nie zakłócić pracy aplikacji. Oraz o wpinanie się w obce procesy (hooki lokalne - może o to chodziło autorowi tematu, mówiąc "zahaczyć proces").
OO
Przy grafice to często łatwiej jest podstawić po ddll'kę directa swoją co przesyła dane do i z oryginalnej dllki a przy okazji robi swoje mając dane do wszystkich danych obrazu.
Wronq
W przypadku większej aplikacji może i tak. Jak ja się z tym bawiłem wystarczyło, że zmieniłem entry point programu na mój, gdzie ładowałem swoją bibliotekę i skakałem do tego oryginalnego entry pointa (lub wstrzykiwałem tą dllkę z jakiegoś injectora). W dll'ce zakładałem kilka inline hooków i wszystko śmigało jak należy.
RE
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:około rok
0

W każdym razie, .NET nie jest optymalnym rozwiązaniem tego problemu. Implementację, zwłaszcza jakichkolwiek injections radzę tradycyjnie napisać w C/C++.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.