Lowlevel

Lowlevel => OS-Design => Thema gestartet von: Homix am 14. March 2005, 19:57

Titel: Wie Windows arbeitet ...
Beitrag von: Homix am 14. March 2005, 19:57
hi,
ich wollt mal fragen, ob ihr wisst wie Windows so arbeitet oder dazu Dokus, Tutorials, Texte, usw.. habt ?
ich würd gerne mir mal so nen groben Überblick schaffen, wie Windows es realisiert (gewisse probleme ect ...).
auch wäre das .EXE PE Format oder Treiber interesant !

cu,
stefan2005
Titel: Wie Windows arbeitet ...
Beitrag von: elfish_rider am 14. March 2005, 21:19
Generell ist es so, dass Microsoft nix Windows-internes verrät, schon nur wegen der wirtschaftlichen Situation, auf die ich hier nicht näher eingehen möchte.

http://www.nondot.org/sabre/os/files/Executables/PE.pdf

Da wird das (etwas komische und komplizierte) PE-Format ziemlich ausführlich behandelt.
Titel: Wie Windows arbeitet ...
Beitrag von: Netmaster am 11. April 2005, 11:31
Die beste Quelle für alle Infos rund um Windows sind in der MSDN enthalten, dort wird auch PE-Format beschrieben allerdings in English. Ich weiß nicht ob meine Frage hier passt, aber kennt jemand von euch MenuetOS? ich habe sehr viele Ähnlichkeiten zwischen MenuetOS-Kernel und dem Linuxkernel festgestellt, ich meine allgemeines Design. Kann das sein?
 :lol:
Titel: Wie Windows arbeitet ...
Beitrag von: DarkThing am 11. April 2005, 13:22
Ich kenn mich nicht mit MenuetOS aus, aber möglich wärs.

In Windows wird alles irgendwie getrennt: Für Port-Zugriffe und andere direkte Hardware-Zugriffe gibt es einen eigenen Teil (HAL - Hardware Abstraction Layer) usw. In wieweit das sinnvoll ist ist natürlich fraglich. Aber man muss eigenltich zwischen Win95/98/Me und Windows NT/200/XP/2003 trennen (Windows 1.0 - 3.11 lass ich mal weg). Die ersten basieren ja noch mehr oder weniger auf Dos und das ist das Design noch völlig anders.
Titel: Wie Windows arbeitet ...
Beitrag von: Netmaster am 11. April 2005, 23:30
Auf der Seite wird eine große Zahl an Dateiformaten dargestellt und erläutert. (Headerinfos, Formatierungen usw...)

http://www.wotsit.org/
Titel: Wie Windows arbeitet ...
Beitrag von: Legend am 19. April 2005, 01:27
Warum ein HAL sinnvoll lässt sich ganz einfach erklären - nur so hat ein und der selbe Treiber überhaupt eine Chance Veränderungen im Kernel zu überdauern ohne ständig angepasst werden zu müssen und zwischen verschiedenen Architekturen doch noch portabel zu sein.
Titel: Wie Windows arbeitet ...
Beitrag von: DarkThing am 19. April 2005, 11:59
Den Grund hab ich wohl übersehen  :? Aber wie macht das Windows? Werden da auch Messages gesendet oder werden die Funktionen direkt aufegrufen. Also hal.dll hab ich mal näher betrachtet und sie beinhaltet unter anderem diese Funktionen:
READ_PORT_BUFFER_UCHAR
READ_PORT_BUFFER_ULONG
READ_PORT_BUFFER_USHORT
READ_PORT_UCHAR
READ_PORT_ULONG
READ_PORT_USHORT
WRITE_PORT_BUFFER_UCHAR
WRITE_PORT_BUFFER_ULONG
WRITE_PORT_BUFFER_USHORT
WRITE_PORT_UCHAR
WRITE_PORT_ULONG
WRITE_PORT_USHORT
Werden die direkt vom Treiber aufgerufen? Und könnte man die aus einem eigenen Programm aufrufen oder würde Win das stoppen?
Titel: Wie Windows arbeitet ...
Beitrag von: crashmakerMX am 22. April 2005, 10:44
Zitat von: DarkThing
Den Grund hab ich wohl übersehen  :? Aber wie macht das Windows? Werden da auch Messages gesendet oder werden die Funktionen direkt aufegrufen. Also hal.dll hab ich mal näher betrachtet und sie beinhaltet unter anderem diese Funktionen:
READ_PORT_BUFFER_UCHAR
READ_PORT_BUFFER_ULONG
READ_PORT_BUFFER_USHORT
READ_PORT_UCHAR
READ_PORT_ULONG
READ_PORT_USHORT
WRITE_PORT_BUFFER_UCHAR
WRITE_PORT_BUFFER_ULONG
WRITE_PORT_BUFFER_USHORT
WRITE_PORT_UCHAR
WRITE_PORT_ULONG
WRITE_PORT_USHORT
Werden die direkt vom Treiber aufgerufen? Und könnte man die aus einem eigenen Programm aufrufen oder würde Win das stoppen?


ich denke mal das ein treiber die aufrufen kann, ein programm aber nicht
Titel: Wie Windows arbeitet ...
Beitrag von: DarkThing am 22. April 2005, 13:36
Werds mal testen ^^. Vielleicht gehts über rundll32.exe. Das ist ein kleiner Teil von Windows und man kann mit dem Ding Funktionen aus einer DLL aufrufen ohne extra ein Tool zu schreiben. Per Parameter gibt man den Dateinamen und die Funktion an und das wars. Wie das mit Parametern für die Funktion oder dem Rückgabewert aussieht weiß ich aber noch nicht.
Ansonsten könnte das DDK interessant sein.
Titel: Wie Windows arbeitet ...
Beitrag von: Legend am 22. April 2005, 15:00
Wenns ne DLL ist kann dein Programm die bestimmt in seinen Addressraum laden - auf Ring 3, um dann beim ersten Auftreten von in/out Instruktionen gekillt zu werden!
Titel: Wie Windows arbeitet ...
Beitrag von: crashmakerMX am 22. April 2005, 16:25
Zitat von: DarkThing
Werds mal testen ^^. Vielleicht gehts über rundll32.exe. Das ist ein kleiner Teil von Windows und man kann mit dem Ding Funktionen aus einer DLL aufrufen ohne extra ein Tool zu schreiben. Per Parameter gibt man den Dateinamen und die Funktion an und das wars. Wie das mit Parametern für die Funktion oder dem Rückgabewert aussieht weiß ich aber noch nicht.
Ansonsten könnte das DDK interessant sein.

http://www.wintotal.de/Tipps/Eintrag.php?RBID=2&TID=184&URBID=7

der seite nach werden parameter nach einem leerzeichen angehängt und durch kommas getrennt
Titel: Wie Windows arbeitet ...
Beitrag von: Jidder am 22. April 2005, 16:41
hi mit rundll32 wirds nicht klappen. das tool kann nur spezielle dlls und da auch nur spezielle funktionen ausführen. (schnickschnack wie systemsteuerung öffnen, webseite öffnen, netzwerkumgebung öffnen etc...) IO-Funktionen werden wohl nicht dazu gehören. Außerdem ist rundll32 auch kein godlike tool. es wird genau wie jedes andere programm, dass versucht ohne berechtigung auf die io-ports (sei es nun mit oder ohne dll) gekillt werden. so wie legend es beschrieben hat, wird es rundll32 auch ergehen.
Titel: Wie Windows arbeitet ...
Beitrag von: DarkThing am 22. April 2005, 19:39
Ok. Ich habs getestet: Wenn ichs so starte: C:\WINDOWS\system32\rundll32.exe HAL.dll,READ_PORT_UCHAR krieg ich den Fehler "Fehler beim Laden von HAL.dll Unzulässiger Zugriff auf einen Speicherbereich". Also so gehts nicht.
Titel: Wie Windows arbeitet ...
Beitrag von: mysticforce am 23. May 2005, 21:10
wäre es möglich das ganze betriebssystem(Windows) zu deassembeln?
Titel: Wie Windows arbeitet ...
Beitrag von: JensFZ am 23. May 2005, 21:32
Hiho

Also Theoretisch ist es möglich. Mir fällt da spontan ein Programm namens SoftICE ein. Das ist ein Runtime Debugger der sich auf den Ring 0 aufschaltet. Keine Ahnung wie das Programm das genau macht aber es funzt. Somit könntest du alle ASM befehle sehen, die z.B. ein API aufruf auf den Prozessor los lässt. aber glaube mir. Das ist nicht lustig.
Titel: Wie Windows arbeitet ...
Beitrag von: Homix am 23. May 2005, 21:57
hi,
es ist ja sogar möglich Windows auf Bochs laufen zu lassen (installieren)
dauert halt nur gewaltig lange, vlt kann man so auch Assemblerbefehle sehen.

cu,
stefan2005
Titel: Wie Windows arbeitet ...
Beitrag von: The-Programmerfish am 23. May 2005, 22:40
Geht viel einfacher

Win2k Source beim Esel (eMule) ziehen ^^
Titel: Wie Windows arbeitet ...
Beitrag von: Legend am 23. May 2005, 22:59
Das ist aber garantiert illegal ...
Titel: Wie Windows arbeitet ...
Beitrag von: Jidder am 23. May 2005, 23:08
... genauso wie das disassemblieren
Titel: Wie Windows arbeitet ...
Beitrag von: Legend am 24. May 2005, 00:53
In den USA ist Reverse Engineering unter sehr bestimmten Vorraussetzungen sogar legal. Wie das in Deutschland ist, da weiss ich jedoch nichts.
Titel: Wie Windows arbeitet ...
Beitrag von: n3Ro am 24. May 2005, 00:54
Aber wer will schon die Sourcen von einem OS das bekannt für seine Abstürze ist ;-) ? Lieber in die Sources von ReactOS oder Wine schauen, ist wenigstens legal und kost auch nix :mrgreen:
Titel: Wie Windows arbeitet ...
Beitrag von: stultus am 24. May 2005, 06:53
Und vonwegen eurer Idee Source beim Esel ziehn, wär sinnlos, is nämlich nich der komplette source... nur bestimmte unkommentierte teile, und damit was anzufangen, naja ^^
Titel: Wie Windows arbeitet ...
Beitrag von: n3Ro am 24. May 2005, 11:05
Woher weist du das denn :D ?
Titel: Wie Windows arbeitet ...
Beitrag von: The-Programmerfish am 24. May 2005, 11:37
Wo ich das letzte mal beim Esel geschaut (Nur geschaut!!!!) hab war der Source von Win2k noch 200 MB groß.

Wie kann eine Firma auf dieser Welt nur 200 Megabyte unkommentierten, unnützen, unbrauchbaren und unübersichtlichen Quelltext zusammenkopieren? (Ich sage bewusst zusammenkopieren ^^)
Titel: Wie Windows arbeitet ...
Beitrag von: Jidder am 24. May 2005, 11:55
@N00B: naja also es haben leute geschafft was damit anzufangen. irgendeine lücke beim verwalten von bitmap (wenn ich mich recht errinnere) ist aufgedeckt wurden, indem sich die leute den code angeschaut haben.

Zitat von: The-Programmerfish
Wie kann eine Firma auf dieser Welt nur 200 Megabyte unkommentierten, unnützen, unbrauchbaren und unübersichtlichen Quelltext zusammenkopieren? (Ich sage bewusst zusammenkopieren ^^)


indem sie es einfach tun? ist ja nicht schwer, wenn man genug codesklaven hat, kostet ein paar mille, aber passt scho, und funktionieren tuts auch noch einigermaßen :roll:

den windows source code gibt es übrigens auch kostenlos, legal und (fast) vollständig: Shared Source (http://www.microsoft.com/resources/sharedsource/Licensing/default.mspx) ... allerdings nur für ausgewählte personen ("most valuable professionals")
einige unis und firmen haben z.b. durch dieses programm auch einblick in den code
Titel: Wie Windows arbeitet ...
Beitrag von: Svenska am 24. May 2005, 12:49
Ich denke schon, dass 200 MB Source ausreichen. Jeder der Programmierer schreibt dann pro Jahr etwa ein Megabyte zusammen, dann wird alles zusammengelegt und kompiliert. Was dann nicht richtig funktioniert, wird halt mit dem nächsten Servicepack behoben.

Da die Microsofties eh nichts kommentieren, gibt's auch keine Kommentare im Source :D - was fehlt denn, wenn ich mal fragen darf? [Ich wuerde mangels C-Kenntnissen eh nicht durchsehen, aber das ist ne andere Sache :( ]

Auch Teile des Sources sind interessant. Man ueberlege sich nur mal, dass beispielsweise ... kA eben Bitmaps oder irgendwelche anderen Sachen, bei denen man es nicht vermutet, "unwichtige" Sachen also, eine Luecke drin ist. Wenn man dort das passende Tool dazu setzt und die Luecke ausnutzt, kann man schon einiges erreichen. Sei in der Decodierung von Bildern ein Fehler, kannst du jedes Bild und jeden Zugriff darauf umleiten ... und irgendein Bild wird ja mit Systemrechten geladen (Bootscreen, Grafiktreiber, Systemicons) und du kannst - genug Ahnung vorausgesetzt - ein Programm mit diesen Rechten benutzen.

Wobei das bei Windows bisschen egal ist, da eh 75% der Windowsuser (2k, xp) als Administrator angemeldet sind, da sonst diverse Software nicht funktioniert (elegant ausgehebelt, wa?)

@Legend: Unter welchen Bedingungen ist das erlaubt?
Ich hab mal ein Programm geschrieben und den Source danach weggeschmissen. Steht als Lizenzinfo drin, dass disassemblieren, dekompilieren oder so alles erlaubt ist. Ist das dann noch im Sinne des Gesetzes? :D Sonst ist es glaube ich verboten laut Copyright und geistiges Eigentum und so, aber Ahnung hab ich davon nicht.

Ich hab schon wieder viel zu viel geschrieben :(
Svenska
Titel: Wie Windows arbeitet ...
Beitrag von: stultus am 24. May 2005, 15:12
is einfach mein wissensstand das es unvollständig ist, stand mal irgendwo (weiß aber net wo genau, heise wars jedenfalls nicht...)
um was damit anzufangen kanns ja trotzdem reichen, is ja nich alles über alle dateien verstreut ;)
Titel: Wie Windows arbeitet ...
Beitrag von: Legend am 24. May 2005, 18:03
Es soll nun mal nur der Kernel und evtl. noch Win32 sein. Die GUI und eigentlich alles andere was darauf auf baut gehören wohl nicht dazu.

Und ich finde leider keinen brauchbaren Link mehr zum Reverse Engineering  :(
Titel: Wie Windows arbeitet ...
Beitrag von: n3Ro am 24. May 2005, 18:38
Ich kenn da aber etwas nettes:
http://rozinov.sfs.poly.edu/papers/bagle_analysis_v.1.0.pdf

Hier wird beschrieben wie man beim Reverse Engineering des Bagle Wurmes vorgegangen ist. SEHR INTERRESSANT ;-)
Titel: Wie Windows arbeitet ...
Beitrag von: sventek am 01. June 2005, 21:45
viele interessante dinge gibts auch unter www.sysinternals.com, www.rootkit.com, www.osronline.com, www.ntdev.org, http://www.pcausa.com oder www.win200mag.com (dort am besten mal nach russinovich suchen) und nicht zu vergessen die gute ddk doku, fals man da ueber die msdn rankommt.

auch bei phrack gibts einige dingense ueber system services, physical memory....

zudem auch noch von relevanz ist wohl das buch windows 2000 internals (russinovich und solomon) und Undocumented Windows 2000 Secrets (was wohl er schwer zu bekommen sein wird)

zudem ist auch immer mal ein blick in die strct function der kdx862??.dll vom windbg gut um zu sehen was sich den so an den strukturen geaendert hat.