PureBasic mit Blender?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

ganz vom thema abgekommen :roll:
welcher compiler ist den free und aktuell? (c++)
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

sen-me hat geschrieben:ganz vom thema abgekommen :roll:
welcher compiler ist den free und aktuell? (c++)
Siehe hier:
Bei Dev-C++ ist MingW mitbei und komischer weiße kann de endl;
was nix anderes ist als \n + flush
Der ist aktuell, wenn man sich eine der neueren Versionen von der Website herunterläd.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

>dan zeig mir mal 2 zeichenfolge die den selben 32 langen zeichensatz ausgibt

eventuell bedeutet, soviel wie: vieleicht
es ist nicht bewiesen dass zwei strings immer unterschiedliche md5 ergebnisse haben, das gegenteil aber auch nicht.
was bleibt ist die sichere erkenntnis, dass das verfahren unumkehrbar ist. du kannst dich also schwarzrechnen, du wirst keine eindutige umkehrung finden.


wenn dein compiler kein endl akzeptiert hat, dann hast du entweder versucht c++ code mit einem reinen c kompiler zu übersetzen (bzw hast deinem kompiler unabsichtlich klargemacht das er das ganze als c und nicht als c++ betrachten soll) oder du hast einen fehler gemacht.
endl ist bestandteil der standard bibliothek, die *jeder* c++ compiler kennt.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Zaphod hat geschrieben: eventuell bedeutet, soviel wie: vieleicht
es ist nicht bewiesen dass zwei strings immer unterschiedliche md5 ergebnisse haben, das gegenteil aber auch nicht.
Es gibt mit 100%iger Sicherheit mehrere Texte die den selben Zeichensatz audgeben, sonst wär er umkehrbar.
Außerdem gibt es doch garnicht genügend Zeichensätze für jeden Text.
Sobald du belibige Texte mit über 32 Zeichen hast gibt es auch gleiche Sätze.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

der fingerprint ist 32 zeichen lang, der eingabe text muß nicht 32 zeichen lang sein. es wird angenommen das keine zwei eingaben den selben md5 erzeugen und es schien lange zeit richtig zu sein, aber es hat noch niemand beweisen können. tatsächlich gibt es im moment einige zweifel.

die unumkehrbarkeit steht wohl aber fest.
Crossbow
Beiträge: 16
Registriert: 29.07.2005 12:40
Wohnort: Schweiz

Beitrag von Crossbow »

Hi.

Wegen dem Entschlüsseln: Für einen der den Computer so versteht das er auch denken kann wie er (Extrem Freak), für den sollte das doch eigentlich schon möglich sein.
Den der Computer muss ja den Code Irgendwie umwandeln.
Schlussentlich Wandelt der Computer das gaze so oder so in 1 und 0 um.
Da wird es doch wohl möglich sein dem Computer den Befehl zu geben das er diesen 1 und 0 Code rausspuckt.
Wenn man das erreicht hat braucht man nur noch ein Programm dass das ganze in C++ umwandelt.
Was meint ihr zu dieser Theorie?

MfG Sämi
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Es kann schon stimmen, dass man es nie schaffen würde einen 2. String zu finden, aber theoretisch gibt es 1000de von Strings die das selbe ergeben. :allright:
Das wusste man auch als er erfunden wurde, aber man ging davon aus, dass Computer nie schnell genug rechnen können um einen 2. zu finden.

Code: Alles auswählen

Text1.s = "PureBasic"
MD1.s = MD5Fingerprint(@Text1, Len(Text1))
OpenWindow(0, 0, 0, 25, 25, #PB_Window_BorderLess, "")
CreateGadgetList(WindowID(0))
ButtonGadget(0,0,0,25,25, "END") 

#Seed = $00000001
RandomSeed(#Seed) ; Hier Zahl ändern!
Repeat 
  If A = 5000
    Delay(0)
    If WindowEvent() = #PB_Event_Gadget : End : EndIf
    A = 0
  EndIf
  A+1
  Text2.s = Hex(Random($FFFFFFF)) + "#" + Hex(Random($FFFFFFF)) + "&" + Hex(Random($FFFFFFF)) + "!!!" + Hex(Random($FFFFFFF))
  
Until MD1 = MD5Fingerprint(@Text2, Len(Text2))
CloseWindow(0)

MessageRequester("Übereinstimmung: " + MD1, "Das Programm hat bei "+Text1+" und "+Text2+"eine Übereinstimmung gefunden")
SetClipboardText(MD1+"/"+Text1+"/"+Text2)
Könnt ja mal testen ob ihr zufällig einen findet (Aber ändert bitte #Seed) :wink:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

der computer wandelt nichts um. dein ausführbares programm ist in der sprache, die dein prozessor versteht. c++ ist praktisch die sprache, die für den menschen gedacht ist um dem computer etwas klarzumachen.

der compiler übersetzt den c++ code in die sprache die dein prozessor versteht. da man in c++ viel mehr elemente hat um etwas zu formulieren ist diese übersetzung nur in eine richtung eindeutig, nämlich von c++ nach maschinensprache. wenn du nun versuchst maschinensprach in c++ umzuwandeln, gibt es erstens eine extrem große anzahl an varianten in c++, die den selben maschinencode erzeugen würden und zweitens versteht der compiler natürlich nicht den menschlichen kontext in dem der c++ code gemeint war.
woher sollte dein decompilierer wissen, dass speicherzelle 532341 die x coordinate eines bauern im spiel sein sollte? der dekompiler könnte nichtmal mehr feststellen, ob das vorher teil eines objektes war oder nicht, denn solche konzepte gibt es auf maschinensprach ebene schlicht und einfach nicht. es würde also irgendetwas herauskommen, das für einen menschen überhaupt keinen sinn ergäbe.

da kannst du dir den maschinencode auch direkt in einem hexeditor anschauen und hier und da ein bischen drann rumstochern .
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Laut Wikipedia ist es schonmal jemandem gelungen, einen identischen MD5 herzubekommen, aus einem anderen nicht identischen String. Sowas in der Art stand dort jedenfalls, was natürlich nicht zwangsweise stimmen muss. Aber ist schon erdenklich denn soooo viele Kombinationen gibt es ja nicht bei 32 Zeichen.


Wo wir gerade bei solchen Kuriositäten sind: Wie bekannt ist, ist die Zahl PI ja unendlich. Zusammen mit einem Kumpel hatten wir uns mal überlegt, ob man nicht aus PI ein komplettes Programm basteln könnte. Oder anders gesagt, es ist theoretisch möglich, dass der Programmcode eines beliebigen Programms irgendwann mal genau so in der korrekten Ziffernfolge in der Zahl PI in den Nachkommastellen vorkommt. Man müsste diese Stelle nur ausfindig machen, einen Algorithmus zum errechnen der Stellen im Programm mitliefern und könnte sich daraus das Programm generieren. Das bedeutet, aus einer einfachen Zahl und einem Algorithmus, passt auf eine Diskette, kann man ein beliebig großes Programm herauszaubern.^^
(Alles rein theoretisch, aber da PI unendlich ist, ist es wohl möglich, dass nach mehreren Zig-Trilliarden Stellen plötzlich die korrekte Zahlenfolge unseres Programms erscheint. Wenn nicht, wird weiter gesucht, unendlich geht ja recht lange.^^ Irgendwann finden wir's schon...)
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

maschinensprache kann kein mensch lesen

das siehst du überall, denn du weist nicht, wo jetzt bei
10110110101110010111001111100001101010101110
der anfang eines strings ist und wo das ende
Antworten