Prozess beenden verhindern



  • hm ein online-server. was soll da ein guard bringen? schließlich ist zwischen
    den bentuzer und deinem server eine leitung, der nutzer hat nur darauf
    zugriff was der server ihm bereit stellt. ich vermute einfach mal, das der
    gaurd auf clientseite greifen soll. natürlich kann man z.b. die positionsdaten
    oder hp oder whatever per IPC ändern, aber ein guter server sollte sowas unter-
    binden, indem er die werte nicht einfach übernimmt, sondern überprüft, ob sie
    in einem gewissen rahmen liegen. bei onlinespielen ist der client grundsätzlich
    böse. wenn der server so designt wurde sollte das kein problem sein.

    aber zum taskmanager:

    mit FindWindow() kannst du entweder das direkte childwindow holen, oder ein
    geschwinsterfenster in der selben ebene. eine kleine rekursive funktion sollte
    ohne probleme alle controlls des taskmanagers auffinden. sobald du eine listbox
    hast (ka wie man eine listbox erkennt), musst du nurnoch alle einträge durchgehen
    und mit deinem prozess vergleichen. und fertig 🙂

    klappt aber spätestens nicht mehr, wenn man einen anderen taskmanager wie z.b.
    ProcessExplorer (super tool 👍 ) verwendet. sollte aber ein paar
    benutzer raushalten 😉



  • der guard läuft momentan auf der client-seite, weil der server die meisten hacks leider noch nicht erkennt, und um das zu ändern kann ich noch nicht gut genug C++. der guard bringt das dass er bestimmte hacks und hackprogramme abwehrt(funktioniert auch schon).

    und das mit dem verstecken des prozesses aus dem taskmanager hält standard-nutzer schonmal vom beenden ab, richtig gute hacker abzuhalten ist sowieso fast unmöglich.

    zu find window:
    die einzige mir bekannt möglichkeit das zu benutzen ist um das hwnd rauszufinden:

    HWND taskmanager=FindWindow(0, TEXT("Windows Task-Manager"));
    

    so kriege ich aber weder eine tasklist noch childwindows. wie soll das mit dem befehl

    FindWindow()
    

    denn fnktionieren?

    mfg,
    andi01.



  • sry es war FindWindowEx 🤡

    kannst ja mal sowas versuchen:

    Achtung ungetesteter Kopf-Kompiler-Code ⚠

    void search(HWND hWnd, std::vector<HWND> &vec)
    {
        HWND temp = 0;
        do
        {
            temp = FindWindowEx(hWnd, temp, 0, 0);
            if (temp)
            {
                vec.push_back(temp);
                search(temp, vec);
            }
        }
        while (temp);
    }
    
    std::vector<HWND> windows;
    search(FindWindow(0, "Taskmanager"), windows);
    
    for (unsigned i = 0; i < windows.size(); ++i)
    {
        if (IsAListBoxWindow(windows[i]))
        {
            // eigenen eintrag suchen und entfernen
        }
    }
    

    müsstest du mal testen



  • edit: dabei kam 1 fehler raus:

    test2.cpp(28) : error C3861: "IsAListBoxWindow": Bezeichner wurde nicht gefunden.

    test - 1 Fehler, 6 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    mfg,
    andi01.



  • andi01 schrieb:

    und das mit dem verstecken des prozesses aus dem taskmanager hält standard-nutzer schonmal vom beenden ab, richtig gute hacker abzuhalten ist sowieso fast unmöglich.

    Bisher hat es aus Höflichkeit wohl noch keiner geschrieben: einen solchen "Schutz", den jemand mit deinem Wissensstand entwickelt hat, wird vermutlich von jedem Kind in 5 Sekunden überwunden. Ich persönlich kaufe dir die Geschichte vom zu schützenden Online-Spiel sowieso nicht ab, du willst wahrscheinlich irgendeine Schweinerei basteln. Wie jedes Scriptkiddy halt.



  • nein, das mit dem server stimmt schon. wenn ich so eine "Schweinerei" basteln wollte würde ich den prozess garantiert nicht nur im taskmanager verstecken und in allen anderen programmen sichtbar lassen oder sie laufen lassen ohne das fenster zu verstecken, das programm ist gedacht um hacks zu verhindern und nicht um selber zu hacken, dazu würde es selbst ein einfaches

    ShowWindow(hwnd, SW_HIDE, 0, 0);
    

    schon tun. Es sieht sowieso keiner regelmaßig im taskmanager die komplette prozessliste durch. hingegen bei einem guard tut es das nicht weil jeder user weiß dass er da ist und versucht ihn zu beenden, da muss ich mir schon etwas mehr mühe geben. wenn der prozess im taskmanager ausgeblendet ist hält das einige schonmal ab den prozess zu beenden weil die entweder nicht programmieren können oder tool wie procesExplorer gar nicht kennen.

    mfg,
    andi01.



  • andi01 schrieb:

    der guard läuft momentan auf der client-seite, (...)
    der guard bringt das dass er bestimmte hacks und hackprogramme abwehrt(funktioniert auch schon).

    Wie gelangt der Guard zum Clienten?



  • über die exe-datei des spiels. der ist da einfach mit reingepackt, wie jeder anstängige guard. wenn er jetzt im taskmanager noch unschtbar ist sollte das wenigstens einige spieler vom hacken abhalten, die geübten abzuhalten ist eh fast unmöglich.

    und nein, nur weil ich den prozess verstecken will soll das nicht gleich ein Virus werden, auf der welt gibts nicht nur potenzielle hacker 🙂 . man kann sowas durchaus auch positiv nutzen, jeder anständige gameguard ist nicht im taskmanager zu finden, das ist total normal.

    wenn ich einen virus schreiben würde wäre es wie gesagt völlig ausreichend mit dem oben genannten code das fenster zu verstecken da es extrem unwahrscheinlich ist dass der user genau in den paar minuetn/sekunden wo der virus aktiv ist die komplette tasklist durchschaut!

    @helferlein: der ansatz ist gut und sieht sehr erfolgsversprechend aus, nur leider kriege ich diesen einen fehler nicht weg... weiß vielleicht einer woran das liegt und wie man den behebt?

    mfg,
    amdi01.



  • also

    das der guard nicht toll wird... hab ich mir auch schon überlegt 😃

    @andi01:

    ich sehe mir sehr wohl ab und zu mal die prozessliste durch, grade wenn der
    pc mal wieder ruckelt, fliegt alles raus, was nicht LEBENSNOTWENIG für das system
    ist.

    IsAListBoxWindow gibt es nicht. ich habe oben schon geschrieben, dass ich kein
    plan habe, wie man erkennt ob das fenster eine listbox ist. man hätte das jetzt
    erkennen können, aber who cares...

    so ein kurzer googler und ich hab die nette funktion [url="http://msdn.microsoft.com/en-us/library/ms633578(VS.85).aspx"]GetClassInfo[/url]
    gefunden, die dafür sehr hilfreich sein sollte.

    so wieder zum problem (ein scriptkiddie wird es sehr wahrscheinlich nicht raffen,
    deswegen hab ich da keine bedenken dass da unfug mit gemacht wird).

    du kannst:

    dein programm als Loader verwenden, indem du den anderen prozess von dir aus
    startest. man kann das so hinbiegen, dass wenn der loader beendet wird, auch
    alle childprozesse beendet werden.

    oder:

    sobald dein programm gestartet wurde, was ich mal voraussetze, das der benutzer
    das gemacht hat, kannst du dich in einen windows-prozess einnisten und von
    da dein game überwachen. eine von mir gehasse sicherheitssoftware in der
    schule hat genau das gemacht um unsere bildschirme zu überwachen. kann man
    auch killen, was aber sehr schwer (das teil heißt iTalc, source findest du im
    netz).



  • ich sehe mir sehr wohl ab und zu mal die prozessliste durch, grade wenn der
    pc mal wieder ruckelt, fliegt alles raus, was nicht LEBENSNOTWENIG für das system
    ist.

    nicht bei allen viren muss das system ruckeln, es gibt auch trojaner etc., aber is ja auch egal, immerhin will ich ja eh keine schreiben 😃

    IsAListBoxWindow gibt es nicht. ich habe oben schon geschrieben, dass ich kein
    plan habe, wie man erkennt ob das fenster eine listbox ist. man hätte das jetzt
    erkennen können, aber who cares...

    upps, das habe ich dann wohl übersehen.

    so ein kurzer googler und ich hab die nette funktion [url="http://msdn.microsoft.com/en-us/library/ms633578(VS.85).aspx"]GetClassInfo[/url]
    gefunden, die dafür sehr hilfreich sein sollte.

    damit werde ich mich morgen mal genauer beschäftigen, danke. edit: irgendwie kann ich den kink nicht öffnen, die seite wird nie gefunden.

    du kannst:

    dein programm als Loader verwenden, indem du den anderen prozess von dir aus
    startest. man kann das so hinbiegen, dass wenn der loader beendet wird, auch
    alle childprozesse beendet werden.

    wie soll ich das machen? ich kann den guard ja nicht als extra-exedatei schreiben da ihn sonst jeder löschen würde?!

    sobald dein programm gestartet wurde, was ich mal voraussetze, das der benutzer
    das gemacht hat, kannst du dich in einen windows-prozess einnisten und von
    da dein game überwachen. eine von mir gehasse sicherheitssoftware in der
    schule hat genau das gemacht um unsere bildschirme zu überwachen. kann man
    auch killen, was aber sehr schwer (das teil heißt iTalc, source findest du im
    netz).

    diese methode wäre natürlich optimal und würde alle probleme auf einmal lösen 👍, allerdings habe ich absolut null ahnung wie ich das hinkriegen könnte.

    danke schonmal für die vorschläge,
    ich werde mir die morgen genauer anschaun.

    mfg,
    andi01.



  • es muss kein virus sein, aber einfach wenn ich merke dass da was spackt
    guck ich die prozessliste an.

    du musst das game in dein guard einbauen, damit jeder denkt, der guard is das
    game. verschlüsselte ressource oder sowas.

    -.- das gibts doch nicht. ok die formatierung des links ist in die hose
    gegangen, aber dahinter steht doch ganz klar "GetClassInfo". google?

    für die letze idee geb ich dir mal 2 hinweise:

    winlogon.exe
    CreateRemoteThread

    wehe ich hab irgentwann mal dein programm auf dem rechner, wenn es das
    auch macht 😃

    edit:

    wuuuuuuuuuuuhu 100!



  • andi01 schrieb:

    wie soll ich das machen? ich kann den guard ja nicht als extra-exedatei schreiben da ihn sonst jeder löschen würde?!

    Äh. Wenn das Spiel nicht von dir ist, dann gibt es das auch irgendwo ohne deinen Guard. Wieso sollte ein User dann nicht einfach eine andere .exe verwenden?

    Das ganze fängt immer mehr an verdächtig zu riechen.



  • welchen grund hast du den das fremde spiel zu protecten?



  • Deutet eh alles darauf hin, daß nicht der User, sondern "game.exe" die "guard.exe" ständig schließt. 🙂



  • Äh. Wenn das Spiel nicht von dir ist, dann gibt es das auch irgendwo ohne deinen Guard. Wieso sollte ein User dann nicht einfach eine andere .exe verwenden?

    ganz einfach: weil die exe modifiziert werden muss damit sie sich aif diesen server connectet und nich auf nen anderen, und da achtet das server-team schon drauf dass es diese modifizierte exe nicht zum download gibt.

    Deutet eh alles darauf hin, daß nicht der User, sondern "game.exe" die "guard.exe" ständig schließt. 🙂

    wieso sollte sie das tun? normal weiß die game.exe nicht mal dass es eine guard.exe überhaupt gibt!

    welchen grund hast du den das fremde spiel zu protecten?

    so ganz fremd ist das spiel ja nicht, immerhin gehöre ich zum team das den server aufbaut und wartet. und der grund ist ganz einfach: wenn jeder dasgame hacken würde hätte ers in 1 tag durch und keiner würde mehr auf dem server spielen, genau der gund aus dem die meisten spiele in irgendeiner form vor hacks geschützt sind 🙂

    mit dem vorschlägen werde ich mich gegen abend heute mal genauer beschäftigen. jedenfalls schonmal danke dafür.

    mfg,
    andi01.



  • andi01 schrieb:

    so ganz fremd ist das spiel ja nicht, immerhin gehöre ich zum team das den server aufbaut und wartet.

    Welches Spiel ist das denn?



  • Welches Spiel ist das denn?

    ist das nicht völlig unwichtig?! davon löst sich das problem auch nicht! immer dieses misstrauen hier 😡

    aber ich seh schon ihr lasst mir mit diesem andauernden misstrauen eh keine ruhe. ich meine das onlinespiel flyff, seit einiger zeit ist ein server dieses spiels übrigend offiziell erlaubt.



  • wieviel % der spieler sind in der lage ein game-guard auszuhebeln ?!

    unwichtig sind deine beweggründe hier übrignes nicht 😉

    und warum knackt der user nicht einfach die original-exe? das stelle ich
    mir sehr viel leichter vor als einen guard.



  • andi01 schrieb:

    Welches Spiel ist das denn?

    ist das nicht völlig unwichtig?! davon löst sich das problem auch nicht! immer dieses misstrauen hier 😡

    Reines Interesse?



  • andi01 schrieb:

    ist das nicht völlig unwichtig?! davon löst sich das problem auch nicht! immer dieses misstrauen hier 😡

    geh halt woanders hin wenns dir nicht passt!

    ich persönlich hasse es wenn jmd. wie du hier mit fragen ankommt, aber nicht sagen will wozu er es braucht.


Anmelden zum Antworten