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ą?

- 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.
edytowany 1x, ostatnio: Wronq
"...niskopoziomowych wywołań " - Chodzi Ci o podmianę Dllki czy jakiś inny trik? ( tak z ciekawości pytam )

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").
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.

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.
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.