Autor Beitrag
AHT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Do 24.01.08 20:22 
...zu einer Zeit, als ich mich ziemlich intensiv mit dem Windows sicherheitssystem beschäftigt habe, bin ich auf einen Artikel über Chris Paget und die Shatter Attack gestoßen. Ich war damals über den Artikel sehr shockiert - nicht nur darüber, wie einfach es angeblich sein sollte, über ein Edit und eine Timer Message einen Service für eigene Zwecke zu kapern, sondern besonders darüber, dass Microsoft damals gar nicht darauf reagiert hatte.
Nun kam, dass ich gezwungen war mich notgedrungen für ein Jahr von meinem Internetanschluss zu trennen - und um nicht allzuviel Langeweile aufkommen zu lassen, hatte ich mir vorgenommen, der ganzen Sache bezüglich der Gefährlichkeit dieser Attacke mal etwas auf den Grund zu gehen...
Damals hatte ich noch so wenig Ahnung von Windows, dass ich gar nicht wusste, wie wenig ich weiß; jetzt bin ich da schon etwas weiter und weiß mit Bestimmtheit, dass ich eigentlich gar nichts weiß :wink:.
Was macht man aber, wenn man vor irgendeinem Problem steht, von nichts eine Ahnung hat, nirgendwo nachlesen kann und sich keine passenden Tools verschaffen kann? Man schreibt sich selbst ein kleines Tool, das es einem ermöglicht, sich selbst Ahnung zu verschaffen; also ein Tool, das zumindesten Usermode Speicher und Zugriffsrechte anderer Prozesse scannen und ändern kann. Daraus entstanden ist dieses Tool, mit dessen Erkenntnissen es mir als total Ahnungslosem Progger möglich war, Shatter nicht nur nachzuproggen, sondern sogar zu belegen, dass gar kein Edit nötig ist um Code zu injizieren, um durch Shatter aus einem eingeschränkten Account Administratorrechte zu bekommen. Microsoft musste damals zu den selben Erkenntnissen gekommen sein und kurz vorher Shatter mittels Servicepack 2 gefixt.


Das "Ding" das ich da verbrochen habe und öfters mal mit dem Kosenamen "TNT" bezeichne, kann natürlich noch viel mehr als bloß Usermode Speicher scannen, da ich gleich zur Arbeit muss, kann ich aber eine ausführliche Beschreibung hier jetzt nicht reinsetzen und reiche diese hier noch nach - also vielleicht einfach einmal überall rechts und links klicken und überraschen lassen. Es ist nicht in reinem Delphi programmiert, sondern in einer aus Delphi heraus erstellten Programmiersprache - deshalb über die etwas lahme Geschwindigkeit nicht wundern.

Warum steht es jetzt hier: Ich möchte ganz gerne mal wissen, ob mein kleines Kind auch für andere Leute vielleicht brauchbar ist, wo ich etwas ändern, verbessern oder erleichtern sollte, wo Fragen offenstehen und wo ich mir einfach nur riesengroße Fehler eingebaut habe ohne diese zu bemerken (das pssiert mir andauernd). Das Ding ist unter 2000/XP entwickelt worde - was unter Vista davon noch funktioniert, würde ich auch gerne wissen.
Über Rückmeldungen, egal welcher Art, würde ich mich sehr, sehr freuen und eine etwas umfangreichere Anleitung wird bei Bedarf nachgeliefert.

user defined image


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am Do 24.01.2008 um 19:32


Zuletzt bearbeitet von AHT am Sa 26.01.08 18:58, insgesamt 1-mal bearbeitet
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 24.01.08 20:31 
Hab nur die ersten drei Zeilen gelesen dann hab Ich es aufgegeben.
Du hast doch nicht etwa einen Anschlag auf die Augen der User vor. :wink:

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Do 24.01.08 20:36 
user profile iconBlackheart666 hat folgendes geschrieben:
Hab nur die ersten drei Zeilen gelesen dann hab Ich es aufgegeben.
Du hast doch nicht etwa einen Anschlag auf die Augen der User vor. :wink:


Das sollte nur zur Einstimmung auf das was noch kommt sein. Für die Erklärungen, was das Programm alles so kann und wie das funktioniert, reichen 3 Bildschirmseiten längst nicht aus. :(
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 24.01.08 20:40 
So hab Ich das nicht gemeint, Du solltest deinen Text mal vernünftig einrücken sonst bekommt man Augenschmerzen beim lesen.

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Do 24.01.08 21:06 
Nach dem Start siehts etwas verwirrend aus, weil man gleich "Für dieses Objekt nicht verfügbar!" sieht. Ist ja logisch, wenn noch kein Objekt ausgewählt ist, aber vielleicht wäre so was wie "Wählen Sie einen Prozess" besser.
Aber ansonsten: Gefällt mir sehr sehr gut. Ich liebe solche Tools.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Fr 25.01.08 09:11 
Zitat:

Nach dem Start siehts etwas verwirrend aus, weil man gleich "Für dieses Objekt nicht verfügbar!" sieht. Ist ja logisch, wenn noch kein Objekt ausgewählt ist, aber vielleicht wäre so was wie "Wählen Sie einen Prozess" besser.
Aber ansonsten: Gefällt mir sehr sehr gut. Ich liebe solche Tools.

Ja, ist nicht so ganz gut gelungen. Vielleicht sollte ich beim Start gleich die Prozessliste ausklappen und den ersten Prozess auswählen.
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1185
Erhaltene Danke: 98

Win7
DXE2 Prof, Lazarus
BeitragVerfasst: Fr 25.01.08 22:55 
Erstmal: Hut Ab! Geniales Teil. :flehan:

Das bringt mich doch gleich wieder zur politischen Laage in Deutschland. Und dazu das dieses Forum öffentlich lesbar ist.
Meine Güte, man kann ja schon ärger bekommen, wenn man nur der Besitzer des PC's ist über den jemand, von solch einem mords gefährlichen Programm erfahren hat. :mahn: :rofl:

_________________
Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei.
Ich teste nicht, weil ich Angst habe Fehler zu finden.
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Sa 26.01.08 09:39 
user profile iconSinspin hat folgendes geschrieben:
Erstmal: Hut Ab! Geniales Teil. :flehan:

Das bringt mich doch gleich wieder zur politischen Laage in Deutschland. Und dazu das dieses Forum öffentlich lesbar ist.
Meine Güte, man kann ja schon ärger bekommen, wenn man nur der Besitzer des PC's ist über den jemand, von solch einem mords gefährlichen Programm erfahren hat. :mahn: :rofl:


Ich glaube da irrst du dich :lol:. Bin rechtlich da sehr gut auf dem Laufenden und kann dir versichern, dass dieses Tool definitiv nicht unter den von dir da gemeinten Paragraphen des StGB fällt. Im Gegenteil - das Tool testet sogar bei Bedarf, ob Shatter in deiner Windowsversion gefixt ist und warnt dich - ist also ganz nebenbei ein sehr nützliches Sicherheitstool :D!

Hat keiner Fragen zu dem Ding? Wäre es sinnvoll, hier mal eine "kleine" Betriebsanleitung zu posten? Der Funktionsumfang ist enorm - listet unter anderem bei Bedarf auch Fenster, die Windows normalerweise sehr gründlich versteckt.
BlackDragon
Hält's aus hier
Beiträge: 10


Delphi 7 Prof.,Turbo Delphi 2006, #Develop
BeitragVerfasst: Di 29.01.08 14:12 
Hi.

Auf den ersten Blick sieht das Tool schon nicht schlecht aus. Mehr kann ich noch nicht sagen, werde es aber noch ausgiebig testen.

Da du über jedes Feedback erfreut bist, hätte ich gleich zwei kleine optischen Mängel bei den Systeminfos. :P

- Vielleicht solltest du die Speicherwerte dem User nicht als Bytes präsentieren...
- Bei Auslagerungsdatei gesamt steht meine ich ein "-" vor dem Wert...

Ansonsten gute Arbeit. 8) Weiter so...

Mfg

BlackDragon

_________________
EDV-Systeme verarbeiten, womit sie gefüttert werden.
Kommt Mist rein, kommt Mist raus. -André Kostolany-
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Mi 30.01.08 09:01 
user profile iconBlackDragon hat folgendes geschrieben:

...werde es aber noch ausgiebig testen.

BESTENS! Danke!!! Bin gespannt... :)

user profile iconBlackDragon hat folgendes geschrieben:

Da du über jedes Feedback erfreut bist, hätte ich gleich zwei kleine optischen Mängel bei den Systeminfos.

Sehr schön! :)

user profile iconBlackDragon hat folgendes geschrieben:

- Vielleicht solltest du die Speicherwerte dem User nicht als Bytes präsentieren...

Habe schon selbst darüber nachgedacht :gruebel: - bin aber ein "Pennigfuchser" und mag so viele Zahlen hinter dem Komma irgendwie nicht.

user profile iconBlackDragon hat folgendes geschrieben:

- Bei Auslagerungsdatei gesamt steht meine ich ein "-" vor dem Wert...

Das ist ernst gemeint: Ich habe hier schon eine ganze Zeit lang mit einer Lupe vor meinem PC gesessen und dieses "-" gesucht :lupe: - hast du mal einen Screenshot :crying:? Ich finde das Ding bei mir einfach nicht... :autsch:
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1185
Erhaltene Danke: 98

Win7
DXE2 Prof, Lazarus
BeitragVerfasst: Mi 30.01.08 12:26 
Fehler in Bildern.
Einloggen, um Attachments anzusehen!
_________________
Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei.
Ich teste nicht, weil ich Angst habe Fehler zu finden.
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Mi 30.01.08 18:08 
user profile iconSinspin hat folgendes geschrieben:
Fehler in Bildern.

Besten Dank, das hilft mir schon eine ganze Ecke weiter! Die Ursache ist bei beiden Fehlern einleuchtend - ich werde erst noch sammeln, da kommt bestimmt noch mehr zusammen, und danach fixen. :zustimm:
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Mi 30.01.08 20:36 
aber du könntest die Zahl der Bytes (Registerkarte Systeminfo) wenigstens mit Trennpunkten bei jedem 3er Block angeben, zB. "1.326.234.632 Bytes" mit dieser Funktion zB.:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
function Mit1000erTrennung(Argument: string; TrennChar: char): string;
var n,i: integer;
begin
  Result := Argument;
  n := Length(Result);
  if n > 3 then begin
    i := 0;
    While n > 0 do begin
      inc(i);
      if (i >= 3and (n > 1then begin
        Insert(TrennChar,Result,n);
        i := 0;  
      end;
      dec(n);
    end;
  end;
end;
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Do 31.01.08 09:32 
user profile iconJakob Schöttl hat folgendes geschrieben:
aber du könntest die Zahl der Bytes (Registerkarte Systeminfo) wenigstens mit Trennpunkten bei jedem 3er Block angeben, zB. "1.326.234.632 Bytes" mit dieser Funktion zB.:...


Die Idee mit den Tausendertrennzeichen ist gar nicht schlecht; werde das aber, wenn ich das so mache, anders lösen - das soll schneller gehen.
pigfacejoe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 1

Win 10, Ubuntu
Delphi,Javascript, PHP, Java, Python
BeitragVerfasst: Di 05.02.08 13:15 
Hi AHT,

ich habe mir gestern in aller Ruhe dein Programm angesehen und ich finde TNT echt super, also erstmal Hut ab :zustimm:

Fehler habe ich eigentlich nicht gefunden( ich kenne mich aber auch nicht wirklich mit diesen Speicherzugriffsrechten aus.. :oops: ), ich kann mich eigentlich nur den bisher genannten Kritikpunkten anschließen:
- am Anfang die Meldung "Für dieses Objekt nicht verfügbar" evtl. ersetzen durch "Bitte einen Prozess aus untenstehender Liste" auswählen oder so.
- Bei den Systeminfos am besten die RAM Infos in Megabyte ausgeben..
- Bei jedem Prozess, den ich wähle steht unten "Falscher Parameter" was hat das eig zu bedueten?

Wahrscheinlich hilft dir dieser Beitrag nicht wirklich weiter, aber da du mich darum gebeten hast, auch mal dein Tool zu testen , hätte ich ein schlechtes Gewissen gehabt, wenn ich es nicht gemacht hätte... :D

Gruss
PigfaceJoe
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Di 05.02.08 13:25 
user profile iconAHT hat folgendes geschrieben:
user profile iconJakob Schöttl hat folgendes geschrieben:
aber du könntest die Zahl der Bytes (Registerkarte Systeminfo) wenigstens mit Trennpunkten bei jedem 3er Block angeben, zB. "1.326.234.632 Bytes" mit dieser Funktion zB.:...


Die Idee mit den Tausendertrennzeichen ist gar nicht schlecht; werde das aber, wenn ich das so mache, anders lösen - das soll schneller gehen.


Diese Funktion ist bei einem von meinen Projekten sozusagen als Nebenprodukt entstanden, du könntest es mal damit versuchen: Sie gibt den Plattenplatz in Byte, KB, MB, GB oder TB mit zwei Stellen hinterm Komma an.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function FormatDiskSpace(Bytes: Int64): String;
begin
  // Wenn Bytes, direkt kopieren
  if Bytes < 1000 then Result := IntToStr(Bytes) + ' Byte'
  // Ansonsten umrechnen
  else if Bytes < 1000000 then Result := FloatToStrF(Bytes / 1024, ffNumber,
    162) + ' KB'
  else if Bytes < 1000000000 then Result := FloatToStrF(Bytes / 1048576,
    ffNumber, 162) + ' MB'
  else if Bytes < 1000000000000 then Result := FloatToStrF(Bytes /
    1073741824, ffNumber, 162) + ' GB'
  else Result := FloatToStrF(Bytes / 1099511627776, ffNumber, 162) + ' TB';
end;

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Di 05.02.08 13:50 
user profile iconSilas hat folgendes geschrieben:

Diese Funktion ist bei einem von meinen Projekten sozusagen als Nebenprodukt entstanden, du könntest es mal damit versuchen:

Erst mal besten Dank. Das Problem (und die anderen hier erwähnten) habe ich auf meiner Version schon gefixt, habe Tausendertrennzeichen genommen - das geht bei mir am schnellsten. Das Update wird innerhalb der nächsten Tage noch hochgeladen, warte noch etwas auf weitere Bugmeldungen. Die Funktion für die Aktualisierung rufe ich über einen Timer Callback auf. Das Programm ist nicht direkt in Delphi geschrieben, sondern in einer in Delphi entwickelten Programmiersprache - einfach anzuwenden und mit extrem großer Funktionsumfang (sollte das der Entwickler dieser Sprache hier lesen, weiß er jetzt ganz genau, wer ich bin). Callbacks machen bei dieser Sprache nicht selten Probleme - möchte da also nicht zu viel in den Callback reinbauen.
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1185
Erhaltene Danke: 98

Win7
DXE2 Prof, Lazarus
BeitragVerfasst: Mi 06.02.08 18:20 
Also, ich vermute mal du meinst mit der Programmiersprache XProfan.
Nur, das ich da jeden enttäschen muss! Das ist keine Programmiersprache, sondern ein heulendes Elend. (Meine Meinung)
Wer Basic Programmieren will kann das auch auf andere Art.

_________________
Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei.
Ich teste nicht, weil ich Angst habe Fehler zu finden.
AHT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Mi 06.02.08 19:19 
user profile iconSinspin hat folgendes geschrieben:
Also, ich vermute mal du meinst mit der Programmiersprache XProfan.
Nur, das ich da jeden enttäschen muss! Das ist keine Programmiersprache, sondern ein heulendes Elend. (Meine Meinung)
Wer Basic Programmieren will kann das auch auf andere Art.

Ich wollte auch keine Werbung für die Programmiersprache machen, sondern nur erklären, warum ich mit euren Codes hier nichts anfangen kann - ich meine, die nicht einbauen kann - und das Proggie langsam ist. Ich habe nie irgendwie großartig etwas was Programmierung angeht gelernt (als ich zur Schule ging, gab es noch keine PCs) und mir alles selbst beigebracht, kann aber schon ganz gut mit den Leuten mithalten, die Ahnung haben. Für mich ist diese Sprache genau das richtige. Bin vor kurzem Opa geworden - da hat man wirklich schon Probleme sich umzustellen. :D

PS:
Irgendwann will man bloss mal auch ganz gerne seine Ergebnisse Leuten vorstellen, die nicht immer nur denken man spricht chinesisch, wenn man von Access Token und virtuellem Speicher redet und für die ein "Test" nur darin besteht, in möglichst kurzer Zeit das "X" zum Austellen des Programmes zu finden.
Das Programm hat fast 1 Jahr in einem anderen Forum gestanden, ohne das es irgendwelche Kommentare gegeben hätte oder gar die hier angesprochenen Fehler aufgefallen wären.
Echt frustrierend sowas.

Es geht mir hier darum, mich mit Leuten auszutauschen, die Ahnung haben, und etwas von dem was ich weiß weiterzugeben. API ist API - die Sprache bleibt sich gleich.

Gruß

AHT
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1185
Erhaltene Danke: 98

Win7
DXE2 Prof, Lazarus
BeitragVerfasst: Mi 06.02.08 20:29 
user profile iconAHT hat folgendes geschrieben:

Es geht mir hier darum, mich mit Leuten auszutauschen, die Ahnung haben, und etwas von dem was ich weiß weiterzugeben. API ist API - die Sprache bleibt sich gleich.

Ich habe auch nix gegen deine Programme gesagt, die sind einfach zu gut um darüber her zu fallen. Auch dass das mit *so* einer Sprache geht ist schon genial. Aber ich empfinde diese Spache als sehr schwehr verständlich und sehr unübersichtlich, wobei es da noch ganz andere, häufiger verwendete Sprachen gibt, die wesentlich übler sind.

Ich finde, das du hier genau im richtigen Forum bist um deine Programme vorzustellen, den wir alle können hier voneinander lernen. Und das trotz der *Sprachbariere*.

_________________
Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei.
Ich teste nicht, weil ich Angst habe Fehler zu finden.