PDA

Vollständige Version anzeigen : source code



ichbrauchedrogen
14.02.2004, 15:16
was kann man eigentlich mit dem win sourcecode so alles anstellen?

außer sicherheitslücken finden - das ist natürlich sündäää X(

könnte man sich damit nen eigenes windows kreieren?
zb ne abgespeckte variante?

DichterDenker
14.02.2004, 18:07
auf jeden fall.
problem ist nur: der windows source code ist so viel da blickst du nicht durch. außerdem dürfte es illegal sein den überhaupt zu besitzen.

Kommissär
14.02.2004, 21:36
Nein, im Windows Code, der aufgetaucht fehlen einige Komponente des Systemkernels.
Mit dem Code kann man alles erdenkliche anstellen.

DichterDenker
14.02.2004, 21:42
du könntest den kernel (wahrscheinlich "win.com") disassemblieren.

P.S: für alle die es nicht wissen: Assemblercode ist eine für Menschen lesbare Form von Maschinensprache. disassemblieren heißt eigentlich nur die Maschinensprache lesbar zu machen. (naja viele betrachten assembler als zu schwierig aber ich komm gut damit zurecht :D)

Kommissär
14.02.2004, 21:47
Naja, Assembler ist nicht gerade eine einfache Sache... Musste früher einige Mikroprozis programmieren...

Ich hoffe, dass jetzt einige Leute ihren geklauten Code darin vorfinden...!

DichterDenker
14.02.2004, 21:54
mit einem guten assembler und exorbitanter macro-benutzung kannst du dir die halbe arbeit sparen
dafür hast du die höchste geschwindigkeit und kleinste größe!

Außerdem lässt es sich gut debuggen, da du den code einfach im kopf nachrechnen kannst was bei c++ nicht geht

Mithrandir
14.02.2004, 22:44
Original von istdaswirklichwichtig
P.S: für alle die es nicht wissen: Assemblercode ist eine für Menschen lesbare Form von Maschinensprache. disassemblieren heißt eigentlich nur die Maschinensprache lesbar zu machen. (naja viele betrachten assembler als zu schwierig aber ich komm gut damit zurecht :D)

mit einem guten assembler und exorbitanter macro-benutzung kannst du dir die halbe arbeit sparen
dafür hast du die höchste geschwindigkeit und kleinste größe!

Außerdem lässt es sich gut debuggen, da du den code einfach im kopf nachrechnen kannst was bei c++ nicht geht
Einzelne Programmteile, die unbedingt sehr schnell sein müssen, da ist Assembler noch vertretbar.
Aber für PC-Programmierung absolut ungeeignet. Wer tut sich denn das freiwillig an? Es gibt doch so schöne Sachen, z.B. Objektorientierung, lesbaren Code, Plattformunabhängigkeit... und kleinste Größe, das mag stimmen, aber sicher nicht wenn man mit Quelltext vergleicht. Schon einfachste Sachen brauchen in Assembler hunderte Zeilen Code.
Assembler mögen nur ganz bestimmte masochistische Charaktere...

ladyfirst
15.02.2004, 16:18
Ich find es es gut das die Russen ueber gewisse links den Code von MS downloaden lassen, denn B. Gates war es ja welcher den Russen in seinen Wahn den Code gab. das ist GESCHAEFT. Mehr Stunden online, mehr upgrade, neu software usw.
Warum sollte B. Gate anders als Bush sein. Bei beiden gibt es taeglich 'updates'...

Nun, was passiert nun: Naja, man muss eben noch mehr 'updates' laden wenn man nicht wie politikforen einen Unix benutzt..... und, naja!

DichterDenker
15.02.2004, 20:32
>Assembler mögen nur ganz bestimmte masochistische Charaktere...

tjaja ... :))

das sind die vorurteile...
ich programmier in Assembler fast genauso bequem wie in C++ dank macrobenutzung. Ok Strings sind verdammt schwer, aber alle meine C++ progs die zuviele Strings benutzt haben sind immer abgeschmiert und ich konnte den fehler nicht finden.

Wegweiser
19.02.2004, 06:14
Original von istdaswirklichwichtig
mit einem guten assembler und exorbitanter macro-benutzung kannst du dir die halbe arbeit sparen
dafür hast du die höchste geschwindigkeit und kleinste größe!

Juhuu! Ein wahrer Gläubiger! :D

Kennst Du v2OS (http://www.v2os.cx/)? Ein Betriebssystem 100% assembler! :] Nicht sehr stabil - aber irgendwie einfach genial... (Ja, es gibt kranke Leute auf der Welt...)


Außerdem lässt es sich gut debuggen, da du den code einfach im kopf nachrechnen kannst was bei c++ nicht geht

Was benutzt Du? Masm? Tasm? Nasm? Schon mal asm32 ausprobiert? Assembler... Ich wünschte, ich könnte damit auch wirklich was machen... :(


Original von Mithrandir
Aber für PC-Programmierung absolut ungeeignet. Wer tut sich denn das freiwillig an?

Die Freaks... Und wenn man sich ansieht, was die Demo-Typen teilweise in 64k oder noch weniger bekommen... Das kann einen schon umhauen. Farbrausch (http://www.farb-rausch.com/)


Es gibt doch so schöne Sachen, z.B. Objektorientierung,

Wer braucht denn so einen Quatsch? :D


lesbaren Code,

Asm-Code kann durchaus lesbar sein. Wenn man sich beim schreiben etwas Mühe gegeben hat und der Leser halbwegs in der Materie steckt.

[/quote]Assembler mögen nur ganz bestimmte masochistische Charaktere...[/quote]

...oder die Leute, die einfach "manuell veranlagt" sind. :)) Was ja nichts Schlechtes ist.

Einem Kumpel von mir war das noch nicht genug. Er hat versucht, ein Spiel nur via batchdateien zu schreiben! Nur standart Dos-Befehle zulässig. Kein qBasic, debug oder sonstige Sachen, mit denen es "zu einfach" wäre... Und er hat es geschafft! Es ist im übrigen mehr als ein Textadventure. Vielmehr ist es ein Rollenspiel... Komplett mit Kampfsystem & Co. Mit ansi sogar relativ spielbar! :rolleyes:

Toppt das jemand? Und wer auch nur mal versucht hat, via batching etwas so "simples", wie das Addieren zweier Zahlen zu machen, der weiß, wovon ich rede...


Wegweiser

Mithrandir
21.02.2004, 14:56
Original von istdaswirklichwichtig
>Assembler mögen nur ganz bestimmte masochistische Charaktere...

das sind die vorurteile...
ich programmier in Assembler fast genauso bequem wie in C++ dank macrobenutzung. Ok Strings sind verdammt schwer, aber alle meine C++ progs die zuviele Strings benutzt haben sind immer abgeschmiert und ich konnte den fehler nicht finden.

C++ ist ja auch nicht grade das gelbe vom Ei. Aber Assembler ist nicht bequem, das ist kein Vorurteil, das ist eine Tatsache. Wenn schon Strings in Assembler "verdammt schwer" sind, wie sieht es dann mit wirklich komplexen Strukturen aus?


Original von istdaswirklichwichtig
Einem Kumpel von mir war das noch nicht genug. Er hat versucht, ein Spiel nur via batchdateien zu schreiben! Nur standart Dos-Befehle zulässig. Kein qBasic, debug oder sonstige Sachen, mit denen es "zu einfach" wäre... Und er hat es geschafft! Es ist im übrigen mehr als ein Textadventure. Vielmehr ist es ein Rollenspiel... Komplett mit Kampfsystem & Co. Mit ansi sogar relativ spielbar! :rolleyes:
Toll. Man kann sich das Leben schon schwer machen. Klar, wenn man die Herausforderung sucht, programmiert man Sachen einfach nur für das Gefühl, das sich einstellt, wenn es funktioniert...



Es gibt doch so schöne Sachen, z.B. Objektorientierung,
Wer braucht denn so einen Quatsch? :D
OO ist absolut geil! Das hat einfach Stil; gerade wenn mehrere Leute zusammenarbeiten ist das Konzept der Kapselung ungblaublich gut. Programme bekommen einfach bessere Strukturen mit OO. Und die Wiederverwendbarkeit und auch Anpassbarkeit von Code ist hoch.

Ex-Admin
21.02.2004, 15:11
Das heisst übrigens OOP und bedeutet Objektorientierte Programmierung ;)

fryfan
21.02.2004, 17:22
es wurde in letzter zeit ja nicht nur der windows code geklaut, in der spiele branche wurde eine beta von half life 2 und der code geklaut und auch von anderen spielen wurden betas geklaut...
ich kann nicht verstehen wie valve half life 2, ihr millionen projekt auf einen mit dem internet verbunden server/pc stellen kan... :rolleyes:

Mithrandir
21.02.2004, 19:57
Original von codemonkey
Das heisst übrigens OOP und bedeutet Objektorientierte Programmierung ;)
Ich sage trotzdem OO, das bedeutet Objekt-Orientierung.

DichterDenker
21.02.2004, 20:14
@Wegweiser

:prost:

du bist also auch so ein Freak wie ich? :D

Für Windowsprogrammierung benutz ich FASM
flatassembler.net (http://flatassembler.net)
,für Linux NASM (und für das Betriebssystem das ich grad in reinem Assembler schreibe ... letzten Sonntag hab ich den Sheduler fertiggemacht *ganz stolz sei*)

>Ich wünschte, ich könnte damit auch wirklich was machen...

Ich könnt dir ein paar Tutorials schicken wenns dir was bringt...

@Mithrandir

Komplexe Strukturen sind im Prinzip Strings...und sogar noch leichter Handzuhaben als diese...
Ich dachte da eher an Funktionen die
aus einem Userstring ne Zahl machen mussten oder umgekehrt
oder wildcard-strings suchen
da kriegt man dann ne funktion die 5 übereinanderliegende schichten hat was sehr eklig ist...

>OO ist absolut geil! Das hat einfach Stil; gerade wenn mehrere Leute
>zusammenarbeiten ist das Konzept der Kapselung ungblaublich gut.

Mag sein. Dafür habe ich die absolute Macht über die Hardware *hehehehe*

sparty2
21.02.2004, 23:58
Ach Kinder...

OOP und Assembler schiessen sich ja nicht gegenseitig aus. Es ist prinzipiell auch möglich (teilweise) objektorientiert in Assembler zu programmieren. Nur ist das halt extrem mühsam und fehleranfällig. Der Vorteil von OOP und AOP (Aspektorientierte Programmierung) liegt ja gerade darin dass die Produktivität und Wartbarkeit bei größeren Softwareprojekten extrem gesteigert werden.
Der ehemalige Vorteil der Assemblerprogrammierung, die höhere Ausführungsgeschwindigkeit, ist in Zeiten superskalarer CPUs mit Out-Of-Order Excution und Register-Renaming eher ins Gegenteil verkehrt, da die Abhängigkeiten zwischen den einzelnen Befehlen für eine optimale Ausführung dermassen komplex geworden sind dass ein Compiler einen deutlich besseren Code erzeugt. Spätestens bei CPUs wie Intel's Itanium mit VLIW-Architektur ist die Programmierung "von Hand" nicht mehr sinnvoll.
Und nicht zuletzt gilt bei fast allen Programmen die 90/10 Regel:

90% der Zeit verbringt ein Programm in 10% des Codes.

D.h. 90% des Codes sind völlig irrelevant für die Ausführungsgeschwindigkeit und diese 90% in Assembler zu programmieren ist reine Zeitverschwendung. Innerhalb der verbleibendne 10% mag es bei sehr rechenintensiven Aufgaben hin und wieder sogar angebracht sein, einzelne Teile in Assembler zu optimieren, aber das ist wirklich sehr selten.
Wer mit Software Geld verdienen will, der hat normalerweise nicht die Zeit diese in Assembler zu schreiben. Selbst bei 8-Bit Microcontrollern hält C immer mehr Einzug, da es einfach produktiver ist. Nur in Ausnahmefällen werden größere Programme dafür noch neu in Assembler geschrieben.

sparty2

Mithrandir
22.02.2004, 01:30
Original von sparty2
OOP und Assembler schiessen sich ja nicht gegenseitig aus. Es ist prinzipiell auch möglich (teilweise) objektorientiert in Assembler zu programmieren.
Vermutlich liegts an meinen unzureichenden Assembler-Kenntnissen, aber ich täte mir vermutlich ziemlich schwer so etwas wie Kapselung, Vererbung, Substituierbarkeit, oder Polymorphismus und v.a. die Abstraktion mit Assembler zu verwirklichen...


Mir ist meine Zeit halt wichtiger, als die Zeit, die mein Rechner arbeitet, deshalb meide ich Assembler.

sparty2
22.02.2004, 01:38
Original von Mithrandir
Vermutlich liegts an meinen unzureichenden Assembler-Kenntnissen, aber ich täte mir vermutlich ziemlich schwer so etwas wie Kapselung, Vererbung, Substituierbarkeit, oder Polymorphismus und v.a. die Abstraktion mit Assembler zu verwirklichen...

Kapselung geht recht einfach. Vererbung könnte durch eine Kopie der VTable erreicht werden... aber Du hast schon recht, es ist in der Realität von Hand nicht sinvoll machbar.
Und für die "Speed-Freaks" bleibt ja auch in C++ der Inline-Assembler und in Java die Native-Methods.

sparty2

John Donne
22.02.2004, 14:16
Original von istdaswirklichwichtig
du könntest den kernel (wahrscheinlich "win.com") disassemblieren.

P.S: für alle die es nicht wissen: Assemblercode ist eine für Menschen lesbare Form von Maschinensprache. disassemblieren heißt eigentlich nur die Maschinensprache lesbar zu machen. (naja viele betrachten assembler als zu schwierig aber ich komm gut damit zurecht :D)

Die Frage ist doch, was Lesbarkeit bedeutet. Ich habe zeitweise viel in Assembler programmiert, aber unkommentierten Assemblercode halte ich auf jeden Fall für sehr schwer lesbar, wenn man unter Lesbarkeit das Erfassen der Programmlogik (Datenstrukturen, Algorithmen,...) versteht. Mit dem Ergebnis einer Disassemblierung können die meisten Menschen kaum etwas anfangen. Da durchzusteigen ist derart zeitaufwendig, daß man den Code in vielen Fällen gleich selbst entwickeln kann.

Ich möchte mich weitgehend Mithrandir anschließen: Wenn ich einen PC programmieren, werde ich das in den seltensten Fällen in Assembler tun. Inline reicht für die wenigen zeitkritischen Fälle meist völlig aus. Wenn ein embedded system zup rogrammieren ist (vielleicht ein ABS-System mit harten Echtzeitanforderungen) spricht vieles für Assembler...

In Assembler fühlte ich mich lange Zeit so, als müßte ich täglich das Rad neu erfinden. Mir ist das auf die Dauer einfach zu anstrengend. Und ich kann mir nur schwer vorstellen, mit Methoden des Software Engineering wirklich große Projekte in Assembler anzugehen, weil ich nicht glaube, daß irgendjemand den zusätzlichen Zeitaufwand für XY-Anwendungen bezahlt. Zudem ist an dem Argument von sparty2, daß Compiler und anderen Codegenration Tools heute auf vielen Leveln guten Code erzeugen, viel Wahres dran.

Grüße
John

DichterDenker
26.02.2004, 19:52
>Mir ist meine Zeit halt wichtiger, als die Zeit, die mein Rechner arbeitet,
>deshalb meide ich Assembler.

Naja bei Routinesachen bin ich mit Assembler genauso schnell wie mit HLLs.

>Der ehemalige Vorteil der Assemblerprogrammierung, die höhere
>Ausführungsgeschwindigkeit, ist in Zeiten superskalarer CPUs mit Out-Of-
>Order Excution und Register-Renaming eher ins Gegenteil verkehrt, da
>die Abhängigkeiten zwischen den einzelnen Befehlen für eine optimale
>Ausführung dermassen komplex geworden sind dass ein Compiler einen
>deutlich besseren Code erzeugt. Spätestens bei CPUs wie Intel's Itanium
>mit VLIW-Architektur ist die Programmierung "von Hand" nicht mehr
>sinnvoll.

Kann ich mir kaum vorstellen. Der Compiler wurde ja auch von jemandem programmiert. Und ein Programmierer der ein Programm programmiert das besser programmiert als er ist parodox... :D

Mithrandir
27.02.2004, 17:36
Original von istdaswirklichwichtig
>Mir ist meine Zeit halt wichtiger, als die Zeit, die mein Rechner arbeitet,
>deshalb meide ich Assembler.
Naja bei Routinesachen bin ich mit Assembler genauso schnell wie mit HLLs.

Was sind denn Routinesachen für Dich?
Formatierte Textausgabe(z.B. HTML)? Graphik? Datenbankzugriffe? Benuterschnittstelle(eventuell mit Maus)?

DichterDenker
27.02.2004, 18:36
HTML ...kommt drauf an...
es dürft schon ne zeit dauern einen Browser zu machen. Aber würds in C++ auch...
Graphik z.B. ist in Assembler auch nicht schwieriger als in C++ (es sei denn man benutzt irgendwelche vorgefertigten Libraries.)
Datenbankzugriffe? Hab ich noch nie gemacht von dem her...
Benuterschnittstelle(eventuell mit Maus)?
Das ist ja einfach Kein Problem weder in Windows noch in Linux... :D

Naja ich dachte bei routinesachen eher im kleineren Bereich sprich DLL-calls, Standard-Mathe etc.
Nichtroutine wären halt komplizierte Formeln die man erst langwierig im kopf durchrechnen muss usw...

Mithrandir
29.02.2004, 00:24
Original von istdaswirklichwichtig
HTML ...kommt drauf an...
es dürft schon ne zeit dauern einen Browser zu machen. Aber würds in C++ auch...
In Java z.B. geht ein rudimentärer Browser auf eine Bildschirmseite (ja, unter Verwendung von Vorgefertigtem, aber warum sollte man sich die Mühe machen, Sachen zu programmieren, die andere mit sauberen Schnittstellen schon längst geschaffen haben).

Gärtner
29.02.2004, 05:18
(Hab ich zwar auch unter "Geschichten" gepostet, aber vielleicht paßt´s hier [Strang zu spät gesehen] ja auch; ich hoffe auf Nachsicht ;) )


Vor einiger Zeit stattete mir ein Freund, ein Computer-Zauberer, einen Besuch ab. Während wir miteinander sprachen, erwähnte ich, daß ich jüngst Windows XP auf meinem Rechner installiert habe und ich zeigte ihm die Installations-CD.
Er sagte: "Gib mir die CD einen Augenblick."
Ich reichte sie ihm zögernd. Die CD fühlte sich plötzlich sehr schwer an, als ob es entweder ihr oder mir irgendwie widerstrebte, daß der Zauberer sie berührte.
Er hielt sie hoch. Die CD sah aus, als sei sie aus reinem und massivem Silber. "Kannst du irgendwelche Zeichen auf ihr erkennen?" fragte er.
"Nein, antwortete ich. "Es sind keine darauf. Sie ist ganz glatt und man sieht niemals einen Kratzer oder eine Spur von Abnützung."
"Nun, denn schau!" Zu meinem Erstaunen und Bestürzung warf der Zauberer die CD plötzlich in die Mikrowelle. Ich stieß einen Schrei aus und griff nach ihr, doch der Zauberer hielt mich zurück.
"Warte!" sagte er in befehlendem Ton und warf mir unter seinen buschigen Augenbrauen einen raschen Blick zu.
Die CD veränderte sich offenbar nicht. Eine Weile blieb der Zauberer stehen und blickte in die Mikrowelle, dann bückte er sich, öffnete die Mikrowelle und nahm die CD sofort heraus. Ich hielt den Atem an.
"Sie ist ganz kühl", sagte er. "Nimm sie!" Ich empfing sie auf der zurüchzuckenden flachen Hand: Sie schien dicker und schwerer denn je geworden zu sein.
"Halte sie hoch! Und schau sie genau an!"
Als ich das tat, sah ich feine Linien, feiner als der feinste Federstrich, um die CD herumlaufen, innen und außen: Linien aus Feuer, die die Buchstaben einer schwungvollen Schrift zu bilden schien. Sie leuchteten hell und scharf, und doch fern, als kämen sie aus einer großen Tiefe.

12413AEB2ED4FA5E6F7D78E78BEDE820945
0920F923A40EE10E510CC98D444AA08E1324


"Ich kann die feurigen Buchstaben nicht lesen", sagte ich mit zitternder Stimme.
"Nein", erwiderte der Zauberer, "aber ich kann es. Die Buchstaben sind Hex-Code, von altertümlicher Art, und die Sprache ist die von Micro$oft, die ich hier nicht aussprechen will. Doch diese Zeilen in der Gemeinsamen Sprache bringen das, was gesagt ist, annähernd zum Ausdruck:

Ein OS, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden."

trib996
29.02.2004, 11:05
Muhahaha :))
:klatsch: :klatsch: :klatsch:

DichterDenker
29.02.2004, 18:58
:lachanfall: :lachanfall:

Großadmiral
29.02.2004, 19:33
:lachanfall: