wxHexEditor 是一個開放原始碼且跨平台的十六進位編輯器,除了用來編輯檔案之外,也可以直接編輯低階的硬碟磁區。

一般如果在開發比較低階的程式時,通常都會需要處理一些二進位檔案,而二進位檔案沒辦法以一般的文字編輯器來編輯,這時候就需要一個十六進位的編輯器了。

這裡我們介紹一個小巧好用的 wxHexEditor,它是以一套跨平台的 GUI 函式庫 wxWidgets 來開發的,所以它支援各種常見的作業系統(如 Windows、Linux 與 Mac OS 等)。

下面這個是在 Linux 系統中的使用畫面。

wxHexEditor


wxHexEditor 除了有一般十六進位編輯器的功能之外,它還可以直接針對硬碟的磁碟分割表或一般的磁區來編輯(當然如果要做這件事,你必須先知道自己在做什麼,否則硬碟的料可能會被你弄壞掉!),而且對於大容量磁碟的支援也很不錯,最大可以到 EB 的等級(1EB=1024PB,1PB=1024TB,1TB=1024GB)。

以下是一些 wxHexEditor 的特色:

  • 使用 64 位元定址,支援 2^64 bytes 的檔案或磁碟大小。
  • 支援快速大檔案編輯。
  • 在插入或刪除多個位元資料時,不需要使用暫存檔。
  • 記憶體的使用量非常低(開啟幾 GB 的資料只需要 25MB 的記憶體)。
  • 支援各種機械碼的反組譯(x86、x86-64、MMX、SSE、SSE2、SSE3、AMD-V、Intel VT-x)。
  • 支援行程記憶體(process memory)的編輯。
  • 可以處理 XOR Obfuscation 問題。
  • 可以同時以多個視窗編輯多個檔案。
  • 支援各種編碼(UTF8/16/32、Shift JIS、GBK、EUC 等)。

若在 Linux 中要安裝 wxHexEditor,除非你剛好可以使用官方以 OpenSuSE 12.1 編譯好的版本,否則一般的 Linux 大概都要自行編譯安裝。

以下是在各種 Linux 下的安裝方式,基本上步驟都差不多,不外乎安裝一些必要套件,並下載 wxHexEditor 的原始碼來編譯。

Debian 系統:

sudo apt-get install debhelper libdisasm-dev libmhash-dev libwxbase2.8-dev libwxgtk2.8-dev wx-common wx2.8-headers
svn checkout svn://svn.code.sf.net/p/wxhexeditor/code/trunk wxHexEditor
cd wxHexEditor
make OPTFLAGS="-fopenmp"

Ubuntu 系統要加入 GetDeb Apps 這個 repository:

wget -q -O – http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
sudo sh -c 'echo "deb http://archive.getdeb.net/ubuntu $(lsb_release -cs)-getdeb apps" >> /etc/apt/sources.list.d/getdeb.list'
sudo apt-get update
sudo apt-get install wxhexeditor

Fedora 系統則是使用 yum

sudo yum install libtool gcc-c++ wxGTK-devel
svn checkout svn://svn.code.sf.net/p/wxhexeditor/code/trunk wxHexEditor
cd wxHexEditor
make OPTFLAGS="-fopenmp"

若在 CentOS 或 RHEL 系統,就先啟用 Repoforge 這個 repository,再按照 Fedora 的方式編譯。

如果你在 Fedora 上編譯出現下面這個問題:

/lib/libgbm.so.1: undefined reference to `wayland_buffer_is_drm’

那麼更新一下 mesa-libgbm 應該可以解決:
sudo yum install mesa-libgbm

如果是 Mac OS 的使用者,可以直接從 wxHexEditor 的網站下載打包好的 DMG 安裝檔,解壓縮之後,跟一般軟體的安裝方式一樣,把 wxHexEditor 的圖示拖進「應用程式」中即可。

下面這個是在 Mac OS 中的使用畫面。

wxHexEditor-mac

如果是 Windows 的使用者,wxHexEditor 的網站是有提供編譯好的版本可以下載,但是我自己下載下來之後,卻打不開,據官方網站的敘述,他好像是用 MinGW 的環境編譯的,不知道是不是要先裝 MinGW,有興趣的人可以自己嘗試看看。

參考資料:Xmodulo