Zufallszahl

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
pede
Beiträge: 90
Registriert: 08.07.2007 20:37
Wohnort: brixen / Italien

Zufallszahl

Beitrag von pede »

Wie erzeugt der Computer eig. Zufallszahlen?

hat er dafür ne gewisse Formel oder so?
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

Code: Alles auswählen

Debug Random(Zahl)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
pede
Beiträge: 90
Registriert: 08.07.2007 20:37
Wohnort: brixen / Italien

Beitrag von pede »

ich mein wie der Computer das macht...

der Befehl ist mir ja klar, aber irgendwas muss der Pc ja auch tun damit er die Zahl bekommt...
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yo es gibt verschiedene methoden.
eine findest du in dem verlinkten thread, andere gibts auf wiki...

wie genau die interne berechnung bei PB aussieht, weiß ich nicht,
aber sie ist eigentlich recht gut, ziemlich linear verteilt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Hab's grad mal disassembliert, und irgendwie springt der einfach zu irgend'ner Adresse, die es nicht gibt :freak:

Das ist wahrer Zufall :mrgreen:
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

> springt der einfach zu irgend'ner Adresse, die es nicht gibt
Und welche soll das sein?
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

der springt doch wahrscheinlich zu der adresse der verlinkten funktion.
...vorher müßte er allerdings theoretisch noch den übergabewert pushen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Jepp, den Wert pusht er, und dann springt er halt zu 'ner Adresse, die im Code gar nicht mehr vorhanden ist (und er listet auch keine passende WinAPI-Funktion oder sowas auf).

Das ist mein Code (Hallo und Ciao nur zwecks schnellerer Auffindung):

Code: Alles auswählen

OpenConsole()
Print("HALLO")
Random(10)
Print("CIAO")
und das kommt dabei raus (Auszug):

Code: Alles auswählen

; das ist das Hallo
push 0040300C
call dword ptr [00403050]

; das ist die Random-Funktion
mov eax, 0000000A
call 00404059

; das ist das Ciao
push 00403012
call dword ptr [00403050]
Und die Adresse 00404059 finde ich im Code nicht. Kann sie auch nicht "anjumpen" (unter W32Dasm). Importierte Funktionen werden aber eigentlich angezeigt, und da ist nix dabei, was nach Random klingt. Bin auch nicht der absolute Disassemblier-Freak, aber sowas hatte ich bisher noch nie...
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Die Adresse gibt es aber 100%, benutze OllyDbg, setze
einen BP auf den Call und mit "step into" hineinspringen.
Antworten