Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ALWIM
Anmeldungsdatum: 08.08.2006 Beiträge: 1047 Wohnort: Niederbayern
|
Verfasst am: 18.05.2023, 19:23 Titel: Binärdatei lesen? |
|
|
Ich habe im Internet eine Datei gefunden, die zu einem kostenlosen Mühlespielprogramm gehört:
bilder umsonst bearbeiten
Die Datei ist mit Sicherheit im Binärformat. Wie komme ich an den Inhalt ran? Was steht in der Datei letztendlich drin? Ich habe bereits ein paar Tests gemacht, aber kann mit dem was ich sehe nichts anfangen! Ist der Inhalt trotz Open Source verschlüsselt? Die andere Alternative die ich eventuell habe, wäre die Verwendung einer .DLL-Datei. Aber wie verwende ich die mit Freebasic? Sofern das überhaupt möglich ist?
Link zum Programm und Quellcode: http://compalg.inf.elte.hu/~ggevay/mills
Quellcode: http://compalg.inf.elte.hu/~ggevay/mills/dl.php?file=malom_source_1.1.0.zip
Programm: http://compalg.inf.elte.hu/~ggevay/mills/dl.php?file=Malom_binaries_1.1.0.zip
Das Design von dem Programm, ist nicht gerade das beste! Deswegen wollte ich was eigenes entwickeln/schreiben.
Versuche, die Datei zu lesen:
Code: | #INCLUDE ONCE "WINDOWS.BI"
SCREENRES 640, 640, 32
COLOR &hFFFFFF
DIM AS INTEGER i, j, k
DIM AS CBYTE Text(0 TO 9000)
i = 1
DIM AS INTEGER f = FREEFILE
OPEN "std_0_0_9_9.sec2" FOR BINARY AS #f
DO
GET #f,, Text(i)
i += 1
LOOP UNTIL EOF(f)
CLOSE #f |
Mit Binärdateien, habe ich bisher noch nicht viel gemacht. _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1261 Wohnort: Ruhrpott
|
Verfasst am: 19.05.2023, 18:55 Titel: |
|
|
Welche Datei genau meinst du? Das geht aus deinem Beitrag leider nicht hervor. Aber wenn es eine ausführbare Datei ist, wird sie natürlich im Binärformat sein.
Die Quelldateien sind auf jeden Fall in C/C++ und VB geschrieben.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
ALWIM
Anmeldungsdatum: 08.08.2006 Beiträge: 1047 Wohnort: Niederbayern
|
Verfasst am: 19.05.2023, 19:09 Titel: |
|
|
grindstone hat Folgendes geschrieben: | Welche Datei genau meinst du? Das geht aus deinem Beitrag leider nicht hervor. Aber wenn es eine ausführbare Datei ist, wird sie natürlich im Binärformat sein.
Die Quelldateien sind auf jeden Fall in C/C++ und VB geschrieben.
Gruß
grindstone | Es ist eine der Dateien, die zur Datenbank gehört! Siehe Screenshot im 1. Post ganz oben! Es ist keine ausführbare Datei und auch im Quellcode oder dem Programm nicht mit enthalten. Die Datenbank beinhaltet alle Stellungen/Züge bis zum Gewinn, Remis oder verlust! Runterladen kann man die Datenbank leider nur seperat und mit einem Torrent. Ich habe das damals gemacht.
Link: http://compalg.inf.elte.hu/~ggevay/mills/dl.php?file=Malom_Standard_Ultra-strong_1.1.0.torrent
Ich weiß nur nicht, was ich als Datentyp beim Laden mit angeben soll? Wie ist die Datei im Grunde aufgebaut? Binärformat ist klar. Aber welches Binärformat? Wie komme ich an die Informationen der Datei ran? Mir fehlen einfach zu viele Infos...
Ich habe bereits ein paar Tests gemacht, aber nichts was auf eine Information über Züge oder Stellungen hindeutet. _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1261 Wohnort: Ruhrpott
|
Verfasst am: 20.05.2023, 20:30 Titel: |
|
|
Ich gehe mal sehr stark davon aus, daß es sich um ein proprietäres Datenformat handelt. Wenn das Format nicht irgendwo beschrieben ist, wirst du dir wohl die Mühe machen müssen, den Quellcode zu analysieren.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
ALWIM
Anmeldungsdatum: 08.08.2006 Beiträge: 1047 Wohnort: Niederbayern
|
Verfasst am: 20.05.2023, 21:09 Titel: |
|
|
Was ist mit der Datei Wrappers.dll (im Programm mit enthalten)? Gibt es eine Möglichkeit, diese in mein Freebasic-Programm mit einzubinden? Wenn ja, würde mir das auch schon weiterhelfen. Ich habe im Grunde 2 Programme für Mühle. Eines der Programme (BrillantMill) habe ich mal für ca. 60 Euro gekauft und ist nur für 1 Computer. Das andere Programm (Malom), läuft nur auf 64-bit Rechner. Aber ich will ja auch in erster Linie verstehen, wie so etwas aufgebaut ist bzw. funktioniert! Das Thema fasziniert mich einfach.
Zitat: | Wenn das Format nicht irgendwo beschrieben ist, wirst du dir wohl die Mühe machen müssen, den Quellcode zu analysieren. | Beschrieben, ist das Format nirgends! Leider...
Trotzdem, erstmal danke für die Info! _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1261 Wohnort: Ruhrpott
|
Verfasst am: 21.05.2023, 04:32 Titel: |
|
|
Du kannst eine .dll in Fb einbinden (siehe das entsprechende Tutorial), sofern es in der gleichen Version (32/64bit) vorliegt wie dein FB Compiler. Du müsstest dann "nur" die dazugehörige Header-Datei finden und nach FB übersetzen (meistens von C/C++).
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
ALWIM
Anmeldungsdatum: 08.08.2006 Beiträge: 1047 Wohnort: Niederbayern
|
Verfasst am: 21.05.2023, 17:41 Titel: |
|
|
grindstone hat Folgendes geschrieben: | Du kannst eine .dll in Fb einbinden (siehe das entsprechende Tutorial), sofern es in der gleichen Version (32/64bit) vorliegt wie dein FB Compiler. Du müsstest dann "nur" die dazugehörige Header-Datei finden und nach FB übersetzen (meistens von C/C++).
Gruß
grindstone | Header-Datei gibt es glaube ich nicht? Wenn ich mir das Programm (allein nur das Programm) so anschaue, finde ich nur eine Wrappers.dll! Wenn, dann gibt es diese Header-Datei nur beim Quellcode?! Irgendwo habe ich mal gelesen, dass man .dll Dateien mit Freebasic (ohne Header-Datei) verwenden kann?
Zitat: | Wenn das Format nicht irgendwo beschrieben ist, wirst du dir wohl die Mühe machen müssen, den Quellcode zu analysieren. | Wenn ich jetzt wüsste, wo das im Quellcode drin steht?! Habe mir den Quellcode schon mehrmals angeschaut. Irgendwas übersehe ich da?
Ps.: Habe mir jetzt mal schnell die neue Compilerversion (1.10.0) runtergeladen... _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4679 Wohnort: ~/
|
Verfasst am: 21.05.2023, 19:00 Titel: |
|
|
Auf jeden Fall würde ich mir die Binärdatei ncht als String anzeigen lassen; da sieht man in der Regel nichts. Lass dir lieber die Zahlenwerte der einzelnen Byte anzeigen, vielleicht ist das aufschlussreicher.
Prinzipiell brauchst du keine Header-Datei, wenn du weißt, wie die DLL aufgebaut ist (aber genau das beschreibt die Header-Datei ja). Als Hilfe für die Suche: In C++ haben Header-Dateien normalerweise die Endung .h _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
ALWIM
Anmeldungsdatum: 08.08.2006 Beiträge: 1047 Wohnort: Niederbayern
|
Verfasst am: 21.05.2023, 21:12 Titel: |
|
|
nemored hat Folgendes geschrieben: | Auf jeden Fall würde ich mir die Binärdatei ncht als String anzeigen lassen; da sieht man in der Regel nichts. Lass dir lieber die Zahlenwerte der einzelnen Byte anzeigen, vielleicht ist das aufschlussreicher.
Prinzipiell brauchst du keine Header-Datei, wenn du weißt, wie die DLL aufgebaut ist (aber genau das beschreibt die Header-Datei ja). Als Hilfe für die Suche: In C++ haben Header-Dateien normalerweise die Endung .h |
Danke für die Info! Ich muss mal ein paar Tests machen...
Dass eine Header-Datei die Endung .h hat, weiß ich. Habe die beim Programm nicht gefunden, da in dem Ordner kein Quellcode drin ist.
Zitat: | Auf jeden Fall würde ich mir die Binärdatei ncht als String anzeigen lassen; da sieht man in der Regel nichts. Lass dir lieber die Zahlenwerte der einzelnen Byte anzeigen, vielleicht ist das aufschlussreicher. | Das heißt dann, nicht als String deklarieren, sondern als Byte oder? _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4679 Wohnort: ~/
|
Verfasst am: 21.05.2023, 23:05 Titel: |
|
|
ALWIM hat Folgendes geschrieben: | Zitat: | Auf jeden Fall würde ich mir die Binärdatei ncht als String anzeigen lassen; da sieht man in der Regel nichts. Lass dir lieber die Zahlenwerte der einzelnen Byte anzeigen, vielleicht ist das aufschlussreicher. | Das heißt dann, nicht als String deklarieren, sondern als Byte oder? |
Ja, und dann immer gleich nach dem Einlesen ausgeben, da die Variable ja beim Einlesen des nächsten Bytes wieder überschrieben wird. Alternativ kannst du natürlich auch das Einlesen lassen wie bisher, dann aber vom String zeichenweise den ASCII-Code ausgeben lassen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
|