Ist es möglich das Bearbeiten einer binären Datei mit der Windows-Kommandozeile?

Gibt es eine Möglichkeit in Windows zu Bearbeiten, eine binäre Datei von der Befehlszeile aus? d.h. ein Weg, der geschrieben werden kann in eine batch-Datei?

Möchte ich Bearbeiten können, um ein einzelnes byte, bei einer bekannten position in einer vorhandenen Datei.

Diese bestehende Frage[1] ist gelöst, aber das ist eine Linux-Lösung. Ich bin auf der Suche nach etwas ähnliches für Windows.

Hintergrund

Da ist ein Fehler in GTA 1, wenn Sie heruntergeladen von Dampf, wobei der save-game-Daten-Datei beschädigt verlassen. Als Ergebnis, die Spiel gespielt werden kann, feinen die erste Zeit, aber danach stürzt. Es stellt sich heraus, dies kann behoben werden, indem Sie das 5. byte in der Datei (d.h. das byte an Adresse 0x04) von x00 bis x06[2].

Kann ich dies in Python ganz einfach, z.B.:

with open("PLAYER_A.DAT", "rb") as f:
    bytes = f.read()
bytes = bytes[:4] + '\x06' + bytes[5:]
with open("PLAYER_A.DAT", "wb") as g:
    for b in bytes: g.write(b)

Ideal aber ich würde lieber tun Sie dies in einem batch-job, der das folgende tut:

  • Korrekturen der Daten-Datei
  • startet GTA

Ich könnte machen Sie etwas, das funktioniert für mich (mit Python), aber das würde nicht helfen, beliebige andere Personen, die nicht über Python (ja, ich weiß, es ist leicht zu bekommen & installieren, aber immer noch). Ebenso gibt es eine freeware erhältlich, die behauptet, genau dies zu tun, aber ich nicht wollen, dass es eine zufällige .exe-Datei auf meinem PC, und ich glaube nicht, dass jemand anderes entweder. Aus diesem Grund möchte ich eine batch-Datei, dass die Menschen Sie besichtigen können, und - wenn Sie glücklich sind mit dem, was Sie tut - laufen für sich selbst.

Danke für deine Hilfe!!!

[1] CLI: Schreiben byte an der Adresse (hexedit/ändern (Binär von der Kommandozeile aus)

[2] http://forums.steampowered.com/forums/showthread.php?t=1597746

[Bearbeiten] Fixiert das Python-Skript, wie ich fand es nicht so ist ("Datei.read() liefert ein unveränderliches Objekt, so kann man nicht einfach ein update der Werte).

InformationsquelleAutor sam | 2013-04-05

Schreibe einen Kommentar