Autor Thema: Wie Windows arbeitet ...  (Gelesen 25683 mal)

Homix

  • Beiträge: 138
    • Profil anzeigen
Gespeichert
« 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

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« Antwort #1 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.

Netmaster

  • Beiträge: 41
    • Profil anzeigen
Gespeichert
« Antwort #2 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:
Chaos ist die höchste Form der Ordnung ;)

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #3 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.

Netmaster

  • Beiträge: 41
    • Profil anzeigen
Gespeichert
« Antwort #4 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/
Chaos ist die höchste Form der Ordnung ;)

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #5 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.
*post*

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #6 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?

crashmakerMX

  • Beiträge: 8
    • Profil anzeigen
Gespeichert
« Antwort #7 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

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #8 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.

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #9 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!
*post*

crashmakerMX

  • Beiträge: 8
    • Profil anzeigen
Gespeichert
« Antwort #10 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

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #11 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.
Dieser Text wird unter jedem Beitrag angezeigt.

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #12 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.

mysticforce

  • Beiträge: 56
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 23. May 2005, 21:10 »
wäre es möglich das ganze betriebssystem(Windows) zu deassembeln?
Unix ist was du daraus machst.

Linuxuser aus Leidenschaft!

Die Grenzen deiner Sprache sind die Grenzen deiner Welt.

JensFZ

  • Beiträge: 96
    • Profil anzeigen
Gespeichert
« Antwort #14 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.
 

Homix

  • Beiträge: 138
    • Profil anzeigen
Gespeichert
« Antwort #15 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

The-Programmerfish

  • Beiträge: 434
    • Profil anzeigen
Gespeichert
« Antwort #16 am: 23. May 2005, 22:40 »
Geht viel einfacher

Win2k Source beim Esel (eMule) ziehen ^^
<- Verhasst, Verdammt, Vergöttert

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #17 am: 23. May 2005, 22:59 »
Das ist aber garantiert illegal ...
*post*

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #18 am: 23. May 2005, 23:08 »
... genauso wie das disassemblieren
Dieser Text wird unter jedem Beitrag angezeigt.

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #19 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.
*post*

 

Einloggen