![]() |
Process_Terminate funktioniert nicht
Hi,
ich benutze den Code aus diesem Beitrag ![]() Auf dem Rechner (WinXP Pro), auf dem das Programm dann eingesetzt werden soll funktioniert das nur nicht. Die ProcessID für den Prozess kann ohne Probleme ausgelesen werden, nur beim anschließenden Process_Terminate tut sich überhaupt nichts. Das Programm, sowie der abzuschießende Prozess laufen beide als Admin (also kein Systemprozess). Beenden über den Taskmanager funktioniert. Hab das Programm mit dem gleichen Spiel auf meinem Rechner (Win7 Pro x64 - Admin-Rechte) ausprobiert, dort funktioniert das einwandfrei. Auch auf einem anderen XP Rechner funktioniert es. Hat irgendjemand eine Idee warum der Code (und vor allem warum auf genau diesem bestimmten Rechner) nicht läuft? Danke! Schöne Grüße speedy |
AW: Process_Terminate funktioniert nicht
Zitat:
Diverse Programme setzen auch Hooks, was hier u.U. auch ein Problem sein könnte. Die Namen der Prozesse könnten also helfen ;) |
AW: Process_Terminate funktioniert nicht
Probier mal folgenden Code aus und sag mir, obs damit auch nicht klappt. Ist nur auf die Schnelle dahingetippt - darfste gerne Kleinigkeiten (Denkfehler) ausbessern...
Delphi-Quellcode:
MfG
procedure KillProcess2(const dwProcID, dwTimeOut: DWORD);
var hProcess, Size, WrittenBytes, TID, hThread, ExitCode: DWord; Memory: Pointer; procedure _injectedCode_ExitProcess(P: Pointer); stdcall; type TExitProcess = procedure(uExitCode: UINT); stdcall; begin TExitProcess(P)(0); end; procedure _injectedCode_End(); asm ret end; begin hProcess := OpenProcess( GENERIC_WRITE, False, dwProcID ); if hProcess <> ERROR then try Size := DWord( @_injectedCode_End ) - DWord( @_injectedCode_ExitProcess ); Memory := VirtualAllocEx( hProcess, NIL, Size, MEM_COMMIT, PAGE_EXECUTE_READWRITE ); if Assigned( Memory ) then try WriteProcessMemory( hProcess, Memory, @_injectedCode_ExitProcess, Size, WrittenBytes ); if WrittenBytes = Size then begin hThread := CreateRemoteThread( hProcess, NIL, 0, Memory, GetProcAddress( GetModuleHandle( 'kernel32.dll' ), 'ExitProcess' ), 0, TID ); if hThread <> ERROR then WaitForSingleObject( hThread, dwTimeOut ); end; finally VirtualFreeEx( hProcess, Memory, Size, MEM_DECOMMIT ); end; finally CloseHandle( hProcess ); end; end; |
AW: Process_Terminate funktioniert nicht
Kenn mich jetzt mit dem Process Explorer nicht so wirklich aus.
Das Spiel das abgeschossen werden soll ist Metin2 (kostenloses MMORPG, so ähnlich wie World of Warcraft) mit den Prozessen "metin2.bin" und "metin2client.bin". Das Spiel benutzt einen Schutz der sich "Hackshield" nennt. Beim Untersuchen mittels Process Explorer (auf dem Win7 Rechner) hat sich das Spiel nach kurzer Zeit mit der Meldung "DETECT_GAME_HACK Undefined hacks (0x20000006)" geschlossen. An den entsprechenden XP Rechner komm ich gerade nicht ran. Zum Hintergrund: Das Ziel ist ein Programm, dass den Betrieb dieses Spiels verhindert bzw. das Spiel in regelmäßigen Abständen per Timer beendet. Das Programm ist für eine Freundin deren Sohn (12) massiv süchtig nach dem Spiel ist und sie keine Kontrolle mehr hat. Das geht soweit, dass der teilweise locker 12 Std. am Tag zockt, nichts mehr für die Schule tut und sich sogar mitten in der Nacht nen Wecker stellt um noch ein paar Stunden spielen zu können (wenn die Eltern im Bett sind). PC wegnehmen geht auch nicht, weil er den auch für die Schule braucht. Spiel löschen hilft auch nichts, dann wirds halt neu installiert... Ne andere Möglichkeit als das Spiel regelmäßig abzuschießen sehen wir da leider nicht mehr. Nach was genau soll ich denn schauen im Process Explorer? Glaube aber nicht, dass das Spiel irgendwelche Hooks setzt, da es auf jedem Rechner wo ich das Tool ausprobiert hab funktioniert. Nur auf dem einen XP Rechner eben nicht. |
AW: Process_Terminate funktioniert nicht
Zitat:
Versuch mal den Code von Aphton. Aber sei gewarnt, ab Vista (mit ASLR) wird das nicht mehr funzen. |
AW: Process_Terminate funktioniert nicht
Also unter Win7 tut sich mit dem Code überhaupt nichts. Prozess wird nicht beendet und Fehlermeldung oder sonstige Meldungen kommen auch keine.
Werd das dann mal in XP probieren und berichten. Danke erstmal! |
AW: Process_Terminate funktioniert nicht
Moin Speedy,
zum einen: Vielleicht wäre es da auch mal angebracht über einen Artzbesuch nachzudenken. zum anderen: Wenn ich mich recht entsinne konnte man Windows mal mit einer Art Whitelist bzw. Blacklist vorgeben, welche Programme gestartet werden dürfen, und welche nicht. Das Ganze lief über Registryeintragungen. Wo genau weiss ich im Moment leider nicht mehr, aber vielleicht hilft's bei der Problemlösung. |
AW: Process_Terminate funktioniert nicht
Warum hat er Administratorrechte?
|
AW: Process_Terminate funktioniert nicht
|
AW: Process_Terminate funktioniert nicht
@Luckie: Windows default... Naja als der Rechner installiert wurde hat er noch nicht in dem Ausmaß gezockt und im normalen Benutzer Account läuft nicht alles
Hab mal noch schnell XP auf nen alten Rechner und den Code von Aphton ausprobiert. Es passiert nichts. Auch das normale Process_Terminate funktioniert nicht. Abschießen über ein Programm funktioniert auch nicht, wenn das Programm als System-Account gestartet wird. Komisch (für mich) allerdings, dass der normale Taskmanager das ohne Probleme beendet. Scheinbar wurde Hackshield aktualisiert, da es vor kurzem unter einem anderen XP noch ging. Im Process Explorer hab ich so jetzt nichts auffälliges feststellen können. Falls es noch was hilft - Bei "Threads" gibt es folgende Einträge: !Create Thread+0x38 !Create Thread+0x27 (ziemlich oft) !InternetSetStatusCallbackA+0x1ca ntdll.dll!RtlQueueWorkItem+0x2b5 ntdll.dll!RtlAllocateHeap+0x18c Was ich sonst noch auf die Schnelle zu Hackshield finden konnte (aus dem Forum von cheatengine.org - Beitrag von 2006): "-hackshield loads a driver to hide and protected himself. -Hackshield detects many gamehacking tools e.g.: (SoftICE,OllyDBG,CheatEngine,ArtMoney,WPE (PRO) , ...) -Cant inject dlls when hackshield is loaded(Solution: CreateProcess Suspended -> inject dll(s) -> and resume it) -CheatEngine is the only tool who can see the game process, that hackshield trys to hide, but cant open it -Hook LoadLibraryA/W and abort if hackshield trys to load dlls dont work. " Der Treiber (c:\windows\system32\drivers\eaglent.sys - Unsichtbar, wird aber scheinbar nur unter XP geladen) erinnert dabei an ein Rootkit. |
AW: Process_Terminate funktioniert nicht
Um Christians Ansatz einmal aufzugreifen: vielleicht hilft
![]() |
AW: Process_Terminate funktioniert nicht
Ja, das wäre wohl eine Möglichkeit, nur hab ich dann wahrscheinlich das Problem, dass ich wegen jeder Kleinigkeit die es zu installieren oder einzustellen gibt dort hinfahren muss.
|
AW: Process_Terminate funktioniert nicht
Das ist natürlich ein Argument.
|
AW: Process_Terminate funktioniert nicht
Zitat:
Der erste Schritt ist Adminrechte entziehen. Dann kann man weitersehen. Auch den Prozeß zu killen (s.o.) macht eigentlich nur Sinn wenn das aus dem Weg ist. ![]() |
AW: Process_Terminate funktioniert nicht
Die sicherste und wahrscheinlich einfachste Variante ist es ihm den Internetzugang nur zu bestimmten Uhrzeiten zu gewähren.
Soweit ich weiß geht das bei den neueren Fritzboxen über das Webinterface. Dann bräuchte man sich auch nicht mit sichtiefinssystemeinwurzelndenzwangsrootkits rumzuschlagen. |
AW: Process_Terminate funktioniert nicht
Zitat:
Aber wie schon oben erwähnt, kommt dann vielleicht noch Aggressivität hinzu. Einen Therapeuten zu konsultieren macht also wohl eher Sinn. Zitat:
|
AW: Process_Terminate funktioniert nicht
Zitat:
|
AW: Process_Terminate funktioniert nicht
Zitat:
|
AW: Process_Terminate funktioniert nicht
Bringt leider auch nichts, da keine Fritzbox vorhanden ist. Der eingesetzte Router bietet ein solche Funktion leider nicht.
Hab aber nen anderen Ansatz: Das Spiel verweigert den Start wenn Hackshield nicht geladen werden kann. Im Verzeichnis des Spiels sind mehrere Dateien von Hackshield die beim Start überprüft, ggf. aktualisiert und ersetzt werden, wenn daran etwas verändert wurde. Rein theoretisch sollte sich der Start des Spiels verhindern lassen, wenn eine der benötigten Dateien vor dem Start über TFileStream exklusiv geöffnet wird und daher für einen Zugriff durch Hackshield nicht mehr zur Verfügung steht. Das Ganze als Service-Anwendung in Windows verstecken und das Problem müsste eigentlich gelöst sein? Dann müsste ich nur rausfinden, wie man einen Dienst erstellt... |
AW: Process_Terminate funktioniert nicht
Zitat:
![]() |
AW: Process_Terminate funktioniert nicht
Was hindert ihn eigentlich daran deinen Prozess abzuschießen? Ich bin ganz Christians Meinung. Das Problem ist nicht mit einem Programm zu lösen. Allerdings bin kein Experte und habe keine Ahnung, ie man das Problem langfristig lösen könnte.
|
AW: Process_Terminate funktioniert nicht
Daran hindert ihn im Grunde nichts, nur weiß er nichts von dem Prozess. Es funktioniert dann halt plötzlich nicht mehr ;)
|
AW: Process_Terminate funktioniert nicht
Was glaubst du wie lange er nichts von dem Prozess weiß?
|
AW: Process_Terminate funktioniert nicht
Hab das mal eben mit der Zugriffssperre von Hackshield probiert. Funktioniert einwandfrei.
Beim Start kommt lediglich "START_SERVICE_ERROR (...)". Soweit schon mal ein erster Erfolg. Dann nur noch in nen Dienst verpacken... @Luckie: Solange ihm keiner nen Tipp gibt weiß er das auch nach Jahren nicht ;) Der Otto-Normaluser (vor allem mit 12) hat im Regelfall keine Ahnung was Dienste, Prozesse, usw. sind und vor allem welcher Prozess verantwortlich ist, wenn ein Spiel plötzlich nicht mehr funktioniert. Die Fehlermeldung die beim Spielstart kommt, kommt wohl bei einigen Benutzern, ohne dass es eine wirkliche Lösung dafür gibt. Das einzige was als Tipp gegeben wird ist Spiel neu installieren... |
AW: Process_Terminate funktioniert nicht
Und warum? Als Administrator kann man auch Dienste stoppen und beenden. Und wenn er so süchtig ist, wie du schreibst, dann wird er auch bald den Dienst finden.
|
AW: Process_Terminate funktioniert nicht
Ich glaub bis das passieren wird, sollte das so reichen. Das Programm mit Process_Terminate lief ne ganze Weile erfolgreich als Hintergrundanwendung (steuerbar über ne einfach INI-Datei). Wurde hingenommen als "funktioniert halt mal wieder nicht". Zur Suchtbefriedigung wurde dann halt auf den Rechner des großen Bruders (mittlerweile per Passwort geschützt) ausgewichen, wenn der nicht zu Hause war... Dann wurde vor nicht allzu langer Zeit Hackshield eingeführt und das wars dann mit der "Schutz-Software" ;)
|
AW: Process_Terminate funktioniert nicht
1. Wenn du bei deiner Lösung bleiben willst, würde ich dir anraten, diesen Thread hier von Mod. löschen zu lassen ;)
Ich bin mir sicher, der Junge ist klug genug, danach zu googlen... 2. Als eine andere Lösung würde ich noch vorschlagen, einfach den "Benutzerweg" zu simulieren. Dh. Wie wird das Spiel eig. beendet? Übrigens, hast du schon so einfache Sachen wie Messages an das betreffende Fenster zu schicken & Co probiert? 3. Das alles ist nicht so das Wahre. Die Sucht wird nicht verschwinden, weil dem Süchtigen abrupt die Quelle der Sucht weggenommen wird. Klar, für eine Weile wird er sich rumplagen und evt. an einem Nervenzusammenbruch leiden (keine Übertreibung; mit Süchten ist nicht zu scherzen). Am besten - nein, es gibt hier keine andere Möglichkeiten - such(s)t du / ihr einen Therapeuten auf. Ich mein, der Junge ist ja noch nicht einmal direkt in der Pubertät. Das wird ihn für sein Leben prägen! MfG |
AW: Process_Terminate funktioniert nicht
1. Ja, die Idee ist mir mittlerweile auch schon gekommen ;) Aber noch 1 - 2 Tage abwarten ob nicht doch noch jemand ne Idee hat um den Prozess zu beenden. Bin an so nem Punkt wo's jetzt auch irgendwie um's Prinzip geht ;)
2. Benutzerweg ist Beenden über das Menü im Spiel. Fällt aber hier weg, da keine Messages an das Spiel gesendet werden können, weil Hackshield dies verhindert. Könnte ja auch ein Bot sein, der Tastencodes an das Programm schickt. 3. Nee denke so schlimm ist es jetzt auch nicht, dass er gleich nen Nervenzusammenbruch kriegt. Mutter hat ihm ja bis vor wenigen Wochen wegen dem ständigen Dauerzocken den PC für über einen Monat weg genommen, das hat er auch ganz gut überstanden, die Schulnoten wurden kurzfristig etwas besser und er kam mal aus dem Haus raus, aber er braucht die Kiste jetzt wieder für die Schule, daher etwas schlecht. Als er den PC wieder hatte, gings sofort wieder mit dem Zocken los ("Neeeein - ich bin nicht süchtig"). Seit dem sind die Noten auch wieder auf das alte Niveau zurück gefallen. Mal schauen wie er die ersten Tage übersteht, dann kann man immer noch über nen Therapeuten nachdenken ;) |
AW: Process_Terminate funktioniert nicht
Zu 3.: Deinstalliere das Spiel und degradiere in zu einem Einfachen Benutzer. Alternativ kann man mit Bordmitteln die Zeiten festlegen, wann der Benutzer an den Computer darf.
|
AW: Process_Terminate funktioniert nicht
Ja wird wohl das einfachste sein...
Gut, dann kann der Thread gerne gelöscht werden ;) |
AW: Process_Terminate funktioniert nicht
Zitat:
Und ohne das auf einem Rechner lokal zu probieren können wir nicht wirklich helfen, denn die oben vorgeschlagenen Methoden funktionieren prinzipiell :zwinker: |
AW: Process_Terminate funktioniert nicht
Einfach das Spiel runterladen, sich das schöne Rootkit installieren (auf nem XP Rechner) und ausprobieren wen's interessiert ;)
|
AW: Process_Terminate funktioniert nicht
Interessiert bin ich wie immer an so manches, aber in diesem Fall nicht so sehr, dass ich mir da einen Mega Installer (>1gb) runterladen werde, um es nur mal zu analysieren...
MfG ;) |
AW: Process_Terminate funktioniert nicht
Und vor allem installiere ich mir nicht freiwillig ein Rootkit.
|
AW: Process_Terminate funktioniert nicht
Zitat:
Zitat:
|
AW: Process_Terminate funktioniert nicht
Nicht auf diesem kleinen Netbook. ;)
|
AW: Process_Terminate funktioniert nicht
In ner VM wollte das Ding bei mir mangels 3D Hardware-Unterstützung (obwohl aktiviert - Sun Virtual Box) eh nicht laufen.
|
AW: Process_Terminate funktioniert nicht
Zitat:
|
AW: Process_Terminate funktioniert nicht
Zitat:
Ich probiere gleich nochmal das Abschießen. Code haste ja leider nicht mitgeliefert (noch ein Testprogramm). |
AW: Process_Terminate funktioniert nicht
[QUOTE=Assarbad;1061775]
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz