Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 20:22

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C++] Page Guard hilfe

Discussion on [C++] Page Guard hilfe within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
Light.D.Right's Avatar
 
elite*gold: 0
Join Date: Oct 2011
Posts: 452
Received Thanks: 1,839
[C++] Page Guard hilfe

nabend erstmal,

ich komm gleich zu meinem problem.
Ich nehm ma ein beispiel.
Ich hab die Addy 0x00300000 (fake bsp)
Nun möcht ich auf diese addy via VirtualProtect flag PAGE_GUARD
drauf machen sodass eine Exception ausgelöst wird.
So
Code:
[...]
VirtualProtect((LPVOID)0x00300000, 4, PAGE_EXECUTE_READWRITE | PAGE_GUARD, &oldProtect);
Hier kommt meine frage.
Nun möcht ich die Exception in mein Handler abfangen.
So ungefähr
Code:
void Handle(EXCEPTION_POINTERS* ep)
{
	if(ep->ContextRecord->Eip == 0x00300000)
        {
               MessageBox(NULL, "Address Accessed", "Information", MB_OK);
               ep->ContextRecord->Eip = 0x00500000;
        }
}
Wie krieg ich das nun bewerkstelligt?
Light.D.Right is offline  
Old 10/12/2012, 06:19   #2
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218



Ich denke du suchst danach.
Nightblizard is offline  
Old 10/16/2012, 15:28   #3
 
Light.D.Right's Avatar
 
elite*gold: 0
Join Date: Oct 2011
Posts: 452
Received Thanks: 1,839
danke dir, hat etwas gedauert hatte aber kaum zeit
nun aber xD

Hier ma ersma den source
Frage steht im Ex_handler
Code:
typedef void(__cdecl* EXCEPTION_HANDLER)(EXCEPTION_POINTERS*);

LONG __stdcall Ex_handler(EXCEPTION_POINTERS* ep)
{
    if(ep->ExceptionRecord->ExceptionCode == STATUS_GUARD_PAGE_VIOLATION)
    {
       // Hier möcht ich checken welche page guard ausgelöst wurde.
       // Also die adresse
 
        return EXCEPTION_CONTINUE_EXECUTION;
    }
    return EXCEPTION_CONTINUE_SEARCH;
}

BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved )
{
	switch( fdwReason ) 
	{
		case DLL_PROCESS_ATTACH:
                        AddVectoredExceptionHandler(1,Ex_handler);
			VirtualProtect((LPVOID)0x00030000, sizeof(unsigned long), PAGE_EXECUTE_READWRITE | PAGE_GUARD, &oldProtect);
			break;
	}
	return TRUE;
}
Light.D.Right is offline  
Old 10/16/2012, 15:48   #4


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,104
Received Thanks: 681
Adresse (als void*) kriegste vermutlich mit:
Code:
ep->ExceptionRecord->ExceptionAddress
Und das checken dürfte eine If-Abfrage erledigen, aber das weißte sicher schon

mal durchklicken für mehr Infos zu den Structs
Jeoni is offline  
Old 10/16/2012, 16:58   #5
 
Light.D.Right's Avatar
 
elite*gold: 0
Join Date: Oct 2011
Posts: 452
Received Thanks: 1,839
Quote:
Originally Posted by Jeoni View Post
Adresse (als void*) kriegste vermutlich mit:
Code:
ep->ExceptionRecord->ExceptionAddress
Und das checken dürfte eine If-Abfrage erledigen, aber das weißte sicher schon

mal durchklicken für mehr Infos zu den Structs
Ja hab ich auch schon versucht, aber wenn ich eine if abfrage mit der selben addresse mache, die ich auch in virtualprotect benutzt habe, wird das ereignis nicht ausgeführt. Hab mir dann man die Addresen
die ExceptionAddress gibt per msgbox anzeigen lassen, alle fingen sie mit 404... an. Meine addresse begint aber mit 00...
Light.D.Right is offline  
Old 10/17/2012, 13:48   #6




 
Omdi's Avatar
 
elite*gold: 93616
Join Date: Apr 2010
Posts: 13,737
Received Thanks: 14,990
Versuch mal bei VirtualProtect die Region nur auf PAGE_GUARD zu setzen und lass PAGE_EXECUTE_READWRITE weg.
Omdi is offline  
Reply


Similar Threads Similar Threads
Steam Guard Problem Bitte Hilfe !
01/27/2012 - Steam Trading - 0 Replies
JA wie die überschrift schon sagt hab ich 1 Problem... ich Habe eine Steam Account käuflich erworben und musste deshalb für den Handel den Steam Guard deaktivieren,alles lief über einen Middleman. Jetzt wenn ich Steam Guard aktivieren klicken möchte kommt : "Steam kann ihre anfrage zurzeit nicht bearbeiten...." dass schon seit 1 Monat -.- was soll ich tun ? danke
[HILFE!]regie page über xamp hilfe pls
04/24/2010 - Metin2 Private Server - 3 Replies
HI suche jemanden der mir eine gute regie page mit xampp macht habe ein dyndns server ;) wäre net wen sich einer meldet mfg.
[HILFE!]regie page über xamp hilfe pls
04/22/2010 - Metin2 Private Server - 0 Replies
HI brauche hilfe bei meiner regie page ich möchte gerne eine über examp laufen lassen habe ein dyndns server so weit fertig ^^ habe TV
hilfe brauche hilfe bei regi.page eigener p-server
01/29/2010 - Metin2 Private Server - 8 Replies
hi wie der titel schons agt brauch ich hilfe beim erstellen von der regi.page ich habe alles aber mein "Apache" startet einfach nicht woran liegt das biite um hilfe :handsdown::handsdown: MFG gibt thx :D:handsdown:
Reg Page hilfe
10/25/2009 - Metin2 Private Server - 0 Replies
Also ich hab alles gemacht wie im TuT aber wenn ich auf die seite gehe steht da : The site is running und link zu teamviewer woran liegt das hab s schon bei index geguckt aber is alles richtig kann mir wer helfen ? €: habs schon den Fehler pls close



All times are GMT +2. The time now is 20:22.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.