Achso was das?
xD
Bin kein pro coder?^^
Edit:
Funzt das auch in NoMenu?
xD
Bin kein pro coder?^^
Edit:
Funzt das auch in NoMenu?
man kann es nicht nur machen man muss es mit addys machen :pQuote:
Wieso sollte man?
Man kann es auch mit "Addys" machen
Structs sind Offsets. :)
Quote:
Witz is: Mach es mal in ESP rein, dann zeigt es was anderes an als er hat.
Reihenfolge eingehalten? <:
...Quote:
#define ADR_PLAYERPOINTER 0x00D284E8
#define ADR_SERVERPOINTER 0x00C24B10
#define OFS_Z 0x00102D8
#define OFS_X 0x00102D4
#define OFS_Y 0x00102DC
#define OFS_NORECOIL1 0x001C
#define OFS_NORECOIL2 0x0020
#define OFS_NORECOIL3 0x0024
#define OFS_NFD 0x00103A4
#define OFS_LEVEL 0x0011A610
#define OFS_5SLOT 0x001021A4
#define OFS_6SLOT 0x001021A5
#define OFS_7SLOT 0x001021A6
#define OFS_8SLOT 0x001021A7
#define OFS_PREMIUM1 0x0057C
#define OFS_PREMIUM2 0x00580
#define OFS_NFD 0x00103A4
#define OFS_DINAR 0x0011A620
int CH_cheats = 1;
int CH_weap = 1;
int CH_stamina = 0;
int CH_fastammo = 1;
int CH_fasthealth = 0;
int CH_fastrepair = 0;
int CH_fastflag = 1;
int CH_nospread = 1;
int CH_norecoil = 1;
int CH_unlammo = 0;
int test =0;
int premium=1;
// none standard options
char *sStamina[] = { "Off","Stealth","Full" };
char *Ctest[] = { ":D" };
void RebuildMenu(void)
{
strcpy(Mtitle,"== Thomas WarRock Hack ==");
MenuAddItem("[V!rus]", Moptfolder, &CH_cheats, 2, MENUFOLDER);
if (CH_cheats) {
MenuAddItem("Skill Hack" , sStamina , &CH_stamina , 3, MENUITEM);
MenuAddItem("GoD Mode" , Moptonoff , &CH_fastammo , 2, MENUITEM);
MenuAddItem("Zombie Mode" , Moptonoff , &CH_fasthealth, 2, MENUITEM);
MenuAddItem("Ghost Mode" , Moptonoff , &CH_fastrepair, 2, MENUITEM);
}
MenuAddItem("[Test]", Moptfolder, &CH_weap, 2, MENUFOLDER);
if (CH_weap) {
MenuAddItem("Test" , Moptonoff , &CH_nospread, 2, MENUITEM);
MenuAddItem("Test" , Moptonoff , &CH_norecoil, 2, MENUITEM);
MenuAddItem("Premium", Moptonoff , &premium , 2, MENUITEM);
if(premium==1) // Bronze
*(int*)(ADR_SERVERPOINTER+OFS_PREMIUM1) = 1;
}
MenuAddItem("[Hack coded by Thomas]" , Ctest , &test,1,MENUFOLDER);
}
ID3DXFont* m_pFont;
void PreReset(void)
{
if(m_pFont){
if(m_pFont->Release())
m_pFont = NULL;
}
}
void Release( LPDIRECT3DDEVICE9 m_pD3Ddev)
{
// Look definition if u want edit it for make better text :D
D3DXCreateFont(m_pD3Ddev, 15, 0, FW_BOLD, 0, 0, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, TEXT("Arials"), &m_pFont );
}
HRESULT WINAPI myEndScene (LPDIRECT3DDEVICE9 pDevice)
{
Release(pDevice);
if (Mmax==0) RebuildMenu();
MenuShow(10,10,m_pFont); // show the menu at loc 10,10 with a specified font
MenuNav();
PreReset();
return pEndScene(pDevice);
}
HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE9 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER9 pStreamData D3DparamX , UINT nStride )
{
return pSetStreamSource(pDevice, nStreamNumber, pStreamData D3DparamvalX, nStride);
}
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE pType D3DparamX ,UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount )
{
return pDrawIndexedPrimitive(pDevice,pType D3DparamvalX,nMinIndex,nNumVertices,nStartIndex,nP rimitiveCount);
}
int Brain(void)
{
HMODULE CBBase = NULL;
if (CBBase == NULL){Sleep(220);}
CBBase = GetModuleHandle("d3d9.dll");
DWORD* vtbl = 0;
DWORD hD3D9 = (DWORD)GetModuleHandle("d3d9.dll");
DWORD table = FindPattern(hD3D9, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x 00\x00\x89\x86", "xx????xx????xx");
memcpy(&vtbl, (void*)(table+2), 4);
DWORD ENDSCENE = vtbl[42];
DWORD DIP = vtbl[82];
DWORD SSS = vtbl[100];
pEndScene = (oEndScene) DetourCreate((PBYTE)ENDSCENE, (PBYTE)myEndScene);
pSetStreamSource = (oSetStreamSource) DetourCreate((PBYTE)SSS , (PBYTE)mySetStreamSource);
pDrawIndexedPrimitive = (oDrawIndexedPrimitive) DetourCreate((PBYTE)DIP , (PBYTE)myDrawIndexedPrimitive);
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if (dwReason == DLL_PROCESS_ATTACH) {
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Brain, NULL, NULL, NULL);
}
return TRUE;
}
mhmmmmmmmmmmm da ist kein loopQuote:
void ServerHacks()
{
if(premium==1) // Bronze
*(int*)(ADR_SERVERPOINTER+OFS_PREMIUM1) = 1;
}
void ServerHacks()
{
for( ;; )
{
DWORD Server = *(DWORD*)ADR_SERVERPOINTER;
if(premium==1) // Bronze
*(int*)(Server+OFS_PREMIUM) = 1;
}
}
Loop brauchst net immer <:Quote:
mhmmmmmmmmmmm da ist kein loop
So ungefähr könnte es gehn :
Wird sowieso nicht gehn da du DrawIndexedPrimitive , SetStreamSource etc Hookst = Brauchst bessere Detours + musst Rehooken.Code:void ServerHacks() { for( ;; ) { DWORD Server = *(DWORD*)ADR_SERVERPOINTER; if(premium==1) // Bronze *(int*)(Server+OFS_PREMIUM) = 1; } }
Deshalb würde ich sagen Hook Present und Reset.