wxHexEditor 是一個開放原始碼且跨平台的十六進位編輯器,除了用來編輯檔案之外,也可以直接編輯低階的硬碟磁區。
一般如果在開發比較低階的程式時,通常都會需要處理一些二進位檔案,而二進位檔案沒辦法以一般的文字編輯器來編輯,這時候就需要一個十六進位的編輯器了。
這裡我們介紹一個小巧好用的 wxHexEditor,它是以一套跨平台的 GUI 函式庫 wxWidgets 來開發的,所以它支援各種常見的作業系統(如 Windows、Linux 與 Mac OS 等)。
下面這個是在 Linux 系統中的使用畫面。
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 中的使用畫面。
如果是 Windows 的使用者,wxHexEditor 的網站是有提供編譯好的版本可以下載,但是我自己下載下來之後,卻打不開,據官方網站的敘述,他好像是用 MinGW 的環境編譯的,不知道是不是要先裝 MinGW,有興趣的人可以自己嘗試看看。
參考資料:Xmodulo