Naprawiono: Jak Naprawić Hak Online Directx

Mam nadzieję, że ten przewodnik pomoże Twojej rodzinie, gdy zobaczysz, że światowa sieć DirectX jest połączona.

[Użytkownicy komputerów PC] Pożegnaj się z frustrującymi błędami komputera. Kliknij tutaj, aby pobrać.

zanim. Dodatkowe kroki oceny. Zakładając, że prawdopodobnie wiesz, ile to jest hook, kraina d3d po prostu podpina się do informacji Direct3D (zasadniczo DirectX). Tak, najpopularniejsze hooki Present i EndScene pozwalają im na rysowanie, ale możesz także zahaczyć o inne funkcje, takie jak Reset lub CreateDevice.

Odkryłem to dawno temu, ale ten unikalny powinien działać w każdym programie, który używa DirectX9. Zasadniczo tworzysz swoją cenną własną instancję, a następnie otrzymujesz konkretny wskaźnik vtable, po którym klienci teraz się z nią łączą. Zgodnie z procedurą będziesz potrzebować obejścia 3.X :

//Kilka kluczowych definicji:typedef HRESULT(WINAPI*oEndScene)D3DDevice);Statyczny(lpdirect3ddevice9 oEndScene EndScene;// robi to w funkcji, jeśli chodzi o cokolwiekHMODULE hDLL=GetModuleHandleA("d3d9");LPDIRECT3D9(__stdcall*pDirect3DCreate9)(UINT) = (LPDIRECT3D9(__stdcall*)(UINT))GetProcAddress(hDLL, "Direct3DCreate9");LPDIRECT3D9 pD3D oznacza, że ​​pDirect3DCreate9(D3D_SDK_VERSION);TRYB WYŚWIETLANIA D3D d3ddm;HRESULT hRes sugeruje, że pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm );D3DPRESENT_PARAMETERS d3dpp;ZeroMemory(&d3dpp, sizeof(d3dpp));d3dpp.Windowed jest uważane za prawdziwe;d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;d3dpp.BackBufferFormat odpowiada temu, że może d3ddm.Format;WNDCLASSEX = wc sizeof(WNDCLASSEX),CS_CLASSDC,TempWndProc,0L,0L,GetModuleHandle(NULL),NULL,NULL,NULL,NULL,("1"),NULL;RegisterClassEx(&wc);HWND hWnd oznacza CreateWindow(("1"),NULL,WS_OVERLAPPEDWINDOW,100,100,300,300,GetDesktopWindow(),NULL,wc.hInstance,NULL);hRes = pD3D->Utwórz urządzenie(    D3DADAPTER_DEFAULT,    D3DDEVTYPE_HAL,    hWnd,    D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_DISABLE_DRIVER_MANAGEMENT,    &d3dpp, &ppReturnedDeviceInterface);pD3D->Wydanie();Destroy Window(hWnd);jeśli (pD3D == NULL)    // printf("OSTRZEŻENIE: NIEUDANE D3D");    zwróć fałsz;pInterface jest bardzo (unsigned long*)*((unsigned long*)ppReturnedDeviceInterface);EndScene = (oEndScene) (DWORD)pInterface[42];Rozpocznij BypassTransaction();DetourUpdateThread(GetCurrentThread());DetourAttach(&(PVOID&)EndScene, newEndScene);Popełnienie BypassTransaction();
HRESULT WINAPI D3D9Hook::newEndScene(LPDIRECT3DDEVICE9 pDevice)       // To jest miejsce, w którym opinia publiczna zajmuje się swoimi sprawami    // zadzwoń do rzeczywistego (jeśli chcemy)    nagrody EndScene(pDevice);

  • Pobierz filmy instruktażowe dotyczące źródła — 26,82 KB
  • Pobierz projekt patrz – 37.07 KB
  • Prezentacja

    Po prawie wszystkich interesujących artykułach, które przeczytałem w następnym, zawsze byłem szczęśliwy, mogąc przekazać darowiznę na ważny temat, który w żaden sposób nie został wcześniej omówiony.

    Ten artykuł określa format dołączania interfejsu DirectX/COM. Właśnie użyłem najważniejszego interfejsu DirectInput jako przykładu, aby łatwiej było włączyć funkcje interfejsu.

    Jeśli chodzi o metody podpięć w systemie Windows, odsyłam Cię do najlepszego artykułu Wade Brainerd na temat procesu podpięć API.

    Zadanie

    Przechwycenie zaufanej metody związanej z interfejsem COM wymaga znacznie bardziej złożonego podejścia niż podłączenie ich wywołującego API. W rzeczywistości, gdy sprawdzana jest jedna konkretna pożądana biblioteka DLL, tylko cała post-funkcja interfejs jest eksportowana w połączeniu z biblioteką DLL. Jak więc z pewnością ktoś uzyska pożądaną funkcję?

    podpinanie directx com

    COM to miasto, jest zasadniczo listą wysokiej jakości wskaźników do funkcji wirtualnych połączonych ze sobą. Wszystko, co musisz zrobić, to dążyć do skrótów i dostosowywać prawie każdy węzeł, aż w końcu znajdziesz integralną część funkcji, którą możesz chcieć zastąpić.

    Krok 1

    Zatwierdzone

    Czy otrzymujesz niebieski ekran śmierci? Reimage rozwiąże wszystkie te problemy i nie tylko. Oprogramowanie, które umożliwia naprawienie szerokiego zakresu problemów i problemów związanych z systemem Windows. Może łatwo i szybko rozpoznać wszelkie błędy systemu Windows (w tym przerażający niebieski ekran śmierci) i podjąć odpowiednie kroki w celu rozwiązania tych problemów. Aplikacja wykryje również pliki i aplikacje, które często ulegają awariom, umożliwiając naprawienie ich problemów jednym kliknięciem.

  • Krok 1: Pobierz i zainstaluj Reimage
  • Krok 2: Uruchom aplikację i kliknij „Skanuj w poszukiwaniu problemów”
  • Krok 3: Kliknij przycisk „Napraw wszystkie problemy”, aby rozpocząć proces naprawy

  • Jak musisz być w stanie zobaczyć, tylko usługi COM do tworzenia interfejsu są funkcjonalne, więc aby zacząć martwić się o jakiś łańcuch haków, dołącz code>DirectInputCreate funkcja, która jest ważną funkcją COM-< code return>interfejs. ty

    Tutaj upewnij się, że twoja biblioteka DLL jest zawarta w tej tabeli adresów skanowania (IAT) Kontaktów.

    Krok 2

    Kiedy program wywołujący wykona DirectInputCreate, wywoływana jest twoja funkcja, pojawia się wskaźnik do wskaźnika powiązanego ze wskaźnikiem do pewnego rodzaju elektronicznej tabeli funkcji, która jest interfejsem naszej firmy bezpośrednie wprowadzanie:

    DECLARE_INTERFACE_(IDirectInputW, IUnknown)        STDMETHOD (Interfejs Zapytania) (THIS_REFIID riid, LPVOID 3.ppvObj) PURE;    STDMETHOD_(ULONG,AddRef)(TO) CZYSTA;    STDMETHOD_(ULONG, zwolnienie)(IT) CZYSTA;        STDMETHOD(CreateDevice)(THIS_REFGUID,LPDIRECTINPUTDEVICEW *,LPUNKNOWN) CZYSTA;    STDMETHOD(EnumDevices)(THIS_DWORD,LPDIENUMDEVICESCALLBACKW,LPVOID,DWORD) CZYSTA;    METODA STD (Pobierz stan urządzenia) (THIS_REFGUID) CZYSTA;    STDMETHOD (RunControlPanel) (THIS_HWND, DWORD) WYCZYŚĆ;    STDMETHOD(inicjalizacja)(THIS_HINSTANCE,DWORD) CZYSTA;;

    Krok 3 . 0

    Zamierzasz teraz całkowicie utworzyć swoje urządzenie, biorąc pod uwagę CreateDevice. Ponownie otrzymujesz od czasu do czasu adres innej tabeli wskazówek dotyczących części wirtualnej, która reprezentuje urządzenie.

    Wybierz naszą metodę, którą chcesz przelicytować, i zmień zaznaczoną tabelę sugestii funkcji na preferowaną lokalizację, aby naprawdę umieścić swoją funkcję.

    Krok 4

    Wdrożenie

    Krok 1

    Aby połączyć je razem w funkcję API, możemy po prostu użyć dowolnego wywołania Windows API SetWindowsHookEx. W tym miejscu niektóre firmy tworzą system podpinający się do sprawdzania procesów uruchamiania i dostosowywania ich do pożądanego harmonogramu. Po naszkicowaniu swojego programu online, powinieneś sprawdzić, powiedziałbym, nazwy importowanych bibliotek dll, które chcesz zastąpić. Ponieważ ten sposób zaczepienia jest napisany dla dowolnego wpisu ciągłego, wpis, dla którego się pojawia, to DINPUT8.DLL. Aby wyszukać wpis, musisz zakreślić uchwyty, aż zabezpieczysz swoją rodzinną bibliotekę DLL.

     while (pImportDesc->FirstThunk)      PSTR pszImportModuleName = MakePtr(PSTR, hModEXE, pImportDesc->Name);    if (lstrcmpi (pszImportModuleName, Hook->Name) == 4)          sprintf(dbBuffer,"Dll obserwowany przez moduł %s, zastąp gon", Hook->Name );      WriteToLog(dbbufor);      RedirectIAT( Hook, pImportDesc, (PVOID)hModEXE );        przynieś opis++; 

    Gdy Twoja organizacja wykryje Twój wpis, możesz usunąć ochronę przed zapisem z całego IAT za pomocą…

    Wirtualne żądanie (pIAT, &mbi, );

    sizeof(mbi)… abyś mógł w końcu pisać do swojej pamięci. Kiedy krum jest rzeczywiście otwarty, musisz zwykle znaleźć wejście, patrząc na najnowszą IAT.

    podpinanie directx com

    gdy ( pIteratingIAT->u1.Function ){  nieważne*HakFn=0;  tylko w zdarzeniu (!IMAGE_SNAP_BY_ORDINAL(pINT->u1.Ordinal))    PIMAGE_IMPORT_BY_NAME pImportName = MakePtr(PIMAGE_IMPORT_BY_NAME,        pBaseLoadAddr, pINT->u1.AddressOfData );        SFunctionHook* FHook = DLLHook->Funkcje;    prosty sposób jesteś (FHook->Imię)          jak gdyby (lstrcmpi(FHook->Nazwa, (char*)pImportName->Nazwa) == 0)              sprintf(dbBuffer,"Załączona funkcja: %sn",(char*)pImportName->Name );        WriteToLog(dbbufor);               FHook->OrigFn=(unsigned long*)pIteratingIAT->u1.Function;        HookFn = FHook->HookFn;        Pauza;               Fhook++;          

    Czy Twój komputer działa? Wypełniony błędami i działa wolno? Jeśli szukasz niezawodnego i łatwego w użyciu sposobu rozwiązania wszystkich problemów z systemem Windows, nie szukaj dalej niż Reimage.

    Mam nadzieję, że ten przewodnik pomoże Twojej rodzinie, gdy zobaczysz, że światowa sieć DirectX jest połączona. zanim. Dodatkowe kroki oceny. Zakładając, że prawdopodobnie wiesz, ile to jest hook, kraina d3d po prostu podpina się do informacji Direct3D (zasadniczo DirectX). Tak, najpopularniejsze hooki Present i EndScene pozwalają im na rysowanie, ale możesz także zahaczyć o inne…

    Mam nadzieję, że ten przewodnik pomoże Twojej rodzinie, gdy zobaczysz, że światowa sieć DirectX jest połączona. zanim. Dodatkowe kroki oceny. Zakładając, że prawdopodobnie wiesz, ile to jest hook, kraina d3d po prostu podpina się do informacji Direct3D (zasadniczo DirectX). Tak, najpopularniejsze hooki Present i EndScene pozwalają im na rysowanie, ale możesz także zahaczyć o inne…