Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 18:02

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

Advertisement



[C++] Bluescreen bei dieser Funktion !

Discussion on [C++] Bluescreen bei dieser Funktion ! within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jul 2009
Posts: 103
Received Thanks: 87
Question [C++] Bluescreen bei dieser Funktion !

Also Leute ich habe ein wenig MSDN durchstöbert und kam während dessen auf die Idee ein Programm zu schreiben , dass nicht gekillt werden kann
also schrieb ich diese Funktion :
Code:
#include <windows.h>
#include <iostream>
using namespace std;


typedef VOID ( _stdcall *RtlSetProcessIsCritical ) (
		IN BOOLEAN        NewValue,
	    OUT PBOOLEAN	  OldValue, // (optional)
        IN BOOLEAN      IsWinlogon );



BOOL EnablePriv(LPSTR Privs)
{
	//Modifying our privs'
	HANDLE hToken;
	LUID luid;
	TOKEN_PRIVILEGES tkprivs;

	ZeroMemory(&tkprivs,sizeof(tkprivs));

	//Could not open token to modify Privilegs
	if(!OpenProcessToken(GetCurrentProcess(),(TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY),&hToken))
			return FALSE;
	//Could not lookup Values
	if(!LookupPrivilegeValue(NULL,Privs,&luid))
			return FALSE;

	//Configuring the Privs'
	tkprivs.PrivilegeCount=1;
	tkprivs.Privileges[0].Luid=luid;
	tkprivs.Privileges[0].Attributes =SE_PRIVILEGE_ENABLED;



	BOOL bRet=AdjustTokenPrivileges(hToken,FALSE,&tkprivs,sizeof(tkprivs),NULL,NULL);
	CloseHandle(hToken);
	return bRet;
}


//by F1l73R
bool ProtectProcess(){

    HANDLE hDLL;

	RtlSetProcessIsCritical fSetCritical;
	hDLL=LoadLibraryA("ntdll.dll");
	//Could not load DLL
	if(hDLL==NULL)
		return false;
	//SUCCESSFULLY loadet DLL
	else{

		if(EnablePriv(SE_DEBUG_NAME)==TRUE)
		{
		(fSetCritical)=(RtlSetProcessIsCritical)
			GetProcAddress((HINSTANCE)hDLL,"RtlSetProcessIsCritical");
			if(!fSetCritical)
				return false;

			fSetCritical(1,0,0);

        return true;
        }
        else
            return FALSE;
	}
}

int main()
{
if(ProtectProcess()==FALSE)
    cerr<<"Something went wrong!\n";
else
    cout<<"Everything worked!\n";


   for(;;){

   }

return 0;
}
Wenn ich jetzt aber zu meinem Task Manager gehe und diesen Prozess beenden will bekomme ich einen Bluescreen(habe mir leider die Fehlermeldung nicht gemerkt).
Warum ?
cooler7878 is offline  
Old 07/17/2011, 16:05   #2


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
ist doch klar, weil der prozess kritisch ist und windows nicht damit klar kommt, wenn du so etwas beenden willst.

ist btw. auch eine total bescheuerte idee, wenn man einen prozess schützen will, hookt man einfach OpenProcess und blockt den zugriff.
MrSm!th is offline  
Thanks
1 User
Old 07/17/2011, 17:22   #3
 
elite*gold: 0
Join Date: Jul 2009
Posts: 103
Received Thanks: 87
schön und gut aber wenn ich andere kritische Prozesse beende kommt , dass man diese nicht beenden kann und kein BSOD aber okay dann versuchs ich mit einem hook von OpenProcess .
cooler7878 is offline  
Old 07/17/2011, 17:47   #4


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
entweder in jedem prozess oder im kernelmode, versteht sich ;O
im eigenen prozess bringt das nicht viel.

naja, das ist bei systemprozessen der fall, ich weiß nicht, ob das bei jedem kritischen prozess so gehandhabt wird. vielleicht läuft auch beim setzen des flags irgendwas falsch, sodass bei der überprüfung dann ein bsod wegen irgendwelchen fehlern mit den flags entsteht.
jedenfalls könnte jeder andere prozess deinem diesen status auch wieder wegnehmen oder sich selbst systemrechte geben und ihn beenden, also bringt es wirklich nur durch einen kernelweiten hook wirklich etwas (und selbst den kann man umgehen )
MrSm!th is offline  
Thanks
1 User
Old 07/17/2011, 17:54   #5
 
elite*gold: 0
Join Date: Jul 2009
Posts: 103
Received Thanks: 87
Okay ich danke dir werde mich mal genauer mit Hooks befassen !
Edit: Könntest du mir irgendwelche Seiten empfehlen ?
cooler7878 is offline  
Old 07/17/2011, 20:17   #6


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
meinst du kernelmode hooks?
MrSm!th is offline  
Old 07/17/2011, 22:28   #7
 
elite*gold: 0
Join Date: Jul 2009
Posts: 103
Received Thanks: 87
Ja das wäre echt nett
cooler7878 is offline  
Old 07/17/2011, 22:37   #8


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394




sind eben verschiedene techniken.

und auch im kernel gehen natürlich normale detours:

MrSm!th is offline  
Thanks
1 User
Old 07/18/2011, 13:39   #9
 
elite*gold: 0
Join Date: Jul 2009
Posts: 103
Received Thanks: 87
Gut ich versuchs mit den Detours sollte ich Version 1.5 oder 2.1 benutzen. Ich frage , da ich bei Version 2.1 Probleme mit dem Build der Library habe ..
cooler7878 is offline  
Old 07/18/2011, 13:46   #10


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
geht beides, aber eigentlich sollte es bei 2.1 keine probleme geben.
MrSm!th is offline  
Old 07/18/2011, 15:05   #11
 
elite*gold: 0
Join Date: Jul 2009
Posts: 103
Received Thanks: 87
Gut hab's hinbekommen (es gab komplikationen mit der VC++ 2010 Command Prompt und nmake) und danke für dein Tutorial zu den Detours sehr informativ ;-)
cooler7878 is offline  
Old 07/21/2011, 02:42   #12
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
Quote:
Originally Posted by cooler7878 View Post
Gut ich versuchs mit den Detours sollte ich Version 1.5 oder 2.1 benutzen. Ich frage , da ich bei Version 2.1 Probleme mit dem Build der Library habe ..
Eindeutig 1.5, bei 2.1 kriegt man doch das kotzen ;>
MoepMeep is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Hilfe bei Send Funktion mit Stop Funktion
04/02/2011 - AutoIt - 11 Replies
Hallo Elitepvpers ich habe ein Problem und Mein Problem ist das mein Text einfach weiter schreibt wenn ich mit HotKey verwende... gib es keine Funktion das der Text einmal kommt und nicht wenn man einmal die HotKey das er 10 min das selbe schreibt :confused:
BlueScreen
10/28/2010 - Technical Support - 4 Replies
Moin, mein Kumpel hat seinen Laptop mit. Nach dem booten bekommt er jedes mal einen Bluescreen. OS ist Vista. STOP: 0x000000F4 (0x00000003, 0x9437E6A8, 0x9437E7F4, 0x82873710) Kann man noch was dagegen tun? Wir wollen nicht formatieren, das würde zu lange dauern, er muss bald wieder los. Wir wollen nur mal zocken.
BlueScreen
10/10/2010 - WarRock - 11 Replies
Hi, immer wenn ich warrock zocke so 1-3 stunden kommt irgendwan blue screen und ich muss dann immer pc aus/an machen an was liegt das BlueScreen
[C++]Funktion einer Klasse in einer anderen Funktion der Klasse verwenden, aber wie?
07/25/2010 - C/C++ - 3 Replies
Mein Problem ist eigentlich recht simpel und die Lösung wahrscheinlich auch. Da ich bisher fast 0 mit Klassen am Hut hatte, wollte ich mich doch mit dem Thema anfreunden und hatte gleich angefangen: int test::Funktion2() { int temp; cin>>temp; return temp; }
Win 7 to XP, bluescreen?
05/08/2010 - Technical Support - 10 Replies
Hi Leute ich hab noch meien alte Windows XP CD, und einen rechner, den ich mit vorinstalliertem Win 7 gekauft habe. Ihc möchte wieder zu XP umsteigen , aber ich schaff das irgendwie nicht. Ich shciebe erstmal die WIn 7 Recovery disc rein und formatiere C:\ . Dann tu ich die XP CD rein und starte dne Pc neu.



All times are GMT +2. The time now is 18:02.


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.