Autor |
Beitrag |
Mrs. Sheep
      
Beiträge: 19
Win Vista
Delphi 2005 PE, Lazarus 0.9.26
|
Verfasst: Di 31.03.09 21:14
Der französische Mathematiker Émile Borel setzte das Bild in diese Welt, in dem 1000 Affen zufällig auf einer Schreibmaschine herumtippen, und ob dabei Hamlets Monolog herrauskommen kann. (unwarscheinlich)
Die Theorie wurde dann auf die Quantenmechanik übertragen, und zwar das bei den Billiarden von Bits (in den Quanten) wesentlich einfacher BRAUCHBARE Programme rauskämen als bei den Affen. Da Quanten ja untereinander wechselwirken, sogar Operationen ausführen können, könnte man das ganze jetzt auf Maschinencode übertragen. Kommt bei der zufälligen Eingabe etwas brauchbares raus? - Theorie ist schön, aber an der Praxis scheitere ich mangels zu geringer Kenntnisse...
i) Wie erzeugt und kompiliert man Maschinencode?
ii) Kann der zufällige Code meinem PC schaden zufügen?
iii) Was passiert mit "Bugs" im Maschinencode?
Vielen Dank, fürs Lesen und Mitdenken, und am besten noch Antworten geben können
PS: Die Theorie hab ich reingepackt um die ganzen Posts mit dem "wozu/warum" zu ersparen .. xD
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Di 31.03.09 21:18
Ich kenne nur die Theorie der Evolution:
www.michael-puff.de/...ierteEvolution.shtml
Hab aber bisher nie was hinbekommen, was irgendwie brauchbar wäre 
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Mrs. Sheep 
      
Beiträge: 19
Win Vista
Delphi 2005 PE, Lazarus 0.9.26
|
Verfasst: Di 31.03.09 21:24
Danke, das ging ja auch in meine Richtung. Hat jemand vill noch die PROGRAMMIERTECHNISCHEN Hinweise die ich brauch? - Als Belohnung berichte ich die Ergebnisse wenn was interssantes rauskommt xD
Außerdem würde ich noch weiter vorher anfangen: können sich Programme selst reproduzieren, d.h. überleben?
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Di 31.03.09 22:22
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Di 31.03.09 22:26
Mrs. Sheep hat folgendes geschrieben : | Außerdem würde ich noch weiter vorher anfangen: können sich Programme selst reproduzieren, d.h. überleben? |
Wenn man sich aktuelle Computerviren anschaut: ja (siehe: www.heise.de/securit.../news/meldung/135444 )
mfg
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Di 31.03.09 22:33
Mrs. Sheep hat folgendes geschrieben : | i) Wie erzeugt und kompiliert man Maschinencode? |
Wenn es dir nur darum geht, zufällige Bits in eine Datei zu schreiben, brauchst du ja keinen Compiler. Aber schon die Wahrscheinlichkeit, einen ausführbaren Exe-Header zu produzieren, dürfte nicht sehr hoch sein  .
Mrs. Sheep hat folgendes geschrieben : | Außerdem würde ich noch weiter vorher anfangen: können sich Programme selst reproduzieren, d.h. überleben? |
Den Hinweis auf Viren hat ja F34r0fTh3D4rk schon gebracht, aber um noch etwas Theorie in diese praxisferne Diskussion zu bringen  : en.wikipedia.org/wiki/Quine_(computing)
_________________ >λ=
|
|
Mrs. Sheep 
      
Beiträge: 19
Win Vista
Delphi 2005 PE, Lazarus 0.9.26
|
Verfasst: Mi 01.04.09 16:47
Kha hat folgendes geschrieben : | Aber schon die Wahrscheinlichkeit, einen ausführbaren Exe-Header zu produzieren, dürfte nicht sehr hoch sein |
EXE-Header ? Erbitte weiter Erläuterung .. xD und selbst wenn es mir (wie ja offensichtlich ist) WIRKLICH darum geht, nur "sinnlos" 0 und 1 zu schreiben und auszuführen: WIE führe ich die dann aus?
Und wegen dem "reproduzieren": Nicht ob es möglich ist, sondern ob die Programme darauf kommen. Den (um zur Theorie mit der Evolution zurückzukommen) nur Tiere die sich fortpflanzen überleben!
Kann man indem man sich als eingeschränkter Benutzer ausgibt, sich schützen? - Sonst geh ich für den Versuch in die Schule.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mi 01.04.09 17:25
Mrs. Sheep hat folgendes geschrieben : | Kann man indem man sich als eingeschränkter Benutzer ausgibt, sich schützen? - Sonst geh ich für den Versuch in die Schule. |  Das hab ich auch mal so gemacht, als ich mir nicht sicher war, ob man sich mit SendMessage(HWND_BROADCAST, WM_CLOSE, 0, 0); was kaputt macht
Du kannst auch als eingeschränkter Benutzer Dateien löschen, nur eben nicht mehr so viele  Du musst selber wissen, ob alle wichtigen Dateien in ordnern sind, auf die du als eingeschränkter Nutzer keinen Zugriff hast
Ein Exe-Header ist die "Kopfzeile" in der Exe-Datei, die dem Betriebssystem sagt, "hier, das ist ausführbarer Code" und weitere Informationen enthält. EXE-HEADER
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 01.04.09 17:28
Moin!
Mrs. Sheep hat folgendes geschrieben : | Kann man indem man sich als eingeschränkter Benutzer ausgibt, sich schützen? - Sonst geh ich für den Versuch in die Schule. |
Nimm halt eine VM, mach einen SnapShot (für den Notfall) und starte deine Test-Anwendung.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Mrs. Sheep 
      
Beiträge: 19
Win Vista
Delphi 2005 PE, Lazarus 0.9.26
|
Verfasst: Mi 01.04.09 17:39
also (iii) kann ich selbst beantworten: Habe einfach per Editor 0/1 in eine Datei getippt, als EXE gespeichert, ausgeführt:
Eine Console öffnet sich, schließt sich, nichts.
Aller Wahrscheinlich nach war da ein Bug =)
Und (i) hat sich ja wohl auch geklärt. Bedeutet dieser Versuch das also auch das man ohne einen gezielten Header zu schreiben ein Ergebnis bekommen kann??
Wie kann ich dann überhaupt (wenn ich jetz mal angenommenerweise 5k Programme starte), überprüfen ob etwas passiert?
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mi 01.04.09 17:58
Mrs. Sheep hat folgendes geschrieben : | also (iii) kann ich selbst beantworten: Habe einfach per Editor 0/1 in eine Datei getippt, als EXE gespeichert, ausgeführt |
Editor, du meinst Notepad?  Und jetzt glaubst du, du hättest binärcode getippt? Ich will dir mal sagen was deine Datei an Binärcode enthielt: 00110000 und 00110001 immer und immer wieder in folge (das ist die Binärdarstellung der Zeichen 1 und 0 )  Das ist keine gültige win32-Anwendung.
Ich kann dir nicht sagen, warum das OS mit einer Konsole darauf reagiert, aber wenn du meinen Link angeklickt hättest (den google-such link. www.delorie.com/djgpp/doc/exe/ ) wüsstest du, dass das, was da war, keine Exe-Datei war und vom Betriebssystem nicht als solche ausgeführt wurde. Die exe-Datei muss bin einer Folge bestimmter Zeichen (aka Hex-Werte, nicht das, was du per Editor eingeben kannst! ) beginnen, sonst ist es keine.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Mrs. Sheep 
      
Beiträge: 19
Win Vista
Delphi 2005 PE, Lazarus 0.9.26
|
Verfasst: Mi 01.04.09 18:10
... ok. also doch kein binärcode.  aber WIE stell ich ihn denn dann bitte her ?!!
Und ich HATTE auf den Link geklickt, jedoch nichts annähernd verständliches gefunden.
Ganz ehrlich gesagt hab ich auch diesen nicht ganz verstanden; Muss man also an die entsprechenenden Stellen die entsprechenden "Paramater" schreiben? - Wenn ja, hätte da mal jemand das was ich da an Code bräuchte?
- Ich will das ganz zwar NICHT als Scriptkiddie lösen, aber ich kann mich auch nicht in ALLES einlesen.
Mir ging es eigentlich mehr um den wissenschaftlichen Aspekt und brauchte den entsprechenden Code nur als Mittel zum Weg.
|
|
Mrs. Sheep 
      
Beiträge: 19
Win Vista
Delphi 2005 PE, Lazarus 0.9.26
|
Verfasst: Mi 01.04.09 18:21
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Mi 01.04.09 18:39
Wenn du Nullen und Einsen in einen Texteditor tippst, dann werden diese Zeichen als ASCII-/ANSI-/Unicode-Zeichen gespeichert. (Das gehört eigentlich zum Grundwissen des Programmierens...) Aus der Null wird zum Beispiel 30h. Um direkt Zahlen abzuspeichern hol dir halt nen Hex-Editor.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mi 01.04.09 18:44
oder schreib einfach irgendwelche ASCII-/ANSI-/Unicode-Zeichen sollt ja aufs gleiche hinauskommen. Einfache Methode, hau den Kopf n paar mal feste gegen das Keyboard.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mi 01.04.09 19:18
Direkt Bits in eine Datei zu schreiben ist nicht möglich, da diese immer zu je einem Byte gebündelt gespeichert werden.
Angenommen, du möchtest die Binärkette: 1110 0100 in eine Datei schreiben, so kannst du das mit dem Notepad tun, indem du ein ä tippst und diese Datei speicherst. Das "ä" entspricht nämlich in Binärdarstellung genau diesem Code.
Jetzt könntest du ein Programm schreiben, welches den Exe-Header erzeugt (den willst du ja sowieso) und dann beliebige Zeichen anhängt. Dieses solltest du dann wie oben schon genannt sicherheitshalber auf einer VM ausführen (auch wenn ich bezweifle, dass da so schnell was "brauchbares" herauskommt).
Vielleicht solltest du es zunächst mit sowas versuchen: www.delphi-forum.de/viewtopic.php?t=72354
mfg
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mi 01.04.09 19:22
elundril hat folgendes geschrieben : | Einfache Methode, hau den Kopf n paar mal feste gegen das Keyboard. |
Dann hast du aber immernoch keinen Exe-Header  Und echten Zufall hast du dann auch nicht!
Was den Header betrifft: nun, schreib dir einen Exe-Header, wie er auf der verlinkten Seite steht:
Per Hex-Editor 0x4d, 0x5a in die ersten 2 Byte, weiter gehts mit "The number of bytes in the last block of the program that are actually used. If this value is zero, that means the entire last block is used (i.e. the effective value is 512).", also nimmst du FF FF oder 00 00 (hat ja den gleichen Effekt) und so weiter bis du die Bytes 1A-1B abgehandelt hast. Entsprechende Werte musst du halt mit Zufallszahlen füllen oder sagen "Ich benutz alles!" und dann den Block um den's sich handelt mit Zufallswerten füllen.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 01.04.09 19:29
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 01.04.09 19:44
Timosch hat folgendes geschrieben : | Wenn du Nullen und Einsen in einen Texteditor tippst, dann werden diese Zeichen als ASCII-/ANSI-/Unicode-Zeichen gespeichert. (Das gehört eigentlich zum Grundwissen des Programmierens...) Aus der Null wird zum Beispiel 30h. Um direkt Zahlen abzuspeichern hol dir halt nen Hex-Editor. |
Du wiedersprichst dir gerade selber. Was ist denn 30h? Das ist doch alles nur ein und der gleiche Wert, nur in anderen Zahlensystem dargestellt. Guck dir mal eine Textdatei im HexEditor an und stell die Anzeige auf binär. Da wirst du nur nullen und einsen sehen. Es ist alles eine eine Interpretationssache. Ein Texteditor wird die nulen und einsen als Text interpretieren und die nullen und einsen als Zeichen darstellen, ein Grafikprogramm wird die nullen und eines als Bitmap interpretieren und die nullen und einsen als Pixel des Bitmaps darstellen. Dies gilt natürlich nur, so lange die nullen und einsen zu dem Dateiformat passen.
Also er hat schon nullen und einsen geschrieben wir er wollte. Nur wahrscheinlich nicht die, die er wollte. 
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mi 01.04.09 19:59
Wenn du einen genetischen Algorithmus schreibst solltest du aber immer das beachten, sonst gehts dir wie Google.
SCNR
@Topic: hat eigentlich mal irgendwer das aus Luckies Artikel nachvollziehen können? Nichtmal BenBEs&Meine Brainfuck-Evo hat ja wirklich funktioniert. Und viel einfacher als eine Turingmaschine kann man eine Simultionsumgebung ja nicht halten...
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|