Ergebnis 1 bis 5 von 5
  1. #1
    W32.FunLove
    Registriert seit
    01.12.2007
    Beiträge
    121

    Standard C++ Prozess Killen

    Hallo,
    ich will mit C++ einen Prozess killen.
    Also ich bin noch ein noob bei thema C++.
    Ich hab schon ein paar versuche gemacht was leider nichts half.
    Also kann jemand ein beispiel machen wie z.b. beispiel.exe kille?
    Wenn es geht aber bitte nicht nur den Code einfach so reinschreiben und fertg, sonden auch wenn es geht ein bissle erklären.

    mfg Reaper

  2. #2
    W32.FunLove
    Registriert seit
    18.07.2007
    Beiträge
    129

    Standard

    man killt nicht mal so eben ein prozess..... wenn du keine ahnung von c++ hast hilft dir auch ne kleine erklärung nix wenn du nichtmal die basics kannst

    ausserdem brauchste dafür sogar reverse engeering was noch ne stufe höher ist ( bin mir da aber nich ganz sicher )

  3. #3
    BackNine Wurm
    Registriert seit
    01.01.2007
    Beiträge
    302

    Standard

    In c# könntest du den Prozess einfach per Namen suchen, instanziieren und process.Kill(); ausführen.

    Weiß nicht, wie das in cpp aussieht, da ich von CPP keine Ahnung hab... aber dafür kannst du ja auf eine API Funktion zugreifen.


    Erkundige dich ma über die Funktion TerminateProcess der kernel32.dll
    denke google wird da behilflich sein.


    :edit:

    Google hat mir auch gerade das noch ausgespuckt

    Code:
    /****************************************************************************
     Bestimmt das zum übergebenen Prozess-Exectuable gehörende Prozess-Handle
     und gibt es zurück.
     Übergabe
     strProcessExe Prozess-Executable.
     dwDesiredAccess Benötigter Prozess-Zugriff.
     Rückgabe
     Zugehöriges Handle oder NULL im Fehlerfall.
    *****************************************************************************/
    
    HANDLE GetProcessHandle( CString strProcessExe, DWORD dwDesiredAccess )
    {
     HANDLE hSnapShot; // System-Snap-Shot-Handle
     PROCESSENTRY32 PEntry; // Process-Enumerations-Struktur
     HANDLE hProcess; // Prozess-Handle
     CString strExeFile; // Hilfssstring
     BOOL bOK; // Abbruch-Flag
    
     // Liste aller im System laufenden Prozesse erstellen
     hSnapShot=::CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
    
     if( hSnapShot==INVALID_HANDLE_VALUE )
     // Fehler aufgetreten
     return NULL;
    
     // Prozess-Executable in Kleinbuchstaben wandeln
     strProcessExe.MakeLower( );
    
    
     // Prozess-Liste durchlaufen
     PEntry.dwSize=sizeof( PEntry );
     bOK=::Process32First( hSnapShot, &PEntry );
     for( ; bOK; bOK=::Process32Next( hSnapShot, &PEntry )){
     
     // Pozess-ID in Handle umwandeln
     hProcess=::OpenProcess( dwDesiredAccess, FALSE, PEntry.th32ProcessID );
     if( hProcess==NULL )
     // Umwandlung misslungen
     continue;
    
     // Prozess-Executable in Kleinbuchstaben wandeln und prüfen
     strExeFile=PEntry.szExeFile;
     strExeFile.MakeLower( );
     if( strExeFile.Find( strProcessExe )!=-1 )
     // Passenden Prozess gefunden, Handle zurückgeben
     return hProcess;
     }
    
     // Nichts Passendes gefunden
     return NULL;
    }

    Damit kannst Du mit

    Code:
    TerminateProcess( GetProcessHandle( "test.exe", PROCESS_TERMINATE ), 0 );

    einen laufenden Prozess "test.exe" beenden. Das gelingt aber nur, wenn der ausführende Benutzer auch die entsprechenden Rechte besitzt. GetProcessHandle( ... ) kehrt bei fehlenden Rechten der einem anderen Fehler mit NULL zurück. Des Weiteren musst Du darauf achten, bei der Executable keinen Pfad anzugeben.


    Zitat Zitat von roflcopterpilot
    danke, aber wo kann man denn hier bitte proxies checken? http://proxycheck.dl.am/

  4. #4
    W32.FunLove
    Registriert seit
    01.12.2007
    Beiträge
    121

    Standard

    Steav ich hatte ein ganz ähnlichen code wie du, hatte bei mir aber noch eininge Probleme die ich nicht lösen konnte. Ich hab jetzt dein Code compilert und es kommen immer noch einige fehler. Funktioniert er bei dir? Wenn ja was mach ich Falsch? Also Compiler verwende ich Visual C++ 2005 Express Edition, denk aber nicht das das so ein unterschied macht.

  5. #5
    Trojaner Avatar von Sunrise
    Registriert seit
    20.09.2007
    Beiträge
    58

    Standard

    man killt nicht mal so eben ein prozess.....
    system("tskill test"); //Anstatt test, den namen des prozesses.

    Fuck war das schwer! :roll:
    madda, große reden scchwingen, aber noch nit mal nen noob mit dem einfachsten helfen können. Er hat ja nit gefragt wie man nen System Prozess killt.
    JaJa, deine Mutter und so weiter....

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •