Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //================================================================================================
- LRESULT CALLBACK MsgProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){return DefWindowProc(hwnd, uMsg, wParam, lParam);}
- void DX_Init(DWORD* table)
- {
- WNDCLASSEX wc = {sizeof(WNDCLASSEX),CS_CLASSDC,MsgProc,0L,0L,GetModuleHandle(NULL),NULL,NULL,NULL,NULL,"DX",NULL};
- RegisterClassEx(&wc);
- HWND hWnd = CreateWindow("DX",NULL,WS_OVERLAPPEDWINDOW,100,100,300,300,GetDesktopWindow(),NULL,wc.hInstance,NULL);
- LPDIRECT3D9 pD3D = Direct3DCreate9( D3D_SDK_VERSION );
- D3DPRESENT_PARAMETERS d3dpp;
- ZeroMemory( &d3dpp, sizeof(d3dpp) );
- d3dpp.Windowed = TRUE;
- d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
- d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
- LPDIRECT3DDEVICE9 pd3dDevice;
- pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&pd3dDevice);
- DWORD* pVTable = (DWORD*)pd3dDevice;
- pVTable = (DWORD*)pVTable[0];
- table[ES] = pVTable[42]; //EndScene address
- table[DIP] = pVTable[82]; //DrawIndexedPrimitive address
- table[RES] = pVTable[16]; //Reset address
- DestroyWindow(hWnd);
- }
- /********************************************************************************/
- /* KOMPOR HOOK MEMBARA ( UNDETECK )
- /********************************************************************************/
- DWORD WINAPI VirtualMethodTableRepatchingLoopToCounterExtensionRepatching( LPVOID Param )
- {
- while(1) {
- Sleep(100);
- HookVTableFunction((PDWORD*)npDevice, (PBYTE)0x4FF505C0,82);
- HookVTableFunction((PDWORD*)npDevice, (PBYTE)0x4FF50270,42);
- return (0);
- }
- return 1;
- }
- /********************************************************************************/
- // KOMPOR HOOK //- CREATOR : Donny Achmad Fauzi (Mencari Suhu)
- /********************************************************************************/
- bool hooked = false;
- DWORD WINAPI LoopFunction(LPVOID lpParam)
- {
- if( hooked == false) {
- DWORD VTable[3*3*10] = {0};
- while(LoadLibraryA("d3d9.dll")==NULL) {
- Sleep(512);//Basis schol Donny AChmad klw ke sekolah (SMPN 11 Tambun Selatan)
- }
- DX_Init(VTable);
- HOOK(EndScene,VTable[ES]); //Hook EndScene as a device discovery hook
- while(!npDevice) {
- Sleep(218);//
- }
- UNHOOK(EndScene, VTable[ES]);
- void* d3DIP = (void*)(dwD3D9 + (DWORD) + (DWORD) + (DWORD) + (PDWORD)BaseD3D + 1024);//0x4FF50A4B[82]<~~ header ini mn?? yoda buat z
- void* d3ES = (void*)(dwD3D9 + (DWORD) + (DWORD) + (DWORD) + (PDWORD)BaseD3D + 1036);//0x4FF19FEA[42]
- {
- int i;
- for (i = 0 ; i <= 0 ; i++){
- DWORD d,ds;
- VirtualProtect((void*)(d3ES), 4, PAGE_EXECUTE_READWRITE, &d);
- memcpy(d3ES,(void*)(d3ES), 4);
- VirtualProtect((void*)(d3ES), 4, d, &ds);
- }
- }
- int C;
- for (C = 0 ; C <= 0 ; C++){
- {
- DWORD d,ds;
- VirtualProtect((void*)(d3DIP), 4, PAGE_EXECUTE_READWRITE, &d);
- memcpy(d3DIP,(void*)(d3DIP), 4);
- VirtualProtect((void*)(d3DIP), 4, d, &ds);
- }
- }
- //------------------//
- CreateDetour((DWORD)hkDrawIndexedPrimitive, (DWORD)d3DIP*C,Detour_Type_0xB8,7);
- CreateDetour((DWORD)hkEndScene, (DWORD)d3ES*C,Detour_Type_0xB8,7);
- *(PDWORD)&oDrawIndexedPrimitive = VTable[DIP];
- *(PDWORD)&oEndScene = VTable[ES];
- //-----------------//
- hooked = true;
- }
- Sleep(10);
- void* d3DIP = (void*)(dwD3D9 + (DWORD) + (DWORD) + (DWORD) + (PDWORD)BaseD3D + 1024);//0x4FF505B0[82]
- void* d3ES = (void*)(dwD3D9 + (DWORD) + (DWORD) + (DWORD) + (PDWORD)BaseD3D + 1036);//0x4FF50260[42]
- {
- DWORD Dark,ds;
- VirtualProtect((void*)(d3ES), 4, PAGE_EXECUTE_READWRITE, &Dark);
- memcpy((void*)d3ES, (const void*)d3ES, 4);
- VirtualProtect((void*)(d3ES), 4, Dark, &ds);
- }
- int i;
- for (i = 0 ; i <= 15 ; i++){
- {
- DWORD d,ds;
- VirtualProtect((void*)(d3DIP), 4, PAGE_EXECUTE_READWRITE, &d);
- memcpy((void*)d3DIP, (const void*)d3DIP, 4);
- VirtualProtect((void*)(d3DIP), 4, d, &ds);
- }
- }
- for (i = 0 ; i <= 15 ; i++){
- if(memcmp((void *)d3DIP, (void *)d3DIP, 82) == 0 ) // Protect Hook Draw Indexed Primitive
- HookVTableFunction((LPDWORD*)npDevice, (PBYTE)d3DIP, 82);
- }
- for (i = 0 ; i <= 15 ; i++){
- if(memcmp((void *)d3ES, (void *)d3ES, 42) == 0 ) // Protect Hook End Scene
- HookVTableFunction((LPDWORD*)npDevice, (PBYTE)d3ES, 42);
- }
- {
- Sleep(100*2);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement