ImHex火了有一陣子了,像這樣
機器之心:狂攬2500星,開源十六進制編輯器登頂GitHub熱榜365 贊同 · 36 評論文章
ImHex是什麼?
那麼這麼火他到底是個什麼呢?
ImHex是一款功能強大的十六進制編輯器,該工具專為逆向工程分析師、編程開發人員以及那些想好好保護自己眼睛的安全人員所設計。哪怕你每天工作到凌晨三點(雖然不建議),也不會傷害你的眼睛!
為什麼這麼火呢?
首先一定是顏值
上截圖


其次,一定是開源特性
ImHex是一款開源的十六進制編輯器。開源地址為
使用C++20編寫,內部使用插件式管理方法加載窗體,其擴展性非常的強,開發上手也很快。
相比之下,一些編輯器如010Edit,作為閉源產品收費較貴,顯然ImHex讓開源社區眼前一亮,都有一種“我也能開發編輯器的感覺”,而且事實上也確實是這樣
下面就讓我們來試試這款 raising star
編譯ImHex
首先系統選擇Ubuntu20.04
不要問問為什麼不是ubuntu18,16,問了就是不符合編譯要求,要麼是這些系統上編譯工具版本低,缺少一些新的特性,要麼就是依賴安裝不上
安裝依賴
apt install -y
build-essential
gcc-10
g++-10
lld
${PKGCONF:-}
cmake
make
ccache
libglfw3-dev
libglm-dev
libmagic-dev
libmbedtls-dev
python3-dev
libfreetype-dev
libgtk-3-dev
echo "Please consider this before running cmake (useful on e.g. Ubuntu 20.04):"
echo "export CXX=g++-10"
注意:
在cmake運行前要,export CXX=g++-10,否則彙報有些頭文件找不到的錯誤,例如span頭文件

拉取倉庫
git clone --recurse-submodules https://github.com/WerWolv/ImHex.git上面這個參數–recurse-submodules一定要加,因為該倉庫還引用了一些其他倉庫的代碼,需要同時拉取。
編譯
倉庫拉取完畢之後,就是編譯了,回到項目根目錄
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j這段編譯得有一段時間,稍等一會。

在老舊的機器上記得限制一下make的job的數量,例如`make -j4`,反正我年老的mac虛擬機死了很多次
-j [jobs], --jobs[=jobs]
Specifies the number of jobs (commands) to run simultaneously.
If there is more than one -j option, the last one is effective. If
the -j option is given without an argument, make will not
limit the number of jobs that can run simultaneously.
這CPU佔用率,可憐了我的老mac

這CPU佔用率,可憐了我的老mac
截圖
可憐我的老mac,最終還是提出了抗議。

最終,只能在mac下編譯,成功!
編譯總結
主要工作在處理依賴和拉取子模塊上,需要注意一些細節。
打完收工!
失敗嘗試
使用鏡像站的坑
插曲 都知道github在牆的作用下,異常的慢。小明同學在拉取倉庫的過程中,始終不能成功 作為合法公民的小明同學怎麼能爬梯子呢? 所以使用了鏡像源,https://github.com/ –>
https://github.com.cnpmjs.org/ 把所有的上述字符串進行替換就行了,比如我們的拉取命令 git clone –recurse-submodules https://github.com.cnpmjs.org/WerWolv/ImHex.git 但是問題來了,submodules怎麼辦呢? 不要着急,先拉去ImHex的原來,然後我們找到項目下有個.gitmodules的文件(隱藏文件,直接vim就可以),像這樣完成替換。 vim替換命令拿走不謝
%s/github.com/github.com.cnpmjs.org/g 
然後在項目路徑./lib/external/下分別拉取上述源,笨辦法 這裡需要問小夥伴的問題是,我這裡替換了裡面的字符串,為什麼用git submodules update,不管用呢?? 有知道的小夥伴望告知一下,感激不盡!!!
該方案也存在一個問題就是:鏡像站的鏡像可能不是最新的,例如在編譯本項目的過程中view_disassembler.cpp:305:109: error: use of undeclared identifier ‘CS_MODE_BPF_CLASSIC,在舊的鏡像站中是沒有的,在http://github.com中下載的才有,坑啊!!!


唉沒有辦法!

下載,解壓,重新編譯
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/203619.html
微信掃一掃
支付寶掃一掃