題:
有哪些工具可以從平面二進製文件中挖掘數據結構?
gal
2014-01-20 10:45:41 UTC
view on stackexchange narkive permalink

問題陳述

我有一個完全由數據結構組成的文件;我一直在嘗試尋找一種工具,使我能夠打開此文件,並聲明(也許)一個類型和偏移量,以便我可以單獨使用假定的原始數據類型。

例如。我將位於偏移量0x04的4個字節聲明為32位無符號整數,並希望檢查此位置處的值(也許讀為big-endian),然後單獨使用此整數(也許看看它看起來像什麼)編碼為4字節的ascii字符串並嘗試讀取它,等等。)

規範

我有一個4096字節的文件,其中包含C結構,其成員元素為整數,範圍從16 -64位長度;下面是一個示例:

  struct my_struct {uint_32 magic} // sizeof(my_struct)== 0x04  

在這種情況下,magic ='ball ',因此在文本編輯器中打開文件時,其讀取內容為“ llab ...”,顯然也可以將其表示為32位整數

問題

有沒有可以對平面數據結構文件進行靜態分析的工具?

到目前為止我所考慮的解決方案

我已經考慮過使用Python編寫命令行工具來這樣做,但是如果已經存在一些東西,我希望節省時間,並且也許可以使用經驗豐富的人設計的工具來了解有關此主題的更多信息。如果您覺得我做錯了這(這是我對這種可逆性的首次認真探索),請指導我的理解,謝謝。

我已經研究過的地方

通過Google搜索“逆向工程工具”並瀏覽鏈接

檢查維基百科的逆向工程頁面

嘗試了一些第一性原理推理

經檢查的pypi

結果

共有三個完全正確和正確的答案,但是我將其中最詳細,最便宜的答案標記為正確,因為它是審閱此問題的社區成員最容易獲得的信息。 / p>

我想您已經嘗試過IDA。檢出[此鏈接](http://www.devttys0.com/2012/03/writing-a-bflt-loader-for-ida/),我不確定這是否是您需要的。
可能相關:http://stackoverflow.com/questions/492751/tools-to-help-reverse-engineer-binary-file-formats
五 答案:
Jason Geffner
2014-01-20 20:13:28 UTC
view on stackexchange narkive permalink

010編輯器的二進制模板功能非常適合此類工作。它不僅支持靜態 struct 定義,而且允許動態調整大小的 struct 字段,並支持強大的腳本語言。

Example Template

Editing the Template Results

Polynomial
2014-01-20 16:14:57 UTC
view on stackexchange narkive permalink

我為此使用 Hex Workshop。它具有許多有用的平面文件反轉功能,但我最喜歡的是它使您可以使用C樣式語法聲明結構並將其加載到文件頂部。它不是免費的,但它的價值超過90美元。

我發現最有用的功能:

  • C樣式的結構語法,支持各種數組,字符串類型,位串,有效性檢查等。
  • 可定制的數據檢查器(如果您只想查看幾種類型的數據,則很有用)
  • 區分
  • 偏移量顯示(顯示地址偏移量,選擇大小等)
  • 突出顯示順序(例如在查找時“全部突出顯示”)
  • 按位運算,校驗和等。
Igor Skochinsky
2014-01-20 18:25:43 UTC
view on stackexchange narkive permalink

IDA可用於處理純數據文件。您可以將字節轉換為數據項(字節/單詞/雙字/ qwords /浮點數/字符串等),將它們分組為結構或數組(或結構數組),將整數表示為偏移量,添加名稱和註釋等。 / p>

下面是IDA中表示的一些隨機BMP文件的示例:

  0000 BmHeader db'BM';簽名0002 dd 146h;大小0006 dw 00008 dw 0000A dd偏移pixel_array;偏移到圖像data000E; DIB標頭000E dd 40;此header0012 dd 33的大小;位圖width0016 dd 33;位圖height001A dw 1;彩色平面數001C dw 1;每像素位數001E dd 0;壓縮:none0022 dd 108h;圖像數據的大小0026 dd 4724;水平分辨率(每米像素)002A dd 4724;垂直分辨率(每米像素)002E dd 0; Palette0032 dd 0中的顏色;重要顏色數0036;顏色表0036 dd 0,0FFFFFFh003E; pixel data003E pixel_array db 1,73h,13h,6,80h,3 dup(0),7Dh,4Bh,0E0h,56h  
Thomas Weller
2016-07-07 11:48:39 UTC
view on stackexchange narkive permalink

Hexinator

  • 具有與010 Editor的二進制模板類似的功能,稱為“語法”。它允許插入數字,字符串,結構和二進制Blob。如果這還不夠的話,它在Python和Lua中具有腳本功能

  • 然後可以很好地編輯值(例如,以十進制代替十六進制)。十六進制區域可以突出顯示。

缺點:

在撰寫本文時,似乎存在多個開放語法+一個開放語法的問題文件。當打開同一語法的第二個文件時,它崩潰了。儘早保存並經常保存。

部分分析的文件的屏幕截圖:

Screenshot

這是唯一的免費支撐結構!但是我還沒有弄清楚如何安裝它們:“下載”菜單項不起作用,並且我看不到從磁盤加載語法的選項。但是,如果我雙擊一個.grammar文件,它看起來像是“已安裝” ...
@jumpjack:您是否有這樣的菜單:https://i.stack.imgur.com/3x39O.png?除此之外,它不是完全免費的。試用期結束後,許多功能都需要許可證。
僅當我在資源管理器中雙擊一個.grammar文件時,該語法才會顯示在下拉列表中。否則我只能選擇創建語法。
Andy Key
2014-12-11 18:03:15 UTC
view on stackexchange narkive permalink

我將二進制編輯器用於此類任務 http://www.nyangau.org/be/be.htm



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...