Welcome To =xKRESSx= Forum |
Selamat Datang Di =xKRESSx= Cyber Comunity
Harap Baca Peraturan =xKRESSx= Terlebih Dahulu |
|
| SC WallHack | |
| | Pengirim | Message |
---|
*|mephiles|* *Moderator*
Jumlah posting : 80 Points : 6983 Reputation : 3815 Join date : 08.04.11 Lokasi : Solo
| Subyek: SC WallHack Sat Apr 09, 2011 12:44 am | |
| * Alat Micosoft Visual C++ * DirectX 9.0 SDK Update - (Summer 2004) Sebenernya ini SC lama Tapi Masih Work kok, udah Ane Coba, Tinggal Edit" Dikit .. Selesai... :bounce: :bounce: :bounce: :bounce: NB: Khusus yang Tau banyak MVC++ main.cpp: - Spoiler:
#include <windows.h> #include <detours.h> #include <d3d8.h> #include <d3dx8.h> #include "log.h" #include <fstream> #include <iostream> #pragma comment(lib, "d3dx8.lib") #pragma comment(lib, "d3d8.lib") using namespace std; static DWORD dwBeginScene = 0x6D9D9250; static DWORD dwEndScene = 0x6d9d93a0; static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0; static DWORD dwSetStreamSource = 0x6d9d6760; static DWORD dwSetViewport = 0x6d9d5b90 ; int m_Stride; int texnum; int nNumVertices; int nPrimitiveCount; LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange; bool Color = true; bool Logger = false; ofstream ofile; char dlldir[320]; float ScreenCenterX = 0.0f; float ScreenCenterY = 0.0f; bool xhair = false; bool WallHack = false; bool WallHack2 = false; HANDLE hand1 =NULL; HANDLE hand2 =NULL; DWORD bytes; //Logger int texarray[1000]; int arraycounter; int delarray[500]; int dcount; unsigned int arrc; int i=0; D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 ); char *GetDirectoryFile(char *filename) { static char path[320]; strcpy(path, dlldir); strcat(path, filename); return path; } void __cdecl add_log (const char *fmt, ...) { if(ofile != NULL) { if(!fmt) { return; } va_list va_alist; char logbuf[256] = {0}; va_start (va_alist, fmt); _vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist); va_end (va_alist); ofile << logbuf << endl; } } HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32) { if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) ) return E_FAIL; WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12) |(WORD)(((colour32>>20)&0xF)<< |(WORD)(((colour32>>12)&0xF)<<4) |(WORD)(((colour32>>4)&0xF)<<0); D3DLOCKED_RECT d3dlr; (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0); WORD *pDst16 = (WORD*)d3dlr.pBits; for(int xy=0; xy < 8*8; xy++) *pDst16++ = colour16; (*ppD3Dtex)->UnlockRect(0); return S_OK; } //=================================EndScene_Start=== ================================================== ============================// typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice ); oEndScene pEndScene; HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice) { if(Color) { GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 )); GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 )); GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 )); GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 )); GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 )); GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 )); GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 )); Color=false; } if(xhair) { D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2}; D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20}; pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0); pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0); } //=============================================UnHoo K_Start=========================================== ========// if((GetAsyncKeyState(VK_F5)&1)) { int end =NULL; int dip =NULL; int svp =NULL; int sss =NULL; BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes. hand1 = GetCurrentProcess(); DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll"); end = 0x6d9d93a0; dip = 0x6d9d73a0; svp = 0x6d9d5b90; sss = 0x6d9d6760; WriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes); } //=========================================UnHook_En d================================================= ========// if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} return pEndScene(pDevice); } //====================================EndScene_End== ================================================== ========================// //=================================Dip_Start======== ================================================== ==================================// typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount ); oDrawIndexedPrimitive pDrawIndexedPrimitive; HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount) { if(WallHack) { texnum = (nNumVertices*100000)+nPrimitiveCount; if(m_Stride==40 && (texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)|| (texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)|| (texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)|| (texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)|| (texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)|| (texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| (texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| (texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| (texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| (texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| (texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) && (nNumVertices == 100 && nPrimitiveCount == 121) || //Foot (nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm (nNumVertices == 132 && nPrimitiveCount == 180) || //Hand (nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm (nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy //(nNumVertices == 448 && nPrimitiveCount == 776) || //Head (nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item (nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest (nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Orange); //pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME ); pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); //pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID ); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Pink); } if(m_Stride==40 && texnum== 21300174) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Green);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Purple); } if(nNumVertices == 158 && nPrimitiveCount == 131) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Red);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Yellow); } if (nNumVertices == 171 && nPrimitiveCount == 143) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Red);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Yellow); } if(m_Stride==40 &&//face,mask etc... (texnum==36700612) || (texnum==9600172 ) || (texnum==14200236) || (texnum==37800552) || (texnum==28100486) || (texnum==35500568) || (texnum==2200024 ) || (texnum==16200243) || (texnum==31900466) || (texnum==19300342) || (texnum==36200604) || (texnum==21300290) || (texnum==35700558) || (texnum==22100396) || (texnum==36100604) || (texnum==27100464) || (texnum==11400180) || (texnum==34900580) || (texnum==13200212) || (texnum==34700538) || (texnum==19500352)&& (nNumVertices == 448 && nPrimitiveCount == 776)) { pDevice->SetTexture(0,Blue); } { pDevice->SetRenderState(D3DRS_FOGENABLE,false); } } return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); } //=====================================Dip_End====== ================================================== ===================// //=====================================Sss_Start==== ================================================== ====================// typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride ); oSetStreamSource pSetStreamSource; HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride) { if(nStreamNumber==0) m_Stride = nStride; return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride); } //====================================Sss_End======= ================================================== ===================// //====================================Svp_Start===== ================================================== ===================// typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport); oSetViewport pSetViewport; HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport) { ScreenCenterX = ( float )pViewport->Width / 2; ScreenCenterY = ( float )pViewport->Height / 2; return pSetViewport(pDevice,pViewport); } //===================================Svp_End======== ================================================== ===================// typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice ); oBeginScene pBeginScene; HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice) { if((GetAsyncKeyState(VK_F6)&1)) { pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene); pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive); pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource); pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport); } return pBeginScene(pDevice); } BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved ) { DisableThreadLibraryCalls(hModule); if ( dwReason == DLL_PROCESS_ATTACH ) { //=========Log==========================// GetModuleFileName(hModule, dlldir, 512); for(int i = strlen(dlldir); i > 0; i--) { if(dlldir[i] == '\') { dlldir[i+1] = 0; break; } } ofile.open(GetDirectoryFile("log.txt"), ios::app); //=========Log=========================// pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene); pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene); pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive); pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource); pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport); } return TRUE; } log.h (a header file) Code: #define WIN32_LEAN_AND_MEAN #ifndef _MAIN_H #define _MAIN_H char *GetDirectoryFile(char *filename); void __cdecl add_log (const char * fmt, ...); #endif
cpp.h: - Spoiler:
#include <windows.h> #include <detours.h> #include <d3d8.h> #include <d3dx8.h> #include "log.h" #include <fstream> #include <iostream> #pragma comment(lib, "d3dx8.lib") #pragma comment(lib, "d3d8.lib") using namespace std; static DWORD dwBeginScene = 0x6D9D9250; static DWORD dwEndScene = 0x6d9d93a0; static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0; static DWORD dwSetStreamSource = 0x6d9d6760; static DWORD dwSetViewport = 0x6d9d5b90 ; int m_Stride; int texnum; int nNumVertices; int nPrimitiveCount; LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange; bool Color = true; bool Logger = false; ofstream ofile; char dlldir[320]; float ScreenCenterX = 0.0f; float ScreenCenterY = 0.0f; bool xhair = false; bool WallHack = false; bool WallHack2 = false; HANDLE hand1 =NULL; HANDLE hand2 =NULL; DWORD bytes; //Logger int texarray[1000]; int arraycounter; int delarray[500]; int dcount; unsigned int arrc; int i=0; D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 ); char *GetDirectoryFile(char *filename) { static char path[320]; strcpy(path, dlldir); strcat(path, filename); return path; } void __cdecl add_log (const char *fmt, ...) { if(ofile != NULL) { if(!fmt) { return; } va_list va_alist; char logbuf[256] = {0}; va_start (va_alist, fmt); _vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist); va_end (va_alist); ofile << logbuf << endl; } } HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32) { if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) ) return E_FAIL; WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12) |(WORD)(((colour32>>20)&0xF)<< |(WORD)(((colour32>>12)&0xF)<<4) |(WORD)(((colour32>>4)&0xF)<<0); D3DLOCKED_RECT d3dlr; (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0); WORD *pDst16 = (WORD*)d3dlr.pBits; for(int xy=0; xy < 8*8; xy++) *pDst16++ = colour16; (*ppD3Dtex)->UnlockRect(0); return S_OK; } //=================================EndScene_Start=================================================================================// typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice ); oEndScene pEndScene; HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice) { if(Color) { GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 )); GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 )); GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 )); GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 )); GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 )); GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 )); GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 )); Color=false; } if(xhair) { D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2}; D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20}; pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0); pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0); } //=============================================UnHooK_Start===================================================// if((GetAsyncKeyState(VK_F5)&1)) { int end =NULL; int dip =NULL; int svp =NULL; int sss =NULL; BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes. hand1 = GetCurrentProcess(); DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll"); end = 0x6d9d93a0; dip = 0x6d9d73a0; svp = 0x6d9d5b90; sss = 0x6d9d6760; WriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes); } //=========================================UnHook_End=========================================================// if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack;} return pEndScene(pDevice); } //====================================EndScene_End============================================================================// //=================================Dip_Start============================================================================================// typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount ); oDrawIndexedPrimitive pDrawIndexedPrimitive; HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount) { if(WallHack) { texnum = (nNumVertices*100000)+nPrimitiveCount; if(m_Stride==40 && (texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)|| (texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)|| (texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)|| (texnum==21800306)||(texnum==36900650)||(texnum==7500121 )||(texnum==37000650)|| (texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)|| (texnum==22100268)||(texnum==62400752)||(texnum==27900456)||(texnum==45700654)|| (texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum==38100666)|| (texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum==84900778)|| (texnum==27500442)||(texnum==52100658)||(texnum==62400752)||(texnum==33600552)|| (texnum==44100646)||(texnum==18000274)||(texnum==37200508)||(texnum==45700654)|| (texnum==37200508)||(texnum==52100658)||(texnum==52100658) && (nNumVertices == 100 && nPrimitiveCount == 121) || //Foot (nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm (nNumVertices == 132 && nPrimitiveCount == 180) || //Hand (nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm (nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =) //(nNumVertices == 448 && nPrimitiveCount == 776) || //Head (nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item (nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest (nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Orange); //pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME ); pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); //pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID ); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Pink); } if(m_Stride==40 && texnum== 21300174) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Green);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Purple); } if(nNumVertices == 158 && nPrimitiveCount == 131) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Red);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Yellow); } if (nNumVertices == 171 && nPrimitiveCount == 143) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Red);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Yellow); } if(m_Stride==40 &&//face,mask etc... (texnum==36700612) || (texnum==9600172 ) || (texnum==14200236) || (texnum==37800552) || (texnum==28100486) || (texnum==35500568) || (texnum==2200024 ) || (texnum==16200243) || (texnum==31900466) || (texnum==19300342) || (texnum==36200604) || (texnum==21300290) || (texnum==35700558) || (texnum==22100396) || (texnum==36100604) || (texnum==27100464) || (texnum==11400180) || (texnum==34900580) || (texnum==13200212) || (texnum==34700538) || (texnum==19500352)&& (nNumVertices == 448 && nPrimitiveCount == 776)) { pDevice->SetTexture(0,Blue); } { pDevice->SetRenderState(D3DRS_FOGENABLE,false); } /*Logger if(m_Stride==40){ while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++; bool alrdy=false; bool inarr=false; if(texarray[arrc]==texnum) if(delarray[i]==texarray[arrc]) alrdy=true; for(int i=0;i<dcount;i++) //sees if said texture is in delarray if(delarray[i]==texnum) inarr=true; if(texarray[arrc]==texnum || inarr){ //If true, color model differently LPDIRECT3DTEXTURE8 texCol; DWORD dwOldZEnable = D3DZB_TRUE; pDevice->SetTexture(0, NULL); pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); if(alrdy) //Different colors for selected models that are already being logged (For removal from array) texCol=Blue; else texCol=Red; pDevice->SetTexture(0, texCol); pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable); } } if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array bool inarr=true; for(int k=0;k<dcount;k++){ if(delarray[k]==texarray[arrc]) { inarr=false;//Found selected texture to already exist delarray[k]=0;//Delete texture break;//Cancel loop } } if(inarr==true) { delarray[dcount]=texarray[arrc];//Add texture dcount++; } } if(GetAsyncKeyState(VK_F7)&1){ int total=1; add_log("omfg values?!? {"); for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format if(delarray[x]){ add_log("%i,",delarray[x]); //add_log2==add_log but without endl total++; } add_log("}; %i variables in array",total); } bool found = false; //THIS PART CREDITS TO KRYPTEC for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION { if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT } if(!found && arraycounter < 1000) { texarray[arraycounter]=texnum; arraycounter++; }*/ } return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); } //=====================================Dip_End===========================================================================// //=====================================Sss_Start==========================================================================// typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride ); oSetStreamSource pSetStreamSource; HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride) { if(nStreamNumber==0) m_Stride = nStride; return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride); } //====================================Sss_End============================================================================// //====================================Svp_Start==========================================================================// typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport); oSetViewport pSetViewport; HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport) { ScreenCenterX = ( float )pViewport->Width / 2; ScreenCenterY = ( float )pViewport->Height / 2; return pSetViewport(pDevice,pViewport); } //===================================Svp_End=============================================================================// typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice ); oBeginScene pBeginScene; HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice) { if((GetAsyncKeyState(VK_F6)&1)) { pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene); pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDrawIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive); pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStreamSource, (PBYTE)mySetStreamSource); pSetViewport=(oSetViewport)DetourFunction((PBYTE)dwSetViewport,(PBYTE)mySetViewport); } return pBeginScene(pDevice); } BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved ) { DisableThreadLibraryCalls(hModule); if ( dwReason == DLL_PROCESS_ATTACH ) { //=========Log==========================// GetModuleFileName(hModule, dlldir, 512); for(int i = strlen(dlldir); i > 0; i--) { if(dlldir[i] == '\') { dlldir[i+1] = 0; break; } } ofile.open(GetDirectoryFile("log.txt"), ios::app); //=========Log=========================// pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene); pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene); pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDrawIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive); pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStreamSource, (PBYTE)mySetStreamSource); pSetViewport=(oSetViewport)DetourFunction((PBYTE)dwSetViewport,(PBYTE)mySetViewport); } return TRUE; }
Log.h: - Spoiler:
///////////////////////BEGIN PATCH///////////// DWORD OldProtection; void MEMwrite(void *adr, void *ptr, int size) { VirtualProtect(adr,size,PAGE_EXECUTE_READWRITE, &OldProtection); memcpy(adr,ptr,size); VirtualProtect(adr,size,OldProtection, &OldProtection); } void NewDetourhs(long Address,int Size,int Size2) { long EhSvc = (long)GetModuleHandleA("EhSvc.dll"); DWORD OldProtect; VirtualProtect((void*)(EhSvc+Address),Size,PAGE_EXECUTE_READWRITE,&OldProtect); *(DWORD*)(EhSvc+Address) = Size2; //*(int*)(EhSvc+Address) = Size; } void CopyModules(void) { long EhSvc = (long)GetModuleHandleA("EhSvc.dll"); //self crc checks MEMwrite((void *)(EhSvc+0x0FF28),(void*)(PBYTE)"\xB8\x01\x00\x00\x00",5); //anti asm scan game client MEMwrite((void *)(EhSvc+0x1BC28),(void*)(PBYTE)"\x90\x90",2);// ////unhook dip & sss 8 MEMwrite((void *)(EhSvc+0x650A5),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x650CF),(void*)(PBYTE)"\xEB",1);// //dll jump code check MEMwrite((void *)(EhSvc+0x66931),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x66B79),(void*)(PBYTE)"\xEB",1);// //anti restore page MEMwrite((void *)(EhSvc+0x5F80E),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x5F784),(void*)(PBYTE)"\xEB",1);// //processscan, main eagle process detect callback, for cheat engine MEMwrite((void *)(EhSvc+0x54A14),(void*)(PBYTE)"\xE9\x7E\x0A\x00\x00",5);// // nano detect objects MEMwrite((void *)(EhSvc+0x2411B),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x24265),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x2435F),(void*)(PBYTE)"\x31",1);// MEMwrite((void *)(EhSvc+0x22556),(void*)(PBYTE)"\x31",1);// MEMwrite((void *)(EhSvc+0x26171),(void*)(PBYTE)"\x31",1);// MEMwrite((void *)(EhSvc+0x25618),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x2572C),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x25ADB),(void*)(PBYTE)"\xEB",1);// int EhPtr = 0x0D0F40; NewDetourhs((EhPtr-0x44),0x8,4);// NewDetourhs((EhPtr-0x40),0x8,4);// NewDetourhs((EhPtr-0x20),0x8,4);// NewDetourhs(0x0D13F8,0x8,4);// NewDetourhs(0x0CD5F8,0x8,4);// NewDetourhs(0x0C7570,0x8,4);// NewDetourhs(0x0C7754,0x8,4);// NewDetourhs(0x0CED40,0x8,4);// NewDetourhs(0x0C7739,0x8,4);// NewDetourhs(0x0D2E08,0x8,4);// NewDetourhs(0x0C7758,0x8,4);// NewDetourhs(0x0C62F8,0x8,4);// NewDetourhs(0x0C7715,0x8,4);// NewDetourhs(0x0D0F40,0x8,4);// NewDetourhs(0x0C7719,0x8,4);// NewDetourhs(0x0D2E40,0x8,4);// NewDetourhs(0x0C62F8,0x8,4);// NewDetourhs(0x0CD8FC,0x8,4);// NewDetourhs(0x0CD5F8,0x8,4);// NewDetourhs(0x0D3DF1,0x8,4);// } void Loop(void) { for(; { long EhSvc = (long)GetModuleHandleA("EhSvc.dll"); if(EhSvc!=0) { CopyModules(); } Sleep(20); } } /////////////////////END PATCH///////////////////////
| |
| | | ™☻kress☻™ *Moderator*
Jumlah posting : 95 Points : 172 Reputation : 17 Join date : 08.04.11 Age : 29 Lokasi : indonesia,PADANG/PARIAMAN
| Subyek: Re: SC WallHack Sat Apr 09, 2011 8:30 pm | |
| - mephiles wrote:
- * Alat Micosoft Visual C++
* DirectX 9.0 SDK Update - (Summer 2004)
Sebenernya ini SC lama Tapi Masih Work kok, udah Ane Coba, Tinggal Edit" Dikit ..
Selesai... :bounce: :bounce: :bounce: :bounce:
NB: Khusus yang Tau banyak MVC++
main.cpp:- Spoiler:
#include <windows.h> #include <detours.h> #include <d3d8.h> #include <d3dx8.h> #include "log.h" #include <fstream> #include <iostream> #pragma comment(lib, "d3dx8.lib") #pragma comment(lib, "d3d8.lib") using namespace std; static DWORD dwBeginScene = 0x6D9D9250; static DWORD dwEndScene = 0x6d9d93a0; static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0; static DWORD dwSetStreamSource = 0x6d9d6760; static DWORD dwSetViewport = 0x6d9d5b90 ; int m_Stride; int texnum; int nNumVertices; int nPrimitiveCount; LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange; bool Color = true; bool Logger = false; ofstream ofile; char dlldir[320]; float ScreenCenterX = 0.0f; float ScreenCenterY = 0.0f; bool xhair = false; bool WallHack = false; bool WallHack2 = false; HANDLE hand1 =NULL; HANDLE hand2 =NULL; DWORD bytes; //Logger int texarray[1000]; int arraycounter; int delarray[500]; int dcount; unsigned int arrc; int i=0; D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 ); char *GetDirectoryFile(char *filename) { static char path[320]; strcpy(path, dlldir); strcat(path, filename); return path; } void __cdecl add_log (const char *fmt, ...) { if(ofile != NULL) { if(!fmt) { return; } va_list va_alist; char logbuf[256] = {0}; va_start (va_alist, fmt); _vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist); va_end (va_alist); ofile << logbuf << endl; } } HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32) { if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) ) return E_FAIL; WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12) |(WORD)(((colour32>>20)&0xF)<< |(WORD)(((colour32>>12)&0xF)<<4) |(WORD)(((colour32>>4)&0xF)<<0); D3DLOCKED_RECT d3dlr; (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0); WORD *pDst16 = (WORD*)d3dlr.pBits; for(int xy=0; xy < 8*8; xy++) *pDst16++ = colour16; (*ppD3Dtex)->UnlockRect(0); return S_OK; } //=================================EndScene_Start=== ================================================== ============================// typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice ); oEndScene pEndScene; HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice) { if(Color) { GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 )); GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 )); GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 )); GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 )); GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 )); GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 )); GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 )); Color=false; } if(xhair) { D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2}; D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20}; pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0); pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0); } //=============================================UnHoo K_Start=========================================== ========// if((GetAsyncKeyState(VK_F5)&1)) { int end =NULL; int dip =NULL; int svp =NULL; int sss =NULL; BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes. hand1 = GetCurrentProcess(); DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll"); end = 0x6d9d93a0; dip = 0x6d9d73a0; svp = 0x6d9d5b90; sss = 0x6d9d6760; WriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes); } //=========================================UnHook_En d================================================= ========// if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} return pEndScene(pDevice); } //====================================EndScene_End== ================================================== ========================// //=================================Dip_Start======== ================================================== ==================================// typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount ); oDrawIndexedPrimitive pDrawIndexedPrimitive; HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount) { if(WallHack) { texnum = (nNumVertices*100000)+nPrimitiveCount; if(m_Stride==40 && (texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)|| (texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)|| (texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)|| (texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)|| (texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)|| (texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| (texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| (texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| (texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| (texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| (texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) && (nNumVertices == 100 && nPrimitiveCount == 121) || //Foot (nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm (nNumVertices == 132 && nPrimitiveCount == 180) || //Hand (nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm (nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy //(nNumVertices == 448 && nPrimitiveCount == 776) || //Head (nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item (nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest (nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Orange); //pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME ); pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); //pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID ); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Pink); } if(m_Stride==40 && texnum== 21300174) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Green);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Purple); } if(nNumVertices == 158 && nPrimitiveCount == 131) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Red);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Yellow); } if (nNumVertices == 171 && nPrimitiveCount == 143) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Red);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Yellow); } if(m_Stride==40 &&//face,mask etc... (texnum==36700612) || (texnum==9600172 ) || (texnum==14200236) || (texnum==37800552) || (texnum==28100486) || (texnum==35500568) || (texnum==2200024 ) || (texnum==16200243) || (texnum==31900466) || (texnum==19300342) || (texnum==36200604) || (texnum==21300290) || (texnum==35700558) || (texnum==22100396) || (texnum==36100604) || (texnum==27100464) || (texnum==11400180) || (texnum==34900580) || (texnum==13200212) || (texnum==34700538) || (texnum==19500352)&& (nNumVertices == 448 && nPrimitiveCount == 776)) { pDevice->SetTexture(0,Blue); } { pDevice->SetRenderState(D3DRS_FOGENABLE,false); } } return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); } //=====================================Dip_End====== ================================================== ===================// //=====================================Sss_Start==== ================================================== ====================// typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride ); oSetStreamSource pSetStreamSource; HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride) { if(nStreamNumber==0) m_Stride = nStride; return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride); } //====================================Sss_End======= ================================================== ===================// //====================================Svp_Start===== ================================================== ===================// typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport); oSetViewport pSetViewport; HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport) { ScreenCenterX = ( float )pViewport->Width / 2; ScreenCenterY = ( float )pViewport->Height / 2; return pSetViewport(pDevice,pViewport); } //===================================Svp_End======== ================================================== ===================// typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice ); oBeginScene pBeginScene; HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice) { if((GetAsyncKeyState(VK_F6)&1)) { pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene); pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive); pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource); pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport); } return pBeginScene(pDevice); } BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved ) { DisableThreadLibraryCalls(hModule); if ( dwReason == DLL_PROCESS_ATTACH ) { //=========Log==========================// GetModuleFileName(hModule, dlldir, 512); for(int i = strlen(dlldir); i > 0; i--) { if(dlldir[i] == '\') { dlldir[i+1] = 0; break; } } ofile.open(GetDirectoryFile("log.txt"), ios::app); //=========Log=========================// pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene); pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene); pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive); pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource); pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport); } return TRUE; } log.h (a header file) Code: #define WIN32_LEAN_AND_MEAN #ifndef _MAIN_H #define _MAIN_H char *GetDirectoryFile(char *filename); void __cdecl add_log (const char * fmt, ...); #endif
cpp.h:- Spoiler:
#include <windows.h> #include <detours.h> #include <d3d8.h> #include <d3dx8.h> #include "log.h" #include <fstream> #include <iostream> #pragma comment(lib, "d3dx8.lib") #pragma comment(lib, "d3d8.lib") using namespace std; static DWORD dwBeginScene = 0x6D9D9250; static DWORD dwEndScene = 0x6d9d93a0; static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0; static DWORD dwSetStreamSource = 0x6d9d6760; static DWORD dwSetViewport = 0x6d9d5b90 ; int m_Stride; int texnum; int nNumVertices; int nPrimitiveCount; LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange; bool Color = true; bool Logger = false; ofstream ofile; char dlldir[320]; float ScreenCenterX = 0.0f; float ScreenCenterY = 0.0f; bool xhair = false; bool WallHack = false; bool WallHack2 = false; HANDLE hand1 =NULL; HANDLE hand2 =NULL; DWORD bytes; //Logger int texarray[1000]; int arraycounter; int delarray[500]; int dcount; unsigned int arrc; int i=0; D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 ); char *GetDirectoryFile(char *filename) { static char path[320]; strcpy(path, dlldir); strcat(path, filename); return path; } void __cdecl add_log (const char *fmt, ...) { if(ofile != NULL) { if(!fmt) { return; } va_list va_alist; char logbuf[256] = {0}; va_start (va_alist, fmt); _vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist); va_end (va_alist); ofile << logbuf << endl; } } HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32) { if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) ) return E_FAIL; WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12) |(WORD)(((colour32>>20)&0xF)<< |(WORD)(((colour32>>12)&0xF)<<4) |(WORD)(((colour32>>4)&0xF)<<0); D3DLOCKED_RECT d3dlr; (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0); WORD *pDst16 = (WORD*)d3dlr.pBits; for(int xy=0; xy < 8*8; xy++) *pDst16++ = colour16; (*ppD3Dtex)->UnlockRect(0); return S_OK; } //=================================EndScene_Start=================================================================================// typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice ); oEndScene pEndScene; HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice) { if(Color) { GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 )); GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 )); GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 )); GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 )); GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 )); GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 )); GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 )); Color=false; } if(xhair) { D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2}; D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20}; pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0); pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0); } //=============================================UnHooK_Start===================================================// if((GetAsyncKeyState(VK_F5)&1)) { int end =NULL; int dip =NULL; int svp =NULL; int sss =NULL; BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes. hand1 = GetCurrentProcess(); DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll"); end = 0x6d9d93a0; dip = 0x6d9d73a0; svp = 0x6d9d5b90; sss = 0x6d9d6760; WriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes); WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes); } //=========================================UnHook_End=========================================================// if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack;} return pEndScene(pDevice); } //====================================EndScene_End============================================================================// //=================================Dip_Start============================================================================================// typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount ); oDrawIndexedPrimitive pDrawIndexedPrimitive; HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount) { if(WallHack) { texnum = (nNumVertices*100000)+nPrimitiveCount; if(m_Stride==40 && (texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)|| (texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)|| (texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)|| (texnum==21800306)||(texnum==36900650)||(texnum==7500121 )||(texnum==37000650)|| (texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)|| (texnum==22100268)||(texnum==62400752)||(texnum==27900456)||(texnum==45700654)|| (texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum==38100666)|| (texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum==84900778)|| (texnum==27500442)||(texnum==52100658)||(texnum==62400752)||(texnum==33600552)|| (texnum==44100646)||(texnum==18000274)||(texnum==37200508)||(texnum==45700654)|| (texnum==37200508)||(texnum==52100658)||(texnum==52100658) && (nNumVertices == 100 && nPrimitiveCount == 121) || //Foot (nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm (nNumVertices == 132 && nPrimitiveCount == 180) || //Hand (nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm (nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =) //(nNumVertices == 448 && nPrimitiveCount == 776) || //Head (nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item (nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest (nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Orange); //pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME ); pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); //pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID ); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Pink); } if(m_Stride==40 && texnum== 21300174) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Green);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Purple); } if(nNumVertices == 158 && nPrimitiveCount == 131) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Red);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Yellow); } if (nNumVertices == 171 && nPrimitiveCount == 143) { pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); pDevice->SetTexture(0,Red);//GreenNade pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL); pDevice->SetTexture(0,Yellow); } if(m_Stride==40 &&//face,mask etc... (texnum==36700612) || (texnum==9600172 ) || (texnum==14200236) || (texnum==37800552) || (texnum==28100486) || (texnum==35500568) || (texnum==2200024 ) || (texnum==16200243) || (texnum==31900466) || (texnum==19300342) || (texnum==36200604) || (texnum==21300290) || (texnum==35700558) || (texnum==22100396) || (texnum==36100604) || (texnum==27100464) || (texnum==11400180) || (texnum==34900580) || (texnum==13200212) || (texnum==34700538) || (texnum==19500352)&& (nNumVertices == 448 && nPrimitiveCount == 776)) { pDevice->SetTexture(0,Blue); } { pDevice->SetRenderState(D3DRS_FOGENABLE,false); } /*Logger if(m_Stride==40){ while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++; bool alrdy=false; bool inarr=false; if(texarray[arrc]==texnum) if(delarray[i]==texarray[arrc]) alrdy=true; for(int i=0;i<dcount;i++) //sees if said texture is in delarray if(delarray[i]==texnum) inarr=true; if(texarray[arrc]==texnum || inarr){ //If true, color model differently LPDIRECT3DTEXTURE8 texCol; DWORD dwOldZEnable = D3DZB_TRUE; pDevice->SetTexture(0, NULL); pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); if(alrdy) //Different colors for selected models that are already being logged (For removal from array) texCol=Blue; else texCol=Red; pDevice->SetTexture(0, texCol); pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable); } } if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array bool inarr=true; for(int k=0;k<dcount;k++){ if(delarray[k]==texarray[arrc]) { inarr=false;//Found selected texture to already exist delarray[k]=0;//Delete texture break;//Cancel loop } } if(inarr==true) { delarray[dcount]=texarray[arrc];//Add texture dcount++; } } if(GetAsyncKeyState(VK_F7)&1){ int total=1; add_log("omfg values?!? {"); for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format if(delarray[x]){ add_log("%i,",delarray[x]); //add_log2==add_log but without endl total++; } add_log("}; %i variables in array",total); } bool found = false; //THIS PART CREDITS TO KRYPTEC for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION { if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT } if(!found && arraycounter < 1000) { texarray[arraycounter]=texnum; arraycounter++; }*/ } return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount); } //=====================================Dip_End===========================================================================// //=====================================Sss_Start==========================================================================// typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride ); oSetStreamSource pSetStreamSource; HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride) { if(nStreamNumber==0) m_Stride = nStride; return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride); } //====================================Sss_End============================================================================// //====================================Svp_Start==========================================================================// typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport); oSetViewport pSetViewport; HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport) { ScreenCenterX = ( float )pViewport->Width / 2; ScreenCenterY = ( float )pViewport->Height / 2; return pSetViewport(pDevice,pViewport); } //===================================Svp_End=============================================================================// typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice ); oBeginScene pBeginScene; HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice) { if((GetAsyncKeyState(VK_F6)&1)) { pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene); pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDrawIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive); pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStreamSource, (PBYTE)mySetStreamSource); pSetViewport=(oSetViewport)DetourFunction((PBYTE)dwSetViewport,(PBYTE)mySetViewport); } return pBeginScene(pDevice); } BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved ) { DisableThreadLibraryCalls(hModule); if ( dwReason == DLL_PROCESS_ATTACH ) { //=========Log==========================// GetModuleFileName(hModule, dlldir, 512); for(int i = strlen(dlldir); i > 0; i--) { if(dlldir[i] == '\') { dlldir[i+1] = 0; break; } } ofile.open(GetDirectoryFile("log.txt"), ios::app); //=========Log=========================// pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene); pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene); pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDrawIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive); pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStreamSource, (PBYTE)mySetStreamSource); pSetViewport=(oSetViewport)DetourFunction((PBYTE)dwSetViewport,(PBYTE)mySetViewport); } return TRUE; }
Log.h:- Spoiler:
///////////////////////BEGIN PATCH///////////// DWORD OldProtection; void MEMwrite(void *adr, void *ptr, int size) { VirtualProtect(adr,size,PAGE_EXECUTE_READWRITE, &OldProtection); memcpy(adr,ptr,size); VirtualProtect(adr,size,OldProtection, &OldProtection); } void NewDetourhs(long Address,int Size,int Size2) { long EhSvc = (long)GetModuleHandleA("EhSvc.dll"); DWORD OldProtect; VirtualProtect((void*)(EhSvc+Address),Size,PAGE_EXECUTE_READWRITE,&OldProtect); *(DWORD*)(EhSvc+Address) = Size2; //*(int*)(EhSvc+Address) = Size; } void CopyModules(void) { long EhSvc = (long)GetModuleHandleA("EhSvc.dll"); //self crc checks MEMwrite((void *)(EhSvc+0x0FF28),(void*)(PBYTE)"\xB8\x01\x00\x00\x00",5); //anti asm scan game client MEMwrite((void *)(EhSvc+0x1BC28),(void*)(PBYTE)"\x90\x90",2);// ////unhook dip & sss 8 MEMwrite((void *)(EhSvc+0x650A5),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x650CF),(void*)(PBYTE)"\xEB",1);// //dll jump code check MEMwrite((void *)(EhSvc+0x66931),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x66B79),(void*)(PBYTE)"\xEB",1);// //anti restore page MEMwrite((void *)(EhSvc+0x5F80E),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x5F784),(void*)(PBYTE)"\xEB",1);// //processscan, main eagle process detect callback, for cheat engine MEMwrite((void *)(EhSvc+0x54A14),(void*)(PBYTE)"\xE9\x7E\x0A\x00\x00",5);// // nano detect objects MEMwrite((void *)(EhSvc+0x2411B),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x24265),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x2435F),(void*)(PBYTE)"\x31",1);// MEMwrite((void *)(EhSvc+0x22556),(void*)(PBYTE)"\x31",1);// MEMwrite((void *)(EhSvc+0x26171),(void*)(PBYTE)"\x31",1);// MEMwrite((void *)(EhSvc+0x25618),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x2572C),(void*)(PBYTE)"\xEB",1);// MEMwrite((void *)(EhSvc+0x25ADB),(void*)(PBYTE)"\xEB",1);// int EhPtr = 0x0D0F40; NewDetourhs((EhPtr-0x44),0x8,4);// NewDetourhs((EhPtr-0x40),0x8,4);// NewDetourhs((EhPtr-0x20),0x8,4);// NewDetourhs(0x0D13F8,0x8,4);// NewDetourhs(0x0CD5F8,0x8,4);// NewDetourhs(0x0C7570,0x8,4);// NewDetourhs(0x0C7754,0x8,4);// NewDetourhs(0x0CED40,0x8,4);// NewDetourhs(0x0C7739,0x8,4);// NewDetourhs(0x0D2E08,0x8,4);// NewDetourhs(0x0C7758,0x8,4);// NewDetourhs(0x0C62F8,0x8,4);// NewDetourhs(0x0C7715,0x8,4);// NewDetourhs(0x0D0F40,0x8,4);// NewDetourhs(0x0C7719,0x8,4);// NewDetourhs(0x0D2E40,0x8,4);// NewDetourhs(0x0C62F8,0x8,4);// NewDetourhs(0x0CD8FC,0x8,4);// NewDetourhs(0x0CD5F8,0x8,4);// NewDetourhs(0x0D3DF1,0x8,4);// } void Loop(void) { for(; { long EhSvc = (long)GetModuleHandleA("EhSvc.dll"); if(EhSvc!=0) { CopyModules(); } Sleep(20); } } /////////////////////END PATCH///////////////////////
SEEP GAN NICE SHARE,.. | |
| | | *|mephiles|* *Moderator*
Jumlah posting : 80 Points : 6983 Reputation : 3815 Join date : 08.04.11 Lokasi : Solo
| Subyek: Re: SC WallHack Sun Apr 10, 2011 2:51 am | |
| | |
| | | sianipar *Level* I
Jumlah posting : 15 Points : 13 Reputation : 0 Join date : 08.04.11 Age : 35 Lokasi : PADANG/ PASAR BARU, LIMAU MANIS
| Subyek: Re: SC WallHack Tue Apr 19, 2011 4:22 pm | |
| | |
| | | XPByte *Level* I
Jumlah posting : 1 Points : 1 Reputation : 0 Join date : 24.09.11
| Subyek: Re: SC WallHack Sat Sep 24, 2011 2:26 am | |
| kalo edittnya biar work gimana gan?? | |
| | | ijonkkelen *Level* I
Jumlah posting : 1 Points : 1 Reputation : 0 Join date : 04.11.11
| Subyek: Re: SC WallHack Fri Nov 04, 2011 11:18 am | |
| | |
| | | Sponsored content
| Subyek: Re: SC WallHack | |
| |
| | | | SC WallHack | |
|
| Permissions in this forum: | Anda tidak dapat menjawab topik
| |
| |
| |
|