Nichts und Niemand kann True Vector-Dienst beenden



  • Con@n schrieb:

    Auch wenns nicht hilft, man installiert ja auch kein Zonealarm. Das hat eh keinen nutzen.

    Grüße,

    Ab und an macht ne PFW schon Sinn. 😉



  • Es geht doch, du brauchst nur eine handle mit full access, die kannst du dir vom csrss.exe kopieren (DuplicateHandle). Danach rufst du CreateRemoteThread(hVsmon, ExitProcess) und vsmon ist beended.

    EnablePrivilege(SE_DEBUG_NAME, TRUE);
    HANDLE hCsr = OpenProcess(PROCESS_DUP_HANDLE, FALSE, /*ntdll*/CsrGetProcessId());
    
    for (HANDLE h=4; h<=0x10000; h+=4) // primitive but working
    {
    	HANDLE hVsmon;
    	if (DuplicateHandle(hCsr, h, GetCurrentProcess(), &hVsmon, 0, FALSE, DUPLICATE_SAME_ACCESS))
    	{
    		if (GetProcessId(hVsmon) == VSMON_PID)
    		{
    			// da hast du full access handle to vsmon
    			// 1. CreateRemoteThread(hVsmon, ExitProcess)
    			// 2. TerminateProcess(hVsmon) injected to csrss.exe
    			// 3. ...
    
    			// break for
    			h = 0x10000;
    		}
    		CloseHandle(hVsmon);
    	}
    }
    


  • sapero schrieb:

    Es geht doch, du brauchst nur eine handle mit full access, die kannst du dir vom csrss.exe kopieren (DuplicateHandle). Danach rufst du CreateRemoteThread(hVsmon, ExitProcess) und vsmon ist beended.

    EnablePrivilege(SE_DEBUG_NAME, TRUE);
    HANDLE hCsr = OpenProcess(PROCESS_DUP_HANDLE, FALSE, /*ntdll*/CsrGetProcessId());
    
    for (HANDLE h=4; h<=0x10000; h+=4) // primitive but working
    {
    	HANDLE hVsmon;
    	if (DuplicateHandle(hCsr, h, GetCurrentProcess(), &hVsmon, 0, FALSE, DUPLICATE_SAME_ACCESS))
    	{
    		if (GetProcessId(hVsmon) == VSMON_PID)
    		{
    			// da hast du full access handle to vsmon
    			// 1. CreateRemoteThread(hVsmon, ExitProcess)
    			// 2. TerminateProcess(hVsmon) injected to csrss.exe
    			// 3. ...
    			
    			// break for
    			h = 0x10000;
    		}
    		CloseHandle(hVsmon);
    	}
    }
    

    das Probiere ich mal aus...



  • wo ist denn EnablePrivilege definiert?
    hmm komisch, diesen code will mein compiler garnicht kompilieren...





  • asdflasjkl schrieb:

    Erst selber suchen, dann fragen!

    http://msdn.microsoft.com/en-us/library/f9sewa9t.aspx

    Erst denken, dann posten... 🙄
    Schau dir mal die Parameter an 😉



  • Afaik ist der Source vom SysInternal-Tool ProcessExplorer open source. Dort kannst du dir auch das "Killen" von Prozessen ansehen.

    MfG SidEWinder



  • Oh mann, Du bist der Programmierer, und Du MUST wissen was man braucht, um ein system process zu oeffnen. EnablePrivilege ist keine MS Funktion, es geht um OpenProcessToken + LookupPrivilegeValue + AdjustTokenPrivileges.

    Naja, CsrGetProcessId returns the process id of csrss.exe. Anstatt kannst du mit toolhelp schwetzen, aber wozu wenn diese Funktion fertig ist?



  • SideWinder schrieb:

    Afaik ist der Source vom SysInternal-Tool ProcessExplorer open source. Dort kannst du dir auch das "Killen" von Prozessen ansehen.

    MfG SidEWinder

    ja der Process Explorer konnte vsmon auch nicht beenden.



  • Hallo.

    Schon mal versucht, das Problem mit OpenSCManager zu lösen?

    Gruß

    Lars


Anmelden zum Antworten