Hex Editor automatisieren
-
Ich sehe ehrlich gesagt keine Fehler im netz steht das "0 length arrays" unter gnu erlaubt sind. Warum es mit Index 1 nich funktionierte...was weiss ich ^^
Ja es hat geklappt, ich habe die Files mit nem Hex Editor mit den Originalen verglichen und der einzige Unterschied ist jeweils das eine Byte welches ich um 1 erhöht habe. Auch beim Testen des ISOs erzielte ich keine Fehler und die gewünschte Veränderung.
-
Du siehst keinen Fehler darin, das erste Element eines Arrays der Länge Null zu benutzen? Selbst wenn es legal wäre, Arrays der Länge Null (außerhalb der letzten Datenmember von Structs) zu deklarieren, müsste ziemlich offensichtlich sein, dass das Unfug ist.
-
Karabellum schrieb:
Ich sehe ehrlich gesagt keine Fehler im netz steht das "0 length arrays" unter gnu erlaubt sind.
Erlaubt: Mag sein. Aber was ist das erste Element eines Arrays ohne Elemente, welches du fröhlich benutzt? Das ist irgendetwas hinter dem eigentlichen Array. Das heißt, du schreibst und liest hier fröhlich in andere lokale Variablen hinein. Je nach dem, wie die Variablen genau auf dem Stack angeordnet sind, könntest du dir damit zum Beispiel dein Offset zerschießen. Deshalb wundere ich mich auch gerade sehr, dass es funktioniert, denn ich hatte in Erinnerung, dass der GCC ohne Optimierung die Variablen einfach in der Reihenfolge anordnet, wie sie im Programm auftauchen, so dass du hier tatsächlich unabsichtlich im Offset rumpfuschen würdest. Vielleicht irre ich mich auch mit der Reihenfolge. Oder du hast Optimierungen aktiviert und hast Glück, dass "nur" im unbenutzten Dateinamen rumgeschrieben wird. Oder du merkst gar nicht, dass das Programm falsch gelaufen ist. Jedenfalls eine ganze Menge Glück, wenn das wirklich funktioniert haben sollte. Oder Pech, weil du nun nicht einmal einsiehst, dass das falsch ist und dir das falsch einprägst. Beim nächsten Mal geht's dann schief.
Warum es mit Index 1 nich funktionierte...was weiss ich ^^
Da sind garantiert noch mehr Fehler drin, denn allein die Verwendung eines Arrays ist schon falsch. Wozu soll man bitte ein Array mit einem Element brauchen? Da nimmt man einfach eine einzelne Variable. Ich habe vorhin nur oberflächlich über den Code geschaut und dies waren die Fehler, die mir sofort ins Auge sprangen. Wenn du noch einmal den fehlerhaften Code mit genauer Fehlerbeschreibung zeigst, kann man sich das mal genauer ansehen.
-
Ein unentdecktes Fehlverhalten des Programms ist ausgeschlossen. Es hat die Aufgabe genau 1 Byte zu verändern, wenn am File irgendwas sonst anders wäre, hätte der Hex Editor das beim Vergleich gefunden.
Dass Array[0] komisch is weiss ich auch aber er sagte ja "so viele Fehler" der Rest sollte aber ok sein.
Und ich merke mir das auch nich so, int und array[1] funktionierten nich deswegen hab ich was anderes probiert und warum das funzt - nix für Ungut Jungs - is mir in diesem Einzelfall dann ehrlich gesagt egal.
Das Programm hab ich doch auf der letzten Seite gepostet, wenn du es dir genauer ansehen willst nur zu. Fehlermeldungen gab es keine.
-
Ich hoffe, dass du in einem halben Jahr, wenn du dir ein bisschen Ahnung erarbeitet hast, auf diesen Thread zurückblickst und er dir richtig peinlich ist. Mehr kann ich dazu wirklich nicht mehr sagen.
-
Das hoffst du ? Finde ich aber nicht sehr nett
Deine Missgunst verstehe ich in keinem Fall.
-
Karabellum, SeppJ und seldon wollen dir nur helfen.
Mag sein, dass dein Programm - so wie es jetzt kompiliert wurde mit diesen Einstellungen und Compiler - funktioniert. Wie SeppJ schon sagte, Glück gehabt.
Aber wenn du in der Zukunft so weiter programmierst, wirst du vielleicht kein Glück mehr haben. Dann wird die von uns allen so geliebte Windowsfehlermeldung (sofern du Windows benutzt), die aussagt, dass dein Programm nicht mehr funktioniert. Und dann wirst du die nächsten Stunden/Tage/Wochen* damit verbringen, herauszufinden, wo du Speicher bearbeitest, der dir nicht gehört.
Und davor wollen wir dich schützen. Wir haben diese Fehler schon alle gemacht.
Wir wollen nicht, dass du sie auch machst.
Aber wenn du nicht willst, ok!
Sag später nur nicht, wir hätten dich nicht gewarnt...*Ernsthaft; ich übertreibe nicht. Mit etwas Glück gehts schneller, aber das Umschreiben wird lange dauern.
-
Is mir schon klar aber warum muss man sich da aufregen? Ich habe ja bereits gesagt dass ich das nicht so weiterverwenden werde oder mir merke dass das richtig ist oder so. Ich brauchte dieses Programm jetzt für eine bestimmte Sache und es ging mir nur darum die zuende zu bringen, danach brauche ich das nie wieder.
Ich bin mit der Sache jetzt fertig geworden und da gibt es dann eigentlich nichts mehr zu zusagen. Wär ich selbst Moderator TOPIC CLOSED
-
Auch wenn du es vermutlich eh nicht mehr liest:
Karabellum schrieb:
Is mir schon klar aber warum muss man sich da aufregen?
Sie regen sich nicht auf, sie sind ganz sachlich geblieben.
Ich habe ja bereits gesagt dass ich das nicht so weiterverwenden werde oder mir merke dass das richtig ist oder so. Ich brauchte dieses Programm jetzt für eine bestimmte Sache und es ging mir nur darum die zuende zu bringen, danach brauche ich das nie wieder.
Trotzdem wäre es besser, sich falsche Dinge nicht anzugewöhnen.
Das denkst du später dann vielleicht auch und dann gehts nicht mehr.
Sieh es einfach als Übung.
-
Klar les ich das. Und du hast Recht genau wie deine Vorredner. Und sie haben mir ja auch geholfen sehr sogar. Is doch alles gut ^^