Có cách nào trong Windows để chỉnh sửa tệp nhị phân, từ dòng lệnh không? tức là một cách có thể được viết thành một tập tin thực thi?Có thể chỉnh sửa tệp nhị phân bằng dòng lệnh của Windows không?
Tôi muốn có thể chỉnh sửa một byte đơn, tại vị trí đã biết, trong tệp hiện có.
Câu hỏi hiện có [1] này đã được giải quyết, nhưng đó là giải pháp Linux. Tôi đang tìm một cái gì đó tương tự cho Windows.
nền
Có một lỗi trong GTA 1 khi tải về từ Steam, theo đó các tập tin dữ liệu lưu trò chơi bị hỏng trên lối ra. Kết quả là, trò chơi có thể chơi tốt lần đầu tiên nhưng sau đó bị treo. Nó chỉ ra điều này có thể được cố định bằng cách thay đổi byte thứ 5 trong tập tin (tức là byte tại địa chỉ 0x04) từ x00 đến x06 [2].
tôi có thể làm điều này bằng Python dễ dàng, ví dụ:
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)
Lý tưởng nhất dù tôi thà làm điều này trong một công việc hàng loạt nào sau đây:
- sửa các tập tin dữ liệu
- ra mắt GTA
Tôi có thể tạo ra điều gì đó phù hợp với mình (sử dụng Python), nhưng điều đó sẽ không giúp người khác ngẫu nhiên không có Python (vâng tôi biết thật dễ dàng để cài đặt &, nhưng vẫn còn). Tương tự như vậy, có một phần mềm miễn phí có sẵn mà tuyên bố để làm điều này, nhưng tôi không muốn chạy một ngẫu nhiên .exe trên máy tính của tôi, và tôi không nghĩ rằng bất cứ ai khác nên hoặc. Vì lý do đó, tôi muốn trình bày một tập tin thực thi, mà mọi người có thể kiểm tra, và - nếu họ hài lòng với những gì nó làm - chạy cho chính họ.
Cảm ơn sự giúp đỡ của bạn!
[1] CLI: Write byte at address (hexedit/modify binary from the command line)
[2] http://forums.steampowered.com/forums/showthread.php?t=1597746
[sửa] Cố định lên kịch bản Python, như tôi thấy nó đã không làm việc như nó vốn có (file.read() trả về một đối tượng bất biến , vì vậy bạn không thể chỉ cập nhật một trong các giá trị).
Nhưng ai xác minh rằng * SPLITS.EXE * không bị sửa đổi? Nó cũng có thể là một .exe ngẫu nhiên. – ComFreek
Như ComFreek nói, nếu tôi hạnh phúc để chạy một exe ngẫu nhiên tôi chỉ cần sử dụng GTALauncher.exe mà sửa chữa các tập tin và khởi động GTA :-) – sam
Vâng, cho rằng không có cách nào để làm điều đó trong DOS (ít nhất, không có cách tôi đã từng khám phá ra) bạn sẽ phải gửi một tiện ích trợ giúp với tập lệnh - hoặc chỉ đóng gói giải pháp dưới dạng tệp .exe và gửi đi. Tôi cho rằng sự khác biệt là nếu bạn gửi một tiện ích bên thứ ba có sẵn miễn phí cùng với tập lệnh, nó có thể được so sánh với cùng một tiện ích từ các nguồn khác (hy vọng là có uy tín) trong khi gói .exe tùy chỉnh không thể. –