Breakpoints
-
- [C++]
- DiNozzo
-
-
-
Hey, ich war zufällig auf der suche nach dem selben Problem.
Ich habe eine neue Funktion gemacht und in dieser meinen Breakpoint gesetzt.Code- void SetBreakPoint( )
- {
- int pid = GetProcessID( "lol.exe" );
- LPMODULEENTRY32 ModuleInfo = GetModuleInfo( ( DWORD )pid, "user32.dll" );
- __asm
- {
- mov addr, offset MessageBoxA
- }
- CONTEXT ctx = { CONTEXT_DEBUG_REGISTERS };
- ctx.Dr0 = addr;
- ctx.Dr7 = 0x000001;
- SetThreadContext( ( HANDLE )ModuleInfo->szModule, &ctx );
- }
So sieht mein UnhandlerExceptionFilter aus:
Code- LONG WINAPI __UnhandlerExceptionFilter( struct _EXCEPTION_POINTERS* ExceptionInfo )
- {
- if ( ExceptionInfo->ExceptionRecord->ExceptionCode == EXCEPTION_SINGLE_STEP )
- {
- if ( ( DWORD )ExceptionInfo->ExceptionRecord->ExceptionAddress == addr )
- {
- /* MessageBoxA
- 769BFEAE U> 8BFF MOV EDI,EDI
- 769BFEB0 55 PUSH EBP
- 769BFEB1 8BEC MOV EBP,ESP
- 769BFEB3 6A 00 PUSH 0
- 769BFEB5 FF75 14 PUSH DWORD PTR SS:[EBP+14]
- 769BFEB8 FF75 10 PUSH DWORD PTR SS:[EBP+10]
- 769BFEBB FF75 0C PUSH DWORD PTR SS:[EBP+C]
- 769BFEBE FF75 08 PUSH DWORD PTR SS:[EBP+8]
- 769BFEC1 E8 A0FFFFFF CALL USER32.MessageBoxExA
- 769BFEC6 5D POP EBP ; kernel32.750C3677
- 769BFEC7 C2 1000 RETN 10
- */
- DWORD RetAddress = ( DWORD )( ExceptionInfo->ContextRecord->Esp );
- PDWORD Arguments = ( PDWORD )( ExceptionInfo->ContextRecord->Esp + 0x4 );
- DWORD Argument[ 4 ] = { };
- memcpy( &Argument, Arguments, 4 * sizeof( DWORD ) );
- memcpy( ( char* )Argument[ 1 ], "Testing...", sizeof( DWORD ) );
- __asm
- {
- mov edi, edi
- }
- ExceptionInfo->ContextRecord->Eip += 0x2;
- return EXCEPTION_CONTINUE_EXECUTION;
- }
- }
- return EXCEPTION_CONTINUE_SEARCH;
- }
1) Ich bin mir nicht sicher ob Überhaupt UnhandlerExceptionFilter gecallt wird.
2) Ich weiß nicht ob man die neuen Args die ich gesetzt habe noch mal alle in den Stack pushen muss.Könnte mir jemand weiterhelfen?
-
Ich bin mir sicher, dass hier Leute helfem könnten, wenn ihr sagt, warum ihr das macht und was ihr damit vorhabt.
Sollte dies ein Top-Secret Projekt für die US-Regierung sein, dann wendet euch doch bitte an Personen mit der nötigen Geheimhaltungsstufe.MfG
-
-
Nein Ich wollte einen BreakPoint auf die MessageBoxA Funktion setzten und wenn dieser ausgelöst wird ein Parameter verändern. Jedoch weiß ich nicht wie ich das mit dem UnhandlerExceptionFilter soll. Wollte versuches MessageBoxA auf diese weiße zu "hooken".
-
-
Schön gemacht. Haste die Idee selbst gehabt oder von www.gamedeception.net?
-
-
Ich bin da selbst drauf gekommen, aber P47R!CK hatte da mal was zu geschrieben, das stimmt schon.
MfG
-
Ahh ok. Wie ist das eigentlich mit der Sicherheit von den beiden Methoden? Die mit den Breakpoint kann man einfach über GetThreadContext abfragen und somit detected. Es sein den man hookt die Funktion... Kann man diesen dann auch immer noch einfach detected?
MfG
-
man kann alles detecten nur iste es eine frage des aufwandes
Bitte keine dumme Antworten auf Fragen die man nicht versteht.
1) Ich habe danach gefragt ob es einfach geht oder nicht.
2) Ich habe noch nach dem "wie" gefragt. -
-
Ich weiß, dass Punkbuster dich trotzdem erkennt. VAC2 !glaube! ich nicht.
Am Endes meines Tutorials steht da aber noch was zu: VirtualQuery auf deine gehookte Funktion angewand, würde dich bspw. entdecken.MfG
-
Also müsste man VirtualQuery ebenfalls umgehen um unerkannt zu bleiben. Aber gegen einen gezielten Schutz einer Funktion hilft dann nur noch reversen? Zum Beispiel ein andere Thread checkt immer die ersten 5 Bytes der Funktion.
-
Also müsste man VirtualQuery ebenfalls umgehen um unerkannt zu bleiben. Aber gegen einen gezielten Schutz einer Funktion hilft dann nur noch reversen? Zum Beispiel ein andere Thread checkt immer die ersten 5 Bytes der Funktion.
Und dann hookst du das 6. Byte -
-
Nj dongdong ich weiß net ob die Idee so gut ist.
Ich weiß nicht ob mans mal testen soll auf einem Vac2 sichern Server einfach mal Noflash anzuamchen und sehen obs mit der Methode auffällt oder nicht. -
Nj dongdong ich weiß net ob die Idee so gut ist.
Ich weiß nicht ob mans mal testen soll auf einem Vac2 sichern Server einfach mal Noflash anzuamchen und sehen obs mit der Methode auffällt oder nicht.
Wenn du Accounts zu viel hast, dann nur zuIch frag mich sowieso immer wie man i-was als Secure abstempeln kann. Kann man eig. nur über reversen rauskriegen oder halt probieren ^^.
-
Nj reversen dauert, da bleibt nur austesten
-