Thema: Persistence - Critical Process

Ergebnis 1 bis 14 von 14

  1. #1
    Johannes
    Guest

    Persistence - Critical Process

    C++ / C Code:
    #define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
     
    typedef enum _PROCESS_INFORMATION_CLASS {
        ProcessBasicInformation = 0, 
        ProcessQuotaLimits, 
        ProcessIoCounters, 
        ProcessVmCounters, 
        ProcessTimes, 
        ProcessBasePriority, 
        ProcessRaisePriority,
        ProcessDebugPort,
        ProcessExceptionPort, 
        ProcessAccessToken, 
        ProcessLdtInformation, 
        ProcessLdtSize, 
        ProcessDefaultHardErrorMode,
        ProcessIoPortHandlers, 
        ProcessPooledUsageAndLimits, 
        ProcessWorkingSetWatch, 
        ProcessUserModeIOPL, 
        ProcessEnableAlignmentFaultFixup, 
        ProcessPriorityClass, 
        ProcessWx86Information, 
        ProcessHandleCount, 
        ProcessAffinityMask, 
        ProcessPriorityBoost,
        MaxProcessInfoClass,
        ProcessBreakOnTermination = 0x1D
    } PROCESS_INFORMATION_CLASS, *PPROCESS_INFORMATION_CLASS;
     
    typedef NTSTATUS (WINAPI *t_NtSetInformationProcess)(HANDLE ProcessHandle, PROCESS_INFORMATION_CLASS ProcessInformationClass, PVOID ProcessInformation, ULONG ProcessInformationLength);
     
    BOOL setProcessCritical(HANDLE hProcess, ULONG newValue)
    {
        t_NtSetInformationProcess _NtSetInformationProcess = 0;
     
        _NtSetInformationProcess = (t_NtSetInformationProcess)GetProcAddress(GetModul  eHandleA("ntdll.dll"), "NtSetInformationProcess");
        if (_NtSetInformationProcess)
        {
            if (NT_SUCCESS(_NtSetInformationProcess(hProcess, ProcessBreakOnTermination, &newValue, sizeof(ULONG))))
            {
                return TRUE;
            }
        }
     
        return FALSE;
    }
     
    BOOL setCurrentProcessCritical(ULONG newValue)
    {
        return setProcessCritical(GetCurrentProcess(), newValue);
    }[/CODE]
     
     
    setCurrentProcessCritical(TRUE);
     
    Man braucht Debug-Rechte: SE_DEBUG_NAME
     
    Nicht vergessen:
     
    [CODE]LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)
        {
            case WM_QUERYENDSESSION:
                {
                    MessageBoxA(0,"WM_QUERYENDSESSION","",0);
                    return 0;
                }
            case WM_ENDSESSION:
                {
                    MessageBoxA(0,"WM_ENDSESSION","",0);
                    return 0;
                }
        }
     
        return DefWindowProcW(hWnd, message, wParam, lParam);
    }
  2. #2
    Member
    Registriert seit Jul 2013
    Beiträge 33

    AW: Persistence - Critical Process

    Naja.

    Ich hab den Code mal struturiert & funktionierend gemacht:

    Critical.h

    C++ / C Code:
    #include <windows.h>
    #define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
     
    typedef enum _PROCESS_INFORMATION_CLASS {
    	ProcessBasicInformation = 0, 
    	ProcessQuotaLimits, 
    	ProcessIoCounters, 
    	ProcessVmCounters, 
    	ProcessTimes, 
    	ProcessBasePriority, 
    	ProcessRaisePriority,
    	ProcessDebugPort,
    	ProcessExceptionPort, 
    	ProcessAccessToken, 
    	ProcessLdtInformation, 
    	ProcessLdtSize, 
    	ProcessDefaultHardErrorMode,
    	ProcessIoPortHandlers, 
    	ProcessPooledUsageAndLimits, 
    	ProcessWorkingSetWatch, 
    	ProcessUserModeIOPL, 
    	ProcessEnableAlignmentFaultFixup, 
    	ProcessPriorityClass, 
    	ProcessWx86Information, 
    	ProcessHandleCount, 
    	ProcessAffinityMask, 
    	ProcessPriorityBoost,
    	MaxProcessInfoClass,
    	ProcessBreakOnTermination = 0x1D
    } PROCESS_INFORMATION_CLASS, *PPROCESS_INFORMATION_CLASS;
     
     
    typedef NTSTATUS (WINAPI *t_NtSetInformationProcess)(HANDLE ProcessHandle, PROCESS_INFORMATION_CLASS ProcessInformationClass, PVOID ProcessInformation, ULONG ProcessInformationLength);
    BOOL setProcessCritical(HANDLE hProcess, ULONG newValue);
    void GetDebugPrivilege();



    Critical.c

    C++ / C Code:
    #include <windows.h>
    #include "Critical.h"
     
    void GetDebugPrivilege()
    {
    	TOKEN_PRIVILEGES privilege;
    	LUID Luid;
    	HANDLE handle1;
    	HANDLE handle2;
     
    	handle1 = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
    	OpenProcessToken(handle1, TOKEN_ALL_ACCESS, &handle2);
    	LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &Luid);
    	privilege.PrivilegeCount = 1;
    	privilege.Privileges[0].Luid = Luid;
    	privilege.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    	AdjustTokenPrivileges(handle2, FALSE, &privilege, sizeof(privilege), NULL, NULL);
    	CloseHandle(handle2);
    	CloseHandle(handle1);
    }
     
    BOOL setProcessCritical(HANDLE hProcess, ULONG newValue)
    {
    	t_NtSetInformationProcess _NtSetInformationProcess = 0;
     
    	GetDebugPrivilege();
    	_NtSetInformationProcess = (t_NtSetInformationProcess)GetProcAddress(GetModul  eHandleA("ntdll.dll"), "NtSetInformationProcess");
    	if (_NtSetInformationProcess)
    	{
    		if (NT_SUCCESS(_NtSetInformationProcess(hProcess, ProcessBreakOnTermination, &newValue, sizeof(ULONG))))
    		{
    			return TRUE;
    		}
    	}
     
    	return FALSE;
    }


    Main.c (demo)

    C++ / C Code:
    #include <windows.h>
    #include "Critical.h"
     
    int main(){
    	if(setProcessCritical(GetCurrentProcess(), TRUE)){
    		MessageBoxA(0, "You should get a BSOD now", "Info", 64);
    	}else{
    		MessageBoxA(0, "failed", "Error", 48);
    	}
    }


    Des weiteren sollte gesagt werden, dass das ganze nur mit Admin Rechten funzt.

    ~0x90
  3. #3
    Johannes
    Guest

    AW: Persistence - Critical Process

    Irgendein Moderator hat meinen Post verpfuscht. Außerdem wollte ich keinen Copy/Paste fertigen Source posten.
  4. #4
    Member
    Registriert seit Jul 2013
    Beiträge 33

    AW: Persistence - Critical Process

    Gibt da auch nen schönen kleinen Bug mit dem man nen Prozess auf Critical setzen kann ohne Admin rechte - aber den poste ich hier nicht öffentlich.
  5. #5
    Johannes
    Guest

    AW: Persistence - Critical Process

    [Nur Registrierte Mitglieder können diesen Inhalt sehen. ]
  6. The Following User Says Thank You to Johannes For This Useful Post:

    Mofo (29. July 2013)

  7. #6
    Member
    Registriert seit Jul 2013
    Beiträge 33

    AW: Persistence - Critical Process

    :-) Darauf wollte ich hinaus. Ist zwar pub - aber heißt trotzdem nicht dass den alle nutzen. Lassen sich schöne Sachen damit anstellen aber.
  8. #7
    Junior Member
    Registriert seit Jul 2013
    Beiträge 5

    AW: Persistence - Critical Process

    [Nur Registrierte Mitglieder können diesen Inhalt sehen. ]
    [Nur Registrierte Mitglieder können diesen Inhalt sehen. ]

    [Nur Registrierte Mitglieder können diesen Inhalt sehen. ]
    Geändert von S3RB31 (31. July 2013 um 08:06 Uhr)
  9. #8
    Johannes
    Guest

    AW: Persistence - Critical Process

    @S3RB31

    Danke fürs googlen :P
    [Nur Registrierte Mitglieder können diesen Inhalt sehen. ]
  10. #9
    Junior Member
    Registriert seit Jul 2013
    Beiträge 5

    AW: Persistence - Critical Process

    @S3RB31

    Danke fürs googlen :P
    [Nur Registrierte Mitglieder können diesen Inhalt sehen. ]
    Wenn du es schon verpasst auf diesen äußerst Lehrreichen Artikel und ein adäquates Beispiel zu verweisen, dann muss ich das eben tun. Ich hab aber nicht gegooglet.
  11. #10
    Johannes
    Guest

    AW: Persistence - Critical Process

    Deine optimistische Einstellung ist löblich.

    Die Leute die es interessiert wissen es eh schon oder die können auch googlen. Die Leute die es nicht interessiert brauchen die Erklärung auch nicht, da reicht copy/paste.
  12. #11
    Junior Member
    Registriert seit Jul 2013
    Beiträge 5

    AW: Persistence - Critical Process

    Deine optimistische Einstellung ist löblich.

    Die Leute die es interessiert wissen es eh schon oder die können auch googlen. Die Leute die es nicht interessiert brauchen die Erklärung auch nicht, da reicht copy/paste.
    Johannes, mein lieber Johannes. Wo ist denn eigentlich dein Problem?

    Kannst du es nicht ab, wenn dich jemand ergänzt? Man kommt irgendwie zu dem Schluss dass es dir hauptsächlich darum geht dich zu auf Kosten aller anderen zu Profilieren. Kannst du mir verraten warum du meinen Post nicht einfach Kommentarlos hinnehmen kannst?

    Du scheinst tatsächlich zu glauben das ich erst durch die Credits in deinem Paste darauf gekommen sein könnte, wo man einen entsprechenden Blogpost findet? Nun hätte ich gesehen dass da Credits stehen, hätte ich gar nicht erst gepostet, warum auch? In deiner Anfeindung auf meinen Post, welcher - zumindest meinem Urteil nach - sogar mehr Information beinhaltet als deiner zeigt sich symptomatisch und selten plastisch, dein Drang suggestiv den eigenen "Erfolg" zu verteidigen bzw. Selbstbestätigung durch destruktive Art und dem suggestiven fordern einer Rechtfertigung des Gegenüber zu erlangen. Offensive Rhetorik zu defensivem Zweck, den Angriff ist bekanntlich die beste Verteidigung. Ist dir eigentlich klar dass deine Erwiderung (#8) genau so gut meine (#7) sein könnte?

    Du bist hier erkennbar nicht dafür zuständig das Board zu moderieren, also hast du zwei Möglichkeiten: Ignorieren und Melden. Warum nutzt du diese Möglichkeiten nicht sondern erzeugst durch deine Spielchen erst die wirklich nutzlosen Beiträge? Erklär mir das mal falls ich oben nicht ins Schwarze getroffen habe. Würde mich wirklich interessieren.

    Gesagt sei noch dass dieser Beitrage nicht als Angriff formuliert sein soll, denn ich will ja nicht die selben Fehler machen die ich hier beklage, weswegen ich mir auch Mühe gegeben habe die von mir angesprochene Problematik möglichst fachlich-differenziert darzustellen. Ich persönlich zum Beispiel freue mich immer wenn man technische Diskussionen mit qualifizierten Leuten führen kann, aber diese Freude vergeht ganz schnell wenn Leute wie du jede Ergänzung als Angriff und jede Gegentheorie als ungültig abtun.

    Ich würde außerdem Vorschlagen diese Diskussion - natürlich nur bei Interesse - per PM, IM o. ä. auszutragen, um den Rest des Boards zu schonen und auch den Paradigmen einer Forendiskussion zu entgehen. Ich bin überzeugt das man auf einer aggressionsfreien Basis schneller zu einem beidseitig akzeptablen Ergebnis kommt.
  13. The Following 3 Users Say Thank You to S3RB31 For This Useful Post:

    Becks (3. August 2013),MindfreaK (6. August 2013),penetration (5. August 2013)

  14. #12
    Junior Member
    Registriert seit Jul 2013
    Beiträge 18

    AW: Persistence - Critical Process

    Darf ich die Herrn fragen wieso sie hier registriert sind?
  15. #13
    Johannes
    Guest

    AW: Persistence - Critical Process

    @S3RB31

    Du nimmst immer alles zu ernst. Ja ich versuche Leute anzustacheln. Ist in dem Board sonst noch was los?

    Falls es dich beruhigt, meine Account Löschung hab ich am 31.7 beantragt.

    @Agon
    Stimmt es gibt kein Grund, deswegen die Acc Löschung. Der Admin hat nur nie Zeit dafür :-/
  16. #14
    Junior Member
    Registriert seit Aug 2013
    Beiträge 2

    AW: Persistence - Critical Process


    Falls es dich beruhigt, meine Account Löschung hab ich am 31.7 beantragt.

    @Agon
    Stimmt es gibt kein Grund, deswegen die Acc Löschung. Der Admin hat nur nie Zeit dafür :-/
    Das ist schon fast traurig mit anzusehen. Jeder mit Charakter könnte ein Board verlassen, ohne erst Aufmerksamkeit erhaschen zu müssen.

    Wenn du es ernst meinen würdest und doch nicht lediglich dem Zweck deiner Profilierung hier bei wohnst, dann würdest du auch das Board verlassen ohne jemanden zu bitten deinen Account zu löschen. Nämlich ganz ohne Worte, so das niemand mitbekommt das du überhaupt weg bist.
  17. The Following 2 Users Say Thank You to penetration For This Useful Post:

    Becks (6. August 2013),S3RB31 (5. August 2013)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. [C] Hide Process x86/x64 Example
    Von MindfreaK im Forum Snippets, Sources & Tutorials
    Antworten: 17
    Letzter Beitrag: 14. July 2013, 22:14

Berechtigungen

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