| |
|
|
- Seite 1 - |
|
| Im letzten Jahr hat mich das Bedürfnis gepackt, mich näher um den Prozessbereich - also um Threads, Prozesse, DLLs und Fenster zu kümmern und etwas mehr darüber zu lernen, als ich bislang wusste. Als Hilfsmittel dazu habe ich mir die Anwendung Tasks and Token (TNT) gebastelt, die mir bislang in dieser Hinsicht recht gute Dienste geleistet hat. Ich möchte euch das Programm hier einmal etwas näher vorstellen und hoffe, dass euch das Testen genausoviel Spaß macht, wie mir das Programmieren und die Arbeit daran:
Tasks and Token wurde unter und für Windows2000/XP entwickelt; ein Betreiben der Anwendung unter anderen Betriebssystemen ist zwar im Prinzip möglich, aber nur wenig sinvoll. Das Proggi wurde mit XProfan9 und Profan2Cpp 1.1 erstellt, mit UPX gepackt und verfügt über ca.10000 Quelltextzeilen. Zum Ändern der Zugriffsrechte benutze ich teilweise eine von mir entsprechend geänderte Version von AHs DACL_SET.INC (einige BUGs und ein Teil der Protokollierung entfernt). Das Programm unterstützt die bis WindowsXP standardmäßig verwendeten Zugriffslisten des Typs ACL_REVISION und Zugriffslisteneinträge des Typs ACCESS_ALLOWED_ACE und ACCESS_DENIED_ACE ... Anwendungen, die andere Zugriffslisten verwenden, konnte ich bislang nicht finden.. Die eigentliche Programmdatei heißt Tasks and Token.EXE; alle Dateien müssen ins selbe Verzeichnis entpackt werden. Um nicht euer Startmenü (oder sonstiges) unnötig vollzumüllen, habe ich auf eine Installationsroutine verzichtet - ich denke, ihr kommt auch so damit zurecht.
Tasks and Token erzeugt eine Art aktualisierbaren Schnappschuss des Betriebssystems, listet dabei Prozesse, Threads, Module und Fenster in ihrem Verhältnis zueinander auf und liefert umfangreiche Informationen über diese Objekte. Um auch Zugriff auf Informationen zu erhalten, die normalerweise für einen Administrator unzugänglich und unsichtbar sind, kann Tasks and Token Zugriffsrechte auf Prozesse, Threads und den Access-Token ändern, oder (ohne selbst eigentlich ein Service zu sein) bei Bedarf über Windows als Systemservice gestartet werden. Dabei ist darauf zu achten, dass TNT als interaktiver Service nur für den User sichtbar ist, der sich als erstes in den Rechner eingeloggt hat.
Hier alles aufzulisten, was das Programm ausliest oder auch ändern kann würde den Rahmen wohl gänzlich sprengen - ich werde mich deshalb auf einige in der Hilfedatei noch undokumentierte Bereiche beschränken:
Module und DLLs: Nebem dem Auslesen der Versionsinformationen untersucht Tasks and Token geladene Module u.a. auch nach enthaltenen Exportfunktionen und deren Adressen. Erhaltene Informationen können mittels Rechtsklick in das jeweilige Listview in die Zwischenablage kopiert werden. TNT bietet auch die Möglichkeit, eine fremde noch nicht geladene DLL zu laden und zu untersuchen. Dabei führt Tasks and Token die Einsprungsfunktion dieser geladenen DLL nicht aus. Das hat den Vorteil, dass auch DLLs von anderen Betriebsystemen (z.B. eine DLL von WindowsXP unter Windows2000) untersucht werden können; aus komprimierten DLLs können deshalb aber evtl. (auf diese Weise) keine Exportfunktionen ausgelesen werden.
Fenster: Neben dem Anzeigen unterschiedlichster Fensterinformationen können mittels Rechtsklick auf ein Fenster im Treeview - nach dem Motto mache sichtbar was unsichtbar ist - Statusinformationen eines Fensters geändert werden. Auch Rechtsklicks in das entsprechende Listview bieten eine Änderungsmöglichkeiten für fremde Fenster.
Prozesse und Threads: Nebenbei lassen sich die unterschiedlichen Threads einer Anwendung durch Rechtsklick ins Treeview anhalten und fortsetzen , können Prioritäten von Threads und Prozessen einzeln geändert oder kann auch der Boost abgeschaltet werden, der u.a. eine Prioritätserhöhnung bei Aktivierung eines Threadsfensters bewirkt.
Access-Token: Ein Grundbaustein neuer Windows Betriebsysteme sind die Zugriffsrechte. Um genau festlegen zu können, welche Anwendung unter Windows genau auf was Zugriff haben darf, wird jedem Prozess vom Betriebssystem eine Art elektronischer Ausweis mit auf den Weg gegeben, der genau Identität und Rechte des ausführenden Users festlegt. Mittels Rechtsklick in das entsprechende Treeview lassen sich hier unter anderem Privilegien in einem laufenden Prozess aktivieren oder auch deaktivieren. Auch Gruppenzugehörigkeiten können, sofern die jeweilige Gruppe dies unterstützt, deaktiviert und aktiviert werden ohne die Gruppe aus dem Token zu entfernen. In diesem elektronischen Ausweis Access-Token gibt es einen Bereich, der Standard-Zugriffsrechte festlegt. Wird durch einen Prozess ein neues Objekt erzeugt und wird diesem Objekt weder durch Vererbung noch sonstwie irgendeine Sicherheitsbeschreibung zugeordnet, wird diese Standard-Zugriffsliste im Acces-Token als Sicherheitsbeschreibung übernommen. Dies wäre zum Bespiel u.a. beim Erzeugen eines neuen Prozesses mittels @Winexec() der Fall. Tasks and Token kann diese Zugriffsliste nicht nur anzeigen sondern diese auch (mittels Treeview-Rechtsklick) bei Bedarf ändern.
Viel Mehr möchte ich über mein Machwerk eigentlich jetzt nicht erzählen. Ich hoffe, es reicht aus um ein wenig Interesse und Lust am Spielen zu wecken....
Beste Grüße
Eduard Zimmermann
|
|
|
| |
|
|
| |
|
- Seite 3 - |
|
|
Carlo Keil | [quote:4f23daf43b]Erst mal selber Bessermachen![/quote:4f23daf43b] Ich darf also Mozart nicht kritisieren, weil ich selber nicht besser komponieren kann? Ich darf also das Essen in der Kantine nicht kritisieren, weil ich selber nicht besser für tausend Leute kochen kann? Ich darf also den Hersteller meines Autos nicht kritisieren, weil ich selber kein besseres bauen kann? ... Ich darf also Kritik nur kritisieren, wenn ich besser kritisieren kann?
Merkwürdige Einstellung
Nicht nur, weil grad die Sonne so schön durchs Fenster scheint Herzliche Grüße Carlo |
|
|
| |
|
|
|
Jörg Sellmeyer | [quote:8f0886ad57]n irgendeiner Form, Art und Weise oder Qualität seines Beitrages diskriminiert werden sollte[/quote:8f0886ad57] Hallo Carlo, Du solltest schon richtig lesen. Gegen Kritik ist ja wahrhaftig nichts einzuwenden. Dietmar geht es ums diskriminieren, was in dem Fall wohl unsachliche Kritik oder sich lustigmachen über den Code eines Autors bedeuted. Obwohl gerade Dietmar mit unsachlicher Kritik auch schon mal übers Ziel hinausgeschossen ist. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 27.09.2006 ▲ |
|
|
|
|
| [quote:b4a552cd67=Carlo Keil][quote:b4a552cd67]Erst mal selber Bessermachen![/quote:b4a552cd67] Ich darf also Mozart nicht kritisieren, weil ich selber nicht besser komponieren kann? Ich darf also das Essen in der Kantine nicht kritisieren, weil ich selber nicht besser für tausend Leute kochen kann? Ich darf also den Hersteller meines Autos nicht kritisieren, weil ich selber kein besseres bauen kann? [/quote:b4a552cd67] Bei einer Kritik ist immer das warum wichtig und steht im Vordergrund. Dietmar hat wohl kaum was gegen Kritik, denn das hilft ja bei der Entwicklung und Verbesserung. Kritik ist eigentlich was sehr schönes - tausendmal mehr Wert, als irgendein Lob. Kritik heißt für mich, das jemand das Ernst nimmt, was ich tue - sich damit auseinandergesetzt und beschäftigt hat. |
|
|
| |
|
|
|
| Neu Version von [...] hochgeladen, die jetzt auch die Current Directory eines Prozesses ausliest. |
|
|
| |
|
|
|
| Einige weitere Prozessinfos hinzugefügt, u.a. die Pfade, in denen der Prozess nach zu ladenden Dateien und DLLs sucht. |
|
|
| |
|
|
|
| Ich bin bislang bei dem Programm etwas unpfleglich mit Windows95/98/ME umgegangen, deshalb hier mal einige Funktionen, die mit dem Proggi unter diesen Windowsversionen möglich sind:
TNT kann die auf dem Systemlaufenden Prozesse listen und Taskanagerfunktion erfüllen. Ich benutze das Ding öfters dazu, um beim Testen von Profanprogrammen hakende Proggis schnell mal abzuabschießen. Außerdem bietet TNT die Möglichkeit, die Prioritäten laufender Prozesse zu ändern.
TNT bietet einen Überblick über die laufenden Threads der gestarteten Proggies.
TNT listet die Fenster einer Anwendung auf. Dabei schlüsselt TNT die Stile der Fenster auf und zeigt diese (sofern die dem Programm bekannt sind) an.
Das Scannen und Ändern von Virtuellem Prozessspeicher fremder Prozesse ist hier sogar bis 3GB möglich. |
|
|
| |
|
|
|
| Hab ich eigentlich schon irgendwo erwähnt, das es ab Windows2000 möglich ist, mit TNT Controls in fertigen Anwendungen quasi per Drag and Drop zu verschieben und in ihrerer Größe zu ändern? (Will mal hoffen, das das auch unter XP geht). |
|
|
| |
|
|
|
| Da ich die PSAPI.DLL nicht mittels UseDll fest geladen hatte, konnte es beim zusätzlichen Laden der DLL in TNT zum Programmabsturz kommen. Fehler ist beseitigt => Update hochgeladen. |
|
|
| |
|
|
|
| Grad einen BUG beseitigt.
Beim Auslesen von Prozessspeicher konnte es zum Absturz von [...] kommen, wenn versucht wurde mehr als 100MB am Stück auszulesen. Die maximal am Stück auslesebaren Bytes wurden auf 90000000 begrenzt.
PS: Speicher kann man mit [...] natürlich auch unter Windows98/ME scannen. |
|
|
| |
|
|
|
| Ich ziehe hiermit mein Programm Tasks and Token vom Wettbewerb zurück.
Gru0
E.Z. |
|
|
| |
|
|
|
Nico Madysa | Nanü? Wieso das? Hast du Angst, dass die Zweit- und Drittplatzierten neidisch auf dein tolles Programm werden und dir irgendwie gefährlich werden.? Meines Wissens nach hat der Wettbewerb keine Nachteile, wegen denen man sich zurück ziehen könnte, oder will irgendjemand nicht nur die Modelleisenbahnsteuerung sondern jetzt auch TNT klauen?
EDIT: 3 Rückzüge in 3 Tagen - da spar ich mir meinen Kommentar. Du bist zwar niemandem eine Antwort schuldig, aber gibt es einen Grund für diese Rückzieher? |
|
|
| |
|
|
|
| Hallo Nico, wer nachfragt erhält auch Antwort...
Für dieses Programm speziell gilt: Das Programm habe ich aus Unwissenheit nicht unter meinem Namen gepostet, das verstößt eindeutig gegen die Wettbewerbsregeln.
Für dieses Programm und die anderen zwei Programme gilt: Für alle drei Programme hatte ich einen speziellen Grund, warum ich sie hier im Wettbewerb gepostet habe. Dieser Grund hat nichts mit dem Wettbewerb an sich oder mit irgendwelchen erhofften Gewinnen zu tun - eher mit dem Ausprobieren einer Sache, die eigentlich schon im letzten Jahr fehlgeschlagen ist (bin eben ein Gewohnheitsmensch ). Auch wenns einfacher ist, sich ewig um die eigene Achse zu drehen bringt nichts => es müssen also Änderungen her . Insgesammt muß feststehen, das Änderungen nichts mit diesem Wettbewerb und dessen Ausgang zu tun haben. Ich bitte deshalb darum, diese drei Programme bei der Bewertung außer acht zu lassen und auch nicht weiter im Wettbewerb zu erwähnen. |
|
|
| |
|
|