Delphi-PRAXiS
Seite 6 von 11   « Erste     456 78     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Process_Terminate funktioniert nicht (https://www.delphipraxis.net/155954-process_terminate-funktioniert-nicht.html)

Assarbad 15. Nov 2010 23:35

AW: Process_Terminate funktioniert nicht
 
Nö, habe mir das meiste zusammenkopiert, auch wenn die Fehler im kopierten Code teils haarsträubend waren und ich deswegen ein paar Korrekturen vornehmen mußte. Aber insgesamt vielleicht 30min mit mehreren Testläufen in einer VM.

Hatte echt keinen Bock den Code von Null an neu zu schreiben :zwinker:

Code:
GMER 1.0.15.15530 - http://www.gmer.net
Rootkit scan 2010-11-15 23:30:37
Windows 5.1.2600 Service Pack 3 
Running: dqhzz1me.exe; Driver: C:\DOCUME~1\User\LOCALS~1\Temp\agtdqpob.sys


---- System - GMER 1.0.15 ----

SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwClose [0xB20ED80E]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwCreateKey [0xB20ED604]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwDeleteKey [0xB20ED4AC]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwDeleteValueKey [0xB20ED4F2]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwEnumerateKey [0xB20ED3F2]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwEnumerateValueKey [0xB20ED34E]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwFlushKey [0xB20ED446]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwLoadKey [0xB20ED972]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwOpenKey [0xB20ED7D0]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwQueryKey [0xB20ED03E]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwQueryValueKey [0xB20ED166]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwSetValueKey [0xB20ED28A]
SSDT   \??\C:\WINDOWS\system32\Drivers\PROCMON20.SYS                     ZwUnloadKey [0xB20EDAC2]

---- Kernel code sections - GMER 1.0.15 ----

.text  ntkrnlpa.exe!KeUnstackDetachProcess + 186                          804F77F2 4 Bytes CALL B1D3C371 \??\C:\WINDOWS\system32\drivers\EagleNT.sys
PAGE   ntkrnlpa.exe!NtDeviceIoControlFile + 26                            8056E4E8 4 Bytes CALL B1D3C751 \??\C:\WINDOWS\system32\drivers\EagleNT.sys
PAGE   ntkrnlpa.exe!ZwWriteFileGather + 33D2                              80575CAA 4 Bytes CALL B1D3C951 \??\C:\WINDOWS\system32\drivers\EagleNT.sys
PAGE   ntkrnlpa.exe!ZwReadVirtualMemory + 8                               805A979C 4 Bytes CALL B1D3CC01 \??\C:\WINDOWS\system32\drivers\EagleNT.sys
PAGE   ntkrnlpa.exe!ZwWriteVirtualMemory + 8                              805A98A6 4 Bytes CALL B1D3CD51 \??\C:\WINDOWS\system32\drivers\EagleNT.sys
PAGE   ntkrnlpa.exe!NtClose + 19                                          805B1CE1 4 Bytes CALL B1D3C891 \??\C:\WINDOWS\system32\drivers\EagleNT.sys
PAGE   ntkrnlpa.exe!NtOpenProcess + B                                    805C132F 4 Bytes CALL B1D3C9A1 \??\C:\WINDOWS\system32\drivers\EagleNT.sys
PAGE   ntkrnlpa.exe!ZwSetLdtEntries + ECA                                805CAAC4 4 Bytes CALL B1D3CEA1 \??\C:\WINDOWS\system32\drivers\EagleNT.sys
?       C:\WINDOWS\system32\Drivers\PROCMON20.SYS                         The system cannot find the file specified. !
?       C:\WINDOWS\system32\Drivers\PROCEXP141.SYS                        The system cannot find the file specified. !
?       C:\WINDOWS\system32\drivers\EagleNT.sys                           The system cannot find the file specified. !

---- User code sections - GMER 1.0.15 ----

.text  C:\WINDOWS\system32\SearchIndexer.exe[544] kernel32.dll!WriteFile 7C810E27 7 Bytes JMP 00585C0C C:\WINDOWS\system32\MSSRCH.DLL (mssrch.dll/Microsoft Corporation)

---- Devices - GMER 1.0.15 ----

Device \Driver\Kbdclass \Device\KeyboardClass0                            EagleNT.sys
Device \Driver\Kbdclass \Device\KeyboardClass1                            EagleNT.sys
Device \Driver\Mouclass \Device\PointerClass0                             EagleNT.sys
Device \Driver\Mouclass \Device\PointerClass1                             EagleNT.sys

---- EOF - GMER 1.0.15 ----
Wie man sieht benutzt das Ding Hooks direkt im Kernelimage (all mit PAGE beginnenden Zeilen) sowie irgendwas auf den Maus- und den Tastaturgeräten. Damit läßt es sich als Rootkit einordnen.

Code:
PAGE   ntkrnlpa.exe!NtOpenProcess + B  805C132F 4 Bytes
... ist das eigentliche Problem

Zitat:

Zitat von Luckie (Beitrag 1061801)
Er hat auch alles durch Selbststudium gelernt. Studiert hat er irgend so ein Ökozeugs. ;)

... und er hat abgebrochen als er von einem Anti-Spyware-Hersteller angeheuert wurde und ist danach zu einem AV-Hersteller gewechselt.

speedy 15. Nov 2010 23:38

AW: Process_Terminate funktioniert nicht
 
Bei mir ist das Studium zwar was Technisches, aber Programmierung haben wir lediglich mal C hauptsächlich für Mikrocontroller.

Und Delphi Literatur ist auch sehr dürftig in der Uni Bibliothek ;)

Luckie 15. Nov 2010 23:39

AW: Process_Terminate funktioniert nicht
 
Ich hoffe, in meinem Code waren keine haarsträubenden Fehler. Ansonsten hätte mein Lehrmeister versagt. ;)

Assarbad 15. Nov 2010 23:43

AW: Process_Terminate funktioniert nicht
 
Zitat:

Zitat von speedy (Beitrag 1061803)
Bei mir ist das Studium zwar was Technisches, aber Programmierung haben wir lediglich mal C hauptsächlich für Mikrocontroller.

Und Delphi Literatur ist auch sehr dürftig in der Uni Bibliothek ;)

Alles nicht so tolle Ausreden. Delphi-Literatur war meines Erachtens nach zu keinem Zeitpunkt (seit 1997) gut. Aber sich mit Win32 auseinanderzusetzen bedarf es nicht Delphis :zwinker:

Abgesehen davon ist die beste Methode - ohne Spott und Hohn gemeint - die Dokumentation und anderen Code zu lesen. Ich sage nicht, daß man nicht fragen soll. Aber vorher sollte man schon mal nen Tag oder länger investieren um es selber zu lösen.

Programmieren habe ich komplett autodidaktisch erlernt, unmöglich ist es also nicht.

Zitat:

Zitat von Luckie (Beitrag 1061804)
Ich hoffe, in meinem Code waren keine haarsträubenden Fehler. Ansonsten hätte mein Lehrmeister versagt. ;)

Nico? :stupid:

Puh, war da welcher von dir dabei? Habe den aus dem verlinkten Beitrag genommen und durchredigiert und dann noch von hier. Bei letzterem war vor allem wichtig zuerst das Threadtoken zu versuchen und danach das Prozeßtoken (was im Original nicht drin war).

himitsu 15. Nov 2010 23:44

AW: Process_Terminate funktioniert nicht
 
Wenn nun schon alles Wichtige installiert und eingerichtet ist, dann über einen anderen Admin-Account (notfalls einen erstellen) den Account des Jungen runterstufen und so das installieren von Programmen verbieten.

PS: Wenn er soooo süchtig ist ... wie lange wird es dann wohl dauern, bis er den neuen Prozess findet und abschießt, welcher ihn ständig am Spielen hindert?

Es gibt auch andere Möglichkeiten die Nutzung wärend der Nacht zu verbieten.
Gibt ja genügend Programme, welche den PC mit einer Zeitschaltuhr versehen.



Und egal was man macht, man muß ihm doch wohl auf jeden Fall die Rechte entziehen, welche es ihm erlauben würden Gegenmaßnahmen zu ergreifen.

Notfalls einfach in der Nacht die Internetleitung oder den Strom kappen.
Ohne Netz kein Onlinegame. :lol:

Assarbad 15. Nov 2010 23:46

AW: Process_Terminate funktioniert nicht
 
Ha, himitsu du bist ein Schatz!

Ich hätte da noch eine Methode anzubieten. Man könnte, da es sich ja um Windows XP handelt die GINA ersetzen. Irgendwann in der Nacht sperrt das Ding dann den Desktop zeitgesteuert und läßt sich bis zum Morgen nicht entsperren ;)

Das Schlimmste was dann passieren kann, ist daß der Charakter im Spiel stirbt :lol:

Luckie 15. Nov 2010 23:47

AW: Process_Terminate funktioniert nicht
 
Das ursprüngliche KillProzess ist von mir (Verlinkt im erste Beitrag.).

Äh, sorry, es waren zwei Lehrmeister. :stupid:

Luckie 15. Nov 2010 23:51

AW: Process_Terminate funktioniert nicht
 
Ich glaube, das hatte ich schon auf der ersten >Seite vorgeschlagen, Man kann über die Sicherheitsrichtlinien festlegen zu welchen Uhrzeit und wie lange ein Benutzer sich anmelden kann. Natürlich macht das kein Sinn bei einem Adminstratorenkonto.

Assarbad 15. Nov 2010 23:53

AW: Process_Terminate funktioniert nicht
 
Zitat:

Zitat von Luckie (Beitrag 1061808)
Das ursprüngliche KillProzess ist von mir (Verlinkt im erste Beitrag.).

Oh Gott. Wie soll ich's ausdrücken? :zwinker:

Zumindest der zitierte Ausschnitt war Mist, da bspw. das Handle vom Schnappschuß nicht geschlossen wurde und dafür in der anderen Funktion das Handle auftauchte ohne deklariert oder gebraucht zu werden. K.A. wie das so durcheinanderkam. Habe jedenfalls den Code von dort genommen und dann korrigiert. War natürlich auch nicht soooo viel. Aber funktionstüchtig war er nicht out-of-the-box ;)

Zitat:

Zitat von Luckie (Beitrag 1061808)
Äh, sorry, es waren zwei Lehrmeister. :stupid:

Hmm, na dann weiß ich auch nicht :stupid:

Luckie 15. Nov 2010 23:56

AW: Process_Terminate funktioniert nicht
 
Gilt die Ausrede Jugendsünde? ;) Ich glaube, ich schreibe den Code noch mal neu. Das kann ich nicht auf mir sitzen lassen. Das verbietet mir die Ähre.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr.
Seite 6 von 11   « Erste     456 78     Letzte »    

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