Bug's durch CD-Kratzer oder "falsch kopierte" Date

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Bug's durch CD-Kratzer oder "falsch kopierte" Date

Beitrag von Scarabol »

Hi Leute,

1. Ist es möglich das Kratzer auf einer CD Bugs im Spiel auslösen?
Eigentlich doch nicht, oder?
2. Ist es möglich das ich in meinen Code schreibe PokeL(10) und später (2 Tage oder so) bei PeekL() kommt dann 9 raus?
(Is mir schon klar das das so nicht funktioniert, aber meine mit Poke und Peek eher das mans auf Festplatte schreibt...)

Falls ich mit meinen Vermutungen recht hab wie kann ich mich als Progger schützen?
Vielleicht immer ein PeekL() hinterherschicken aber selbst das könnte doch einen falschen Wert geben oder?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

1.) Theoretisch ja, praktisch aber eher unwahrscheinlich, viel wahrscheinlicher wäre, dass dein Spiel dann gar nicht startet, sondern irgendeine Fehlermeldung ausspuckt (oder Windows ne Fehlermeldung anzeigt, weil die EXE nich ausführbar ist). Du könntest die EXE signieren, dann weiss man im Falle einer beschädigten/manipulierten EXE sofort, was Sache ist.

2.) Ich habe nicht die leiseste Ahnung, was du da geschrieben hast... :?
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

2. Ist das gleiche wie CD nur auf der HDD...

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Wenn das, was du bei 2. geschrieben hast, "von alleine" öfters vorkommt, bieten sich dir 2 Möglichkeiten:
1.) Du fängst ganz schnell an zu beten, und dankst Gott, dass dein PC überhaupt noch bootet
2.) Du legst dir ne neue Festplatte/neues Mainboard/neuen PC zu

Ansonsten: Machs doch mit nem MD5-Hash oder ner CRC32-Checksumme...
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

AFAIK hat gnozal da sogar mal ne lib dazu geschrieben...
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Re: Bug's durch CD-Kratzer oder "falsch kopierte"

Beitrag von ZeHa »

Scarabol hat geschrieben:2. Ist es möglich das ich in meinen Code schreibe PokeL(10) und später (2 Tage oder so) bei PeekL() kommt dann 9 raus?
(Is mir schon klar das das so nicht funktioniert, aber meine mit Poke und Peek eher das mans auf Festplatte schreibt...)

Falls ich mit meinen Vermutungen recht hab wie kann ich mich als Progger schützen?
Vielleicht immer ein PeekL() hinterherschicken aber selbst das könnte doch einen falschen Wert geben oder?
Scarabol hat geschrieben:2. Ist das gleiche wie CD nur auf der HDD...
Also so wie ich das verstehe, willst Du mit diesem Beispiel fragen, ob es möglich ist, daß sich auf der Festplatte einfach so ein paar Bits ändern können? Oder wie? Rein theoretisch kann sowas auftreten wenn Du 'nen Fehler im Dateisystem hast, das kann z.B. passieren wenn der Rechner gerade was draufschreibt und es plötzlich 'nen Stromausfall gibt. Dann stimmt das, was eigentlich draufgeschrieben werden sollte, nicht ganz mit dem überein, was tatsächlich draufsteht - aber meist bezieht sich das dann auch nur auf die Datei, die gerade geschrieben wurde (hängt dann aber wohl auch wiederum vom Dateisystem ab).

Oder kannst Du Deine Frage nochmal ein wenig genauer stellen?
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Tatsächlich könnte es passieren, dass sich einfach mal ein Wert auf der Festplatte ändert. Magnetfelder können umkippen, Astronomische Hintergrundstrahlung könnte ausgerechnet ein einzelnes Bit treffen usw. Das fällt dann aber auf, weil dann auch die Checksumme deines Dateisystems nicht mehr stimmt. Das könnte also nur passieren, wenn zwei Bits umkippen im selben Bereich. Das ist aber *extrem* unwahrscheinlich, wenn du solch ein verhalten bemerkst, dann ist eher der Datenträger kaputt.

Das kann bei einem schlecht geschriebenen Spiel auch zu Bugs führen. Ist wegen eines beschädigten Datenträger zb eine Textur nicht Ladbar und wird diese Tatsache vom Programm ignoriert kann das zu komischen Verhalten führen. Die Frage ist aber, ob das dann nicht sowieso als Bug im Programm zu betrachten ist.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

@Hardfalcon
Nene ich red nicht von einem realen Problem war nur hypothetisch, weil ich mich gewundert hab das einige Spiele es total ignorieren wenn das Laden von Daten eben durch solche Fehler fehlschlägt und wie die anderen schon geschrieben haben sollte es doch kein großer Umstand sein dies herauszufinden...

@Milan
Was für eine Lib? Die Speicherfehler erzeugt?

@Zaphod
Du hast es erfasst...
Na dann werd ich meinen PC wohl mal gegen Strahlung schützen ;-)

Aber mal im Ernst ich bräuchte doch nur mit der Checksumme prüfen ob noch alles ok ist oder?

Aber wie kommt es dann das folgendes passiert?
1. Ich hab das Spiel fehlerfrei installiert
2. Ich kann das Spiel einwandfrei spielen
3. An einer bestimmten Stelle stürzt das Spiel ab, unabhängig davon wie ich mich als Spielfigur verhalte, wenn ich diesen Punkt erreiche Schmiert es ab...
4. Daraus folgere ich mal das irgendwas auf der CD von der ja installiert wurde nicht stimmt (Kratzer), aber wieso merkt das Spiel das nicht? Haben die Programmierer (eigentlich denke ich fähige Leute von einem großen Spielehersteller) Mist gebaut?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Scarabol hat geschrieben:@Hardfalcon
Nene ich red nicht von einem realen Problem war nur hypothetisch, weil ich mich gewundert hab das einige Spiele es total ignorieren wenn das Laden von Daten eben durch solche Fehler fehlschlägt und wie die anderen schon geschrieben haben sollte es doch kein großer Umstand sein dies herauszufinden...
Wenn Du ein Spiel programmierst, überprüfst Du dann bei jedem Laden einer Textur oder eines Sounds die Daten? Wie bitte soll das gehen? Checksummen sind die einzige Lösung, und sowas ist eigentlich nur sinnvoll bei Dingen, die mit Cheating oder sowas zu tun haben (also die Levelmatrix z.B.), aber selbst da machen es viele nicht, wozu auch.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Ähm ja mach ich,
wusste aber jetzt nicht das das sooo ungewöhnlich ist, das gehörte bei mir bis jetzt immer zu dem Teil im Projekt "Program DAU sicher machen".

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Antworten