Chams bei No Menu

11/28/2010 19:32 Mcmy#1
Hai will chams bei no Menu einbauen doch ich hab 12 Fehler ich hab ka wie das geht und so!!

Hier der CODE:

Quote:
#pragma warning(disable: 4244)
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

#define D3D_CHAMS_1 36
#define D3D_CHAMS_2 32


DWORD dwDetourFunction( DWORD dwAddressOfFunctionToIntercept, DWORD dwAddressOfFunctionToJmp, DWORD dwNumberOfOverwrittenOpcodes )
{
char szErrorLog[256];
DWORD dwReservedMemorySpace = 0x0;
DWORD dwOldProtection = 0x0;

dwReservedMemorySpace = ( DWORD )VirtualAlloc( 0, ( dwNumberOfOverwrittenOpcodes + 0x5 ), MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE );
if( dwReservedMemorySpace == NULL )
{
sprintf( szErrorLog, "dwDetourFunction -> VirtualAlloc failed -> GetLastError: %d", GetLastError( ) );
MessageBoxA( GetForegroundWindow( ), szErrorLog, "ERROR", MB_ICONERROR | MB_OK );
return 0x0;
}
if( VirtualProtect( dwAddressOfFunctionToIntercept, dwNumberOfOverwrittenOpcodes, PAGE_READWRITE, &dwOldProtect ) == 0 )
{
sprintf( szErrorLog, "dwDetourFunction -> VirtualProtect failed -> GetLastError: %d", GetLastError( ) );
MessageBoxA( GetForegroundWindow( ), szErrorLog, "ERROR", MB_ICONERROR | MB_OK );
return 0x0;
}
memcpy( dwAddressOfFunctionToIntercept, dwReserveMemorySpace, dwNumberOfOverwrittenBytes );
//jmp opcode [E9]
*( PBYTE )( dwReservedMemorySpace + dwNumberOfOverwrittenBytes ) = 0xE9;
//im debugger würde das nun wie folgt aussehen:
//0xADRESSE orig opcode;
//0xADRESSE3 orig opcode;
//0xADRESSE5 orig opcode;
//0xADRESSE7 jmp;
//jetzt folgt die angabe der adresse an die gesprungen werden soll, dafür benutzen wir die berechnung wie ich sie vorhin erklärt habe
*( PDWORD )( dwReservedMemorySpace + dwNumberOfOverwrittenBytes + 0x1 ) = ( ( dwAddressOfFunctionToIntercept + dwNumberOfOverwrittenBytes ) - ( dwReservedMemorySpace + dwNumberOvOverwrittenBytes + 0x5 ) );
//einige werden sich sicher fragen warum da jetzt 5 bytes dazuadiert werden, das liegt einfach daran, das der jmp erst am ende ausgeführt wird, sprich nach der letzten ziffer der adressenangabe. und da ein jmp 1 opcode ist und eine adresse aus 4 bytes besteht, ist der sprung punkt 5 bytes weiter.
//im debugger schaut das nun so aus:
//im debugger würde das nun wie folgt aussehen
//0xADRESSE 235253 origopcodes;
//0xADRESSE3 2351 origopcodes;
//0xADRESSE5 3452 origopcodes;
//0xADRESSE7 e9 23456321 jmp relativadresse;
//HOOK!!!!!!!!!!!!!!!
//jmp instruction setzen
*( PBYTE )dwAddressOfFunctionToIntercept = 0xE9;
//rva berechnen und setzen
*( PDWORD )( dwAddressOfFunctionToIntecept + 0x1 ) = ( dwAddressOfFunctionToJmp - ( dwAddressOfFunctionToIntercept + 0x5 ) );
//nops setzen?!?!
for( DWORD dwNOP = 0x5; dwNOP < dwNumberOfOverwrittenBytes; dwNOP += 0x1 )
{
//opcode von nop ist 90
*( PBYTE )( dwAddressOfFunctionToIntercept + dwNOP ) = 0x90;
}
//speicherrechte wiederherstellen
if( VirtualProtect( dwAddressOfFunctionToIntercept, dwNumberOfOverwrittenBytes, dwOldProtect, new DWORD ) == 0 )
{
sprintf( szErrorLog, "dwDetourFunction -> VirtualProtect failed -> GetLastError: %d", GetLastError( ) );
MessageBoxA( GetForegroundWindow( ), szErrorLog, "ERROR", MB_ICONERROR | MB_OK );
return 0x0;
}
//whats that ?
TerminateProcess( GetCurrentProcess( ), 0 );
return dwReservedMemorySpace;
}


BOOL WINAPI DllMain(HINSTANCE mod, DWORD DWORD_GRUND, LPVOID res)
{
switch(DWORD_GRUND)
{
case 1:
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)HackThread , 0, 0, 0);
break;
case 2:
break;
}
return TRUE;
}
11/28/2010 20:02 MrSm!th#2
Hast du auch nur ein kleines bisschen von deinem Code verstanden?
11/28/2010 20:07 Mcmy#3
Quote:
Originally Posted by MrSm!th View Post
Hast du auch nur ein kleines bisschen von deinem Code verstanden?
Nicht wircklich den Detour teil nicht. Der ist mir neu!
11/28/2010 20:11 MrSm!th#4
1. Der Code macht so überhaupt keinen Sinn, du schreibst nur eine DetourFunction und die DllMain, erstellst darin einen Thread, den du im Code nicht deklariert hast.
2. Ich wette der Thread ist wieder void HackThread()
3. Für D3D Hacks brauchst du natürlich das DirectX9 SDK
4. Wenn du die Funktion nicht verstehst, dann copypaste sie nicht, sondern lern erstmal die Sprache vernünftig, lies dir ein bisschen was über Detours an usw.
Außerdem gibt es Microsoft Detours, das ist viel besser als diese 0815 Version, die du da im Code hast.
5. Ich denke mal mit Fehlern meinst du Compilerfehler...schonmal dran gedacht, die hier zu posten? Ohne die kann man dir nicht helfen.

Wir sind übrigens da, um beim Programmieren zu helfen, nicht um deine Fehler zu beheben, die beim Copypasten entstehen zu beheben.

p.s. Musst du alle paar Minuten einen neuen Thread machen??? Fasse doch mal mehrere Probleme in einem zusammen oder editier sie rein, aber öffne nicht jedes Mal einen neuen.
11/28/2010 20:15 Killermania9610#5
Quote:
Originally Posted by MrSm!th View Post
1. Der Code macht so überhaupt keinen Sinn, du schreibst nur eine DetourFunction und die DllMain, erstellst darin einen Thread, den du im Code nicht deklariert hast.
2. Ich wette der Thread ist wieder void HackThread()
3. Für D3D Hacks brauchst du natürlich das DirectX9 SDK
4. Wenn du die Funktion nicht verstehst, dann copypaste sie nicht, sondern lern erstmal die Sprache vernünftig, lies dir ein bisschen was über Detours an usw.
Außerdem gibt es Microsoft Detours, das ist viel besser als diese 0815 Version, die du da im Code hast.
5. Ich denke mal mit Fehlern meinst du Compilerfehler...schonmal dran gedacht, die hier zu posten? Ohne die kann man dir nicht helfen.

Wir sind übrigens da, um beim Programmieren zu helfen, nicht um deine Fehler zu beheben, die beim Copypasten entstehen zu beheben.

p.s. Musst du alle paar Minuten einen neuen Thread machen??? Fasse doch mal mehrere Probleme in einem zusammen oder editier sie rein, aber öffne nicht jedes Mal einen neuen.
Hmm... ich glaub der will in einem No Menu Hack chams einbauen oder so .. kenne mich mit c++ nicht aus ^^ ich hab das so verstanden.
11/28/2010 20:19 Mcmy#6
Quote:
Originally Posted by Killermania9610 View Post
Hmm... ich glaub der will in einem No Menu Hack chams einbauen oder so .. kenne mich mit c++ nicht aus ^^ ich hab das so verstanden.
Ja! Ich will einen No Menu Hack bauen in dem Chams beiinhaltet!!
11/28/2010 20:25 MrSm!th#7
Und warum postet ihr das jetzt?
Habe ich geschrieben, dass ich nicht weiß, was er für ein Problem hat?
Ich habe ihm gesagt, was er tun muss, damit wir überhaupt erstmal das Problem beheben können und ihm außerdem ein paar Auflagen gegeben, betreffend C&P.
11/28/2010 20:34 Mcmy#8
Quote:
Originally Posted by MrSm!th View Post
Und warum postet ihr das jetzt?
Habe ich geschrieben, dass ich nicht weiß, was er für ein Problem hat?
Ich habe ihm gesagt, was er tun muss, damit wir überhaupt erstmal das Problem beheben können und ihm außerdem ein paar Auflagen gegeben, betreffend C&P.
iCH MACH normalerweise kein C&P.


Code:
1>------ Erstellen gestartet: Projekt: No Menu Chams Hack, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(19) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdio.h(366): Siehe Deklaration von 'sprintf'
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(23) : error C2065: 'dwOldProtect': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(29) : error C2065: 'dwReserveMemorySpace': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(29) : error C2065: 'dwNumberOfOverwrittenBytes': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(31) : error C2065: 'dwNumberOfOverwrittenBytes': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(38) : error C2065: 'dwNumberOfOverwrittenBytes': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(38) : error C2065: 'dwNumberOfOverwrittenBytes': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(38) : error C2065: 'dwNumberOvOverwrittenBytes': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(50) : error C2065: 'dwAddressOfFunctionToIntecept': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(52) : error C2065: 'dwNumberOfOverwrittenBytes': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(58) : error C2065: 'dwNumberOfOverwrittenBytes': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(58) : error C2065: 'dwOldProtect': nichtdeklarierter Bezeichner
1>c:\users\mehmet yalcin\documents\visual studio 2008\projects\no menu chams hack\no menu chams hack\main.cpp(75) : error C2065: 'HackThread': nichtdeklarierter Bezeichner
1>Das Buildprotokoll wurde unter "file://c:\Users\Mehmet Yalcin\Documents\Visual Studio 2008\Projects\No Menu Chams Hack\No Menu Chams Hack\Debug\BuildLog.htm" gespeichert.
1>No Menu Chams Hack - 12 Fehler, 1 Warnung(en)
11/28/2010 20:50 MrSm!th#9
Nein, du doch nicht.

Lies dir mal die Fehlermeldungen durch und denk an deine letzten Threads, dann fällt es dir sicher auf.
Außerdem willst du mit CreateThread einen HackThread erstellen, obwohl er nichtmal in der Datei ist, ich dachte du hast nur einen Teil des Sources gegeben, aber nein, es ist der komplette o.O
Wie soll so auch Chams zu deinem Hack hinzugefügt sein, wenn du es gar nicht in deinen Hack einbaust, sondern einen ganz neuen Hack machst, der dazu noch unvollständig ist?