Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Zidentyfikuj interfejs użytkownika narysowany w aplikacji
#1
Cześć wszystkim,   Napisałem opakowanie dxgi, które wprowadza ogólne przetwarzanie postów do gier. Wszystko działa dobrze, ale mam problemy z interfejsem niektórych gier, które są również przetwarzane. Zajmuję się obecną funkcją i chciałbym się dowiedzieć, czy istnieje jakikolwiek sposób określenia, kiedy interfejs jest rysowany lub jak uniknąć rysowania interfejsu użytkownika gry.   O ile wiem, ENB i narzędzia GeDoSaTo zaimplementowały takie rzeczy do konkretnych gier (więc wiem, że nie można tego zrobić w sposób ogólny).   Dzięki za pomoc!!
Reply
#2
Musisz znaleźć funkcję, która jest używana w grze do rysowania gui (Powinno być łatwe przez struny). Po znalezieniu go możesz użyć funkcji Hook, aby wiedzieć, kiedy rysowane jest GUI. Jeśli nie chcesz narysować gui, możesz nop / ret funkcji. Większość gier narysuje swoje gui za pomocą DIP, więc możesz też je podpiąć i sprawdzić, czy prymityw, który zostanie narysowany, jest częścią gui
Reply
#3
Zacytować: Napisał Cre3per Musisz znaleźć funkcję, która jest używana w grze do rysowania gui (Powinno być łatwe przez struny). Po znalezieniu go możesz użyć funkcji Hook, aby wiedzieć, kiedy rysowane jest GUI. Jeśli nie chcesz narysować gui, możesz nop / ret funkcji. Większość gier narysuje swoje gui za pomocą DIP, więc możesz też je podpiąć i sprawdzić, czy prymityw, który zostanie narysowany, jest częścią gui Przede wszystkim dziękuję za to, że jest to łatwe i możliwe Właściwie chcę przetwarzać tylko teksturę, która jest rysowana przed narysowaniem oryginalnego gui, więc efekty końcowe są stosowane tylko do wszystkiego "za" gui. Myślę, że nie wyjaśniłem tego wystarczająco dobrze, moje złe. Teraz przetwarzam każdą teksturę, jaką otrzymuję w buforze łańcucha wymiany podaną w obecnej funkcji (zawsze jest tylko jedna tekstura). Chyba nie mogę po prostu narysować tekstury "tła" ?! Zasadniczo, jeśli powiesz, że istnieje funkcja narysowania gui, oznacza to, że może istnieć również funkcja wywoływania "tła", do którego powinienem się podłączyć? Zobaczę, czy uda mi się zidentyfikować coś z IDA ... ale dalsza pomoc byłaby doceniona.
Reply
#4
jeśli chcesz uczynić to ogólnym celem, możesz wyłączyć cały rysunek, a następnie d3d rysuje w trybie 2d.
Reply
#5
Zacytować: Originally Posted by learn_more jeśli chcesz uczynić to ogólnym celem, możesz wyłączyć cały rysunek, a następnie d3d rysuje w trybie 2d. W jaki sposób to obejście pomoże mi przetwarzać poprawną teksturę ("tło") zamiast kombinacji tła i gui?
Reply
#6
Podłącz funkcję rysowania GUI lub DIP Rób swoje Gdy rysujesz GUI, wyłącz magię przetwarzania Po narysowaniu GUI ponownie włącza swoją magię
Reply
#7
Zacytować: Napisał Cre3per Podłącz funkcję rysowania GUI lub DIP Rób swoje Gdy rysujesz GUI, wyłącz magię przetwarzania Po narysowaniu GUI ponownie włącza swoją magię Czym dokładnie jest DIP? Do tej pory dowiedziałem się, że gui (i myślę też, że większość wszystkich innych zasobów gry) jest rysowana z inną funkcją rysowania d3d11.dll niż moje własne shadery. Jednak myślę, że obecna funkcja daje mi całą teksturę z już nałożonym GUI, co oznacza, że kiedy wyłączę moją magię podczas rysowania GUI (czyli w zasadzie każdej klatki) nie będę miał żadnej magii?
Reply
#8
DrawIndexedPrimitive lub DrawIndexed w D3D11
Reply
#9
Zacytować: Napisał Cre3per DrawIndexedPrimitive lub DrawIndexed w D3D11 To prawda, że jest to funkcja DrawIndexed. Myślę, że postaram się zahaczyć o tę funkcję, nie narysuję GUI, ale umieszczę instrukcje na stosie, następnie narysuję moje shadery, a potem narysuję stos GUI. Isnt DrawIndexed jest funkcją członka ...
Reply
#10
Tak to jest. Nie jest to jednak zbyt duży problem. RoverTurbo dokonał wpisu na wiki DirectX o VTable Hooking. Jest to łatwiejsze niż się wydaje, kiedy się przyzwyczaiłeś
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)