web-dev-qa-db-ja.com

UNIXシステムでバイナリファイルを編集する方法

Windowsマシンには、バイナリファイルを編集するためのサードパーティのエディターがたくさんあります。 * nixシステムにも似たようなものが組み込まれているはずです。 UNIXでバイナリファイルを編集するにはどうすればよいですか?

59
Hemant

Ghex2 GNOMEユーティリティを試すこともできます。これにより、自動化された16進数からASCIIへの変換と、下部のさまざまな文字/整数デコードが提供されます。 ghex2
(ソース: googlepages.com

39
Shannon Nelson

Vimでは、:%!xxdと入力して、16進エディタに変換できます。 :%!xxd -r通常モードに戻ります。 xxdはvimインストールで出荷されます。

Vimを使用したバイナリファイルの編集に関するいくつかの備考については here を参照してください(つまり、:set binaryになります)テキストを変更する「R」または「r」コマンド。文字を削除しないでください。

あなたがEmacsファンの場合、Emacsでバイナリファイルを編集する方法のガイドについては、 here を参照してください。

106
Paweł Polewicz

Linux/Unixにはもっと多くのhexeditorsがあります。..

Ubuntuでhexeditを使用します

Sudo apt-get install hexedit
15

wikipedia を確認できます。

[〜#〜] biew [〜#〜] が特に好きです。

10
Francis

Bless は、高品質でフル機能の16進エディタです。

Mono/Gtk#で書かれており、その主なプラットフォームはGNU/Linuxです。ただし、monoおよびGtk#が実行されるすべてのプラットフォームで問題なく実行できるはずです。主な機能Blessは現在、次の機能を提供しています。

  • 大きなデータファイルとブロックデバイスの効率的な編集。
  • マルチレベルの元に戻す-操作をやり直します。
  • カスタマイズ可能なデータビュー。
  • 画面上の高速データレンダリング。
  • 複数のタブ。
  • 高速な検索および置換操作。
  • データ変換テーブル。
  • 高度なコピー/貼り付け機能。
  • ファイル内の一致する選択パターンの強調表示。
  • プラグインベースのアーキテクチャ。
  • データをテキストおよびhtml(プラグインを持つその他)にエクスポートします。
  • データのビット演算。
  • 包括的なユーザーマニュアル。

http://home.gna.org/bless/からコピー

8
Brad Gilbert

以前は bvi を使用していました。

私は hexvi を開発して:%!xxdおよびbviの制限。

hexvi

特徴

  • vimのようなキーバインドとコマンド
  • 特定のオフセットに行く
  • 挿入、置換、削除
  • ものの検索(PCRE正規表現)
  • すべてがコマンドであり、hexvircにマッピングできます
  • カラースキーム
  • 大きなファイルのサポート
  • 複数のファイルのサポート(タブ経由)
  • Pythonなので、ハックするためのエントリレベルはCのレベルより低くなければなりません
  • CLIスルーおよびスルー

短所

  • 2016年3月現在、アルファ版なので機能がありませんが、私はそれらに取り組んでいます:
    • ファイル保存
    • 元に戻す/やり直し
    • コマンド履歴
    • 視覚的選択
    • man page
  • オートコンプリートなし

bvi

特徴

  • vimのようなキーバインドとコマンド
  • 特定のオフセットに行く
  • 挿入、削除、交換
  • ものの検索(テキストと16進数)
  • 元に戻す/やり直し
  • CLIスルーおよびスルー

短所

  • そのvim機能に関して-残念ながら、最も基本的なことしか理解しておらず、この点に関しては間違いなくより多くの愛が必要です(例::wq、ただし:wおよび:q
  • 視覚的な選択は一切サポートしていません
  • タブ/分割画面のサポートなし
  • 頻繁にクラッシュする
  • 大きなファイルのサポートなし
  • コマンド履歴なし
  • オートコンプリートなし
5
rr-

私はKHexEditが好きです。これは [〜#〜] kde [〜#〜] の一部です

その「Windowsスタイル」のUIは、おそらくほとんどの人にとって非常に簡単に習得できます(とにかくVimやEmacsと比較して:)

3
Jonik

軽量のバイナリエディタがあります。hexeditを確認してください。 http://www.linux.org/apps/AppId_6968.html 。少なくともLinuxでELFバイナリを編集するために使用してみました。

2
setzamora

バリアントとして、 radare2 を使用できます。

> r2 -w /usr/bin/ls

[0x004049d0]>V

[0x004049d0 14% 1104 (0x0:-1=1)]> x @ entry0
- offset - | 0 1  2 3  4 5  6 7  8 9  A B  C D  E F| 0123456789ABCDEF
0x004049d0 |31ed 4989 d15e 4889 e248 83e4 f050 5449| 1.I..^H..H...PTI
0x004049e0 |c7c0 103a 4100 48c7 c1a0 3941 0048 c7c7| ...:A.H...9A.H..
0x004049f0 |202a 4000 e877 dcff fff4 660f 1f44 0000|  *@..w....f..D..
0x00404a00 |b807 e661 0055 482d 00e6 6100 4883 f80e| ...a.UH-..a.H...
0x00404a10 |4889 e576 1bb8 0000 0000 4885 c074 115d| H..v......H..t.]
0x00404a20 |bf00 e661 00ff e066 0f1f 8400 0000 0000| ...a...f........
0x00404a30 |5dc3 0f1f 4000 662e 0f1f 8400 0000 0000| ][email protected].........
0x00404a40 |be00 e661 0055 4881 ee00 e661 0048 c1fe| ...a.UH....a.H..
0x00404a50 |0348 89e5 4889 f048 c1e8 3f48 01c6 48d1| .H..H..H..?H..H.
0x00404a60 |fe74 15b8 0000 0000 4885 c074 0b5d bf00| .t......H..t.]..
0x00404a70 |e661 00ff e00f 1f00 5dc3 660f 1f44 0000| .a......].f..D..
0x00404a80 |803d c19b 2100 0075 1155 4889 e5e8 6eff| .=..!..u.UH...n.
0x00404a90 |ffff 5dc6 05ae 9b21 0001 f3c3 0f1f 4000| ..]....!......@.
0x00404aa0 |bf10 de61 0048 833f 0075 05eb 930f 1f00| ...a.H.?.u......
0x00404ab0 |b800 0000 0048 85c0 74f1 5548 89e5 ffd0| .....H..t.UH....
0x00404ac0 |5de9 7aff ffff 662e 0f1f 8400 0000 0000| ].z...f.........
0x00404ad0 |488b 0731 d248 f7f6 4889 d0c3 0f1f 4000| H..1.H..H.....@.

ビジュアルモードでの動作の詳細については、 こちら をご覧ください。

2
AndreyT

私はwxHexEditorを作成しました。これはオープンソースで、C++/wxWidgets GUIライブラリで記述されており、エクサバイトサイズのディスクでも開くことができます。

http://wxhexeditor.sf.net

ちょうど試して。

2
E.U.A.

小さな変更には、hexeditを使用しました。

http://rigaux.org/hexedit.html

シンプルだが高速で便利。

1
bitozoid

wxHexEditor ...の経験が豊富です。ドライブを16進編集している場合は、メニューから実行してください。

Devices -> Open Disk Device -> SCSI Disk Drive Partition #_N_
1
asdf