winhex在ctf中簡單的使用
- 2019 年 10 月 8 日
- 筆記
winhex簡介
Winhex
是 X-Ways公司
出品的一款 十六進位編輯
、 磁碟編輯軟體
,其公司網站對其功能介紹如下:
- 可以對硬碟、軟盤、CD-ROM、DVD、ZIP及各種存儲卡進行編輯
- 支援FAT、NTFS、Ext2/3、ReiserFS、Reiser4、UFS、CDFS、UDF等文件系統
- 可支援重組RAID及動態磁碟
- 附帶數據恢復功能
- 可以訪問物理記憶體及虛擬記憶體
- 內置數據解釋器,可以識別解釋20種數據類型
- 可以用數據結構模板查看、編輯結構數據
- 可以分割與合併文件
- 可以對文件進行分析與對比
- 具有靈活的搜索和替換功能
- 可以對磁碟進行克隆
- 可對磁碟進行壓縮鏡像備份,支援對備份文件進行分卷處理
- 具有編程介面,支援腳本操作
- 支援256位加密、校驗和、CRC32、hash(MD5,SHA-1)計算
- 支援對磁碟進行數據安全銷毀
- 包含ANSI ASCII, IBM ASCII, EBCDIC, Unicode字符集
- 支援文件大小超過4GB
從上面官網介紹可以看出:winhex功能非常豐富,也很強大,具體的功能使用介紹這裡就不說了,童鞋們有興趣可以去 安恆萌新粉絲群:928102972
群文件下載 《最完整的winhex教程集合+winhex數據恢復入門使用教程》
和 工具(X-WaysWinHex19.6-SR0 x86/x64綠色漢化版)
。

這裡就談談winhex在CTF中的簡單應用,歡迎各位大佬在評論區發表高端的操作技巧或者經驗分享。
十六進位編輯
這個功能也是最常用的,ctf中經常會用來 查看十六進位數據和ascii碼
、 修改文件頭
、 修改圖片IHDR
等。
查看十六進位數據和ascii碼
把目標文件直接拖進 winhex
或者 文件——>打開——>選擇要打開的文件

會有些送分題,打開直接 ctrl+f
,輸入搜索 flag
,會有意想不到的驚喜

這裡也就比直接給flag多了個ascii編碼

修改文件頭
在CTF經常會遇到 打開文件錯誤
或者 無法打開文件
,但是又已知 文件格式後綴
的 可以檢查一下文件頭或者文件尾是否完整。 常見文件文件頭文件尾格式總結及各類文件頭

例如下面這題:

發現這個gif文件打開錯誤,發現缺少文件頭。 游標點擊第一個字元處,點擊 編輯
——> 粘貼0位元組
——>在彈窗中輸入0位元組數的輸入框里輸入 4
——>確定

發現多了4個位元組的空位,然後點擊十進位值 00
,依次在鍵盤裡輸入gif的文件頭 47494638
,然後點擊保存

發現圖片可以正常打開了

然後用一些看圖軟體或者gif編輯工具,逐幀查看記錄下flag即可 這裡推薦一個在線轉換編輯gif的工具https://ezgif.com/功能很豐富。
修改圖片IHDR
文件頭數據塊IHDR(header chunk):它包含有PNG文件中存儲的影像數據的基本資訊,並要作為第一個數據塊出現在PNG數據流中,而且一個PNG數據流中只能有一個文件頭數據塊。 文件頭數據塊由13位元組組成,它的格式如下表所示。

有時候我們拿到的圖片可能是顯示不完全的

這裡查看到十六進位高度值

這時候就可以去嘗試修改IHDR中的寬高值。這裡只要修改高度值為 027F

最終效果

修改軟體介面名字
這個也可以用很多資源工具實現,比如 reshack
,用winhex手動也可以實現 前提: 確定原始的軟體被替換的文字,必須是軟體存在的,而且替換文字長度不能比被替換文字長,否則程式就可能被破壞了,可能導致程式無法正常運行哦。 這裡我拿 godofhack
演示,對就是這個屌炸天的工具,黑客神器,誰用誰知道!

這裡把 一鍵錘爆出題人的頭
改成 安恆大學是最可愛的

首先查詢出這些文字的ASCII編碼值
一 鍵 錘 爆 出 題 人 的 頭 0x4e00;0x952e;0x9524;0x7206;0x51fa;0x9898;0x4eba;0x7684;0x5934; 安 恆 大 學 是 最 可 愛 的 0x5b89;0x6052;0x5927;0x5b66;0x662f;0x6700;0x53ef;0x7231;0x7684;
得到了每一個字的編碼,我們來組合一下完整的十六進位存儲序列。我們不看0x,每一個編碼只剩下4個數字,後面兩位放在前面,前面兩位放在後面,那麼 一鍵錘爆出題人的頭
的完整的十六進位序列為 004e2e9524950672fa519898ba4e84763459
替換成 895b52602759665b2f660067ef5331728476
最終效果如下

修改其他字元也是一樣的原理。
其他
CTF還會遇到一些幾個文件合併成一個的,那種可以用 File_Analysis
這個工具簡單分析一下,然後打開winhex搜索文件頭尾講數據塊複製出來另存實現文件分離。linux里可以用binwalk -e 文件名。 還有一些 修改軟體介面名字
、 記憶體編譯
, 磁碟編輯
、 數據恢復
等更高級的功能就讓小夥伴們自行探索吧
文中用到的附件:https://pan.baidu.com/s/1nYwzHlXSYhZGMqN3yLmRmQ