Deutsch
Anwendungen

TNT (Tasks and Token)

 
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
 
03.03.2006  
 



Wir sind gespannt.
 
03.03.2006  
 



PS:
Download des Progs im Wettbewerbs-Downloadbereich des Forums:
[...] 
 
04.03.2006  
 



Besten Dank für das Löschen der Doppelpostings...

Ich habe ein kleines Update gemacht und ein paar Bugs gefixt. Über einen ganz kleinen Kommentar würde ich mich schon freuen - muß aber nicht unbedingt sein..
 
23.03.2006  
 



Hilfedatei angepasst und noch einen Bug entfernt. Der LUID der Quelle des Token wurde in der falschen Reihenfolge der Words dargestellt. Ich hatte mich schon vor der Veröfentlichung entschlossen, die LUIDs so darzustellen, wie sie auch in der Registry auszulesen sind - den einen hatte ich übersehen.
 
26.03.2006  
 



Hallo, bin wiedder mal kurz im Haus
Ich musste wirklich einiges ändern - da die Anwendung ja hauptsächlich für mich sein soll, habe ich hier mehr auf Umfang als auf Performance geachtet:
Aus verschiedenen Gründen die es mir unmöglich gemacht haben weiterhin Profan2Cpp für dieses Programm zu verwenden, ist das Programm jetzt komplett mit Xprofan9 erstellt worden.
In dieser Version ist es nun optional möglich, sich die
Heaps eines Prozesses auslesen zu lassen.
In die Inhalte dieser Blöcke lässt sich bei Bedarf ebenfalls ein Blick werfen.
Unter Windows95/98/ME werden nun auch die Prioritäten der Prozesse angezeigt.
Das Anzeigen der Systeminfos läuft nun über eine selbständig laufende Programmschleife.
Neben dem Anzeigen von Heaps ist auch das Auslesen anderer beliebiger Speicherbereiche eines Prozesses möglich.
Speicherbereiche fremder Prozeses können (wenn ausreichend Rechte vorhanden sind) beliebig geändert werden.
Das erste Feld der Statusbar liefert nun einiges an Informationen mehr als zuvor.
Beim Auslesen der Exportfunktionen einer DLL hakte das Programm manchmal gewaltig. Das Problem ist beseitigt.
Mit der Taste Pause kann man nun längere Operationen abbrechen.
Die Reiter des Tabcontrols sind nun auch anwählbar während das Programm sich um andere Dinge kümmert.
Während TNT noch Informationen ausliest kann man nun bereits in den einzelnen Listviews nach Daten wühlen.
Durch einen Rechtsklick auf die Adresse eines Heapblock lassen sich die im Block befindlichen Bytes des Heapblockes auslesen.
Der erweiterte Stil eines Fensters wurde teilweise nicht richtig angezeigt - Bug ist gefixt.
Erweiterte Controlstile wurde falsch ausgelesen und angezeigt - Bug wurde gefixt.
Fenster wurden Teilweise nach Stiländerungen nicht aktualisiert - Fehler wurde beseitigt.
Das Tabcontrol würde durch das Hinzufügen des Stils TCS_HOTTRACK unter Windows2000 etwas aufgepeppt.
Die Hilfedatei wurde angepasst und erweitert.

Für Konstruktive Kritik und Anregungen bin ich immer sehr dankbar und Fragen beantworte ich durchweg gerne (kann bloß etwas dauern).

PS: Ich habe vor (wenn es mir irgendwie möglich ist), mich im nächsten Jahr wieder sehr produktiv an der Profangemeinde zu beteiligen und hoffe, dass ihr mir diesbezüglich recht heftig die Daumen drückt...
 
24.04.2006  
 



Darauf kannst Du Deinen *pieps* verwetten!
 
24.04.2006  
 



Microsoft kostet mich im Augenblick etwas Nerven...
Ab Windows2000 scheint ich die gesammte Speicherverwaltung geändert zu haben. Im gleichen Zuge hat sich Microsoft wohl dazu entschlossen, die HEAPENTRY32 und HEAPLIST32 Strukturen (d.h. den Inhalt der Members) ebenfalls zu ändern - ich denke Sicherheitsgründe...
Diese Änderungen sind natürlich nirgendwo dokumentiert - habe mich aber trotzdem da durchgewurschtelt.

Fazit: Neue Version von Tasks and Token geschrieben!
 
30.04.2006  
 



Habe nochmals ein Update gemacht:
- Tippfehler beseitigt, soweit sie mir aufgefallen sind
- Es ist nun möglich, den Speicher fremder Prozesse nach beliebigen Bytefolgen durchsuchen zu lassen
- Adressbereiche fremder Prozesse, auf die zugegriffen werden kann, können gelistet werden

In der Hoffnung nicht mehr alzuviel Mist produziert zu haben

Gruß

AH
 
05.05.2006  
 



Nochmals ein Update:
- Speichersuchen und -tests laufen nun wesentlich schneller.
- Einige Bugs gefixt.
 
17.06.2006  
 



Durch einen Fehler beim Entladen von Modulen konnte es unter Umständen zu einem Programmabsturz kommen. Fehler ist beseitigt und neues Update gemacht.
 
21.06.2006  
 



Neues Update:

Version 1.6.0:

Es können über TNT Timernachrichten mit einer auszuführenden Adresse an Threads und Fenster gesendet werden. Damit ist es (bei ausreichenden Rechten) nun möglich, DLLs in andere Prozesse zu injizieren und eigenen Quelltext in einem anderen Prozess ausführen zu lassen.

DLLs können zum Teil nun auch ausführbar in TNT geladen werden. So kann TNT z.B.um eigene Funktionen erweitert werden, die dann mittels Timermessage angesprochen werden können.

Zugriffsrechte von Prozessspeichern fremder Prozesse können jetzt geändert werden. Da es bei falscher Anwendung schnell zu Zugriffsverletungen innerhalb der anderen Prozesse kommen kann, habe ich mir sehr lange überlegt, ob ich eine solche Funktionalität überhaupt einbauen sollte - ich habe aber im Augenblick den Eindruck, dass ich ohne diese Möglichkeiten nicht weiterkomme.

Es ist nun nicht mehr möglich, beim Start von TNT vor der Initialisierung das Menü anzuklicken (hat mich schon länger genervt).

Um schneller und besser auf Menüklicks reagieren zu können, war die Wartepriorität von TNT bislang immer $80. Dieser wert lässt sich nun dauerhaft über das Treeview ändern und so auf das jeweilige System anpassen. Die Priorität beim Ausführen von längeren Aktionen ist nach wie vor ständig $20.

Ein Fehler beim Anzeigen von Text in der Statusbar, der ab Windows2000 nicht auftrat, wurde beseitigt.
 
04.07.2006  
 




Zur Anwendung


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

51.131 Betrachtungen

Unbenanntvor 0 min.
Axel Berse24.06.2022
AndreasS02.12.2018
iF13.01.2016
Uwe Lang03.08.2015
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie