1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          火眼實驗室FLARE IDA Pro腳本系列

          來源:互聯網轉載 時間:2024-01-29 08:05:07

          作者 Rabbit_Run

          火眼實驗室的高級逆向工程(簡稱“FLARE”)團隊繼續把知識和工具分享給社區。本系列博文以一個用于“自動化恢復惡意程序中的結構化字符串”的腳本作為開頭。????????像往常一樣,你可以下載這些腳本,下載位置????https://github.com/fireeye/flare-ida。我們真誠地希望這些腳本能對你有所幫助。??????????

          ??

          一、動機

          ????????在FLARE團隊暑假實習期間(PS:唉,俺是沒機會了,路費太貴了!),我的目標是開發一個IDA python插件,用于加快在IDA Pro中的逆向工作流程。???和團隊一起分析惡意代碼樣本時,我意識到從MSDN網站上查找函數、參數和常量等信息占用了大部分時間。由于要頻繁切換到開發手冊,逆向過程總是被打斷。最終,我們找到了解決方法-把MSDN信息自動整合到IDA Pro。本篇博文介紹的腳本就是用來解決這個問題的,而且接下也會介紹如何使用腳本。??????

          二、介紹

          ????MSDN注釋插件整合了函數、參數、返回值等信息,并以注釋的形式呈現在IDA Pro反匯編列表中,盡可能的實現了信息的無縫整合。此外,該插件能夠自動化重命名常量,進而加快了逆向分析的流程。該插件依賴于一個離線的XML數據庫文件,它是結合微軟文檔和IDA類型庫文件生成的。????

          三、特征

          ????????表1展示了插件能夠為逆向分析專家提供的幫助。在表的左側,你看到的是IDA Pro標準的反匯編窗口:7個參數入棧,然后調用函數CreateFileA。通常來說,一個分析師不得不從文檔中查找函數、參數或常量的描述,從而????理解這塊代碼是干嘛滴!為了獲得常量值的可讀形式,分析師需要研究相應的參數,把標準的枚舉類型導入到IDA中,然后手動重命名。表的右側顯示的是我們的腳本執行后的結果,為逆向分析師提供了更多的幫助。??????

          ????????最明顯的變化是常量能夠被自動重命名。在這個例子中,40000000h被自動的轉換為GENERIC_WRITE。此外,每個函數參數都被重命名為唯一值,因此相應的描述也可以被添加到反匯代碼中。??????????????

          表1:標準符號常量的自動化標記

          ????在圖1中,你能清楚地看到該插件在反匯編代碼中如何顯示函數、參數以及常量信息。頂部的圖片顯示的是當鼠標懸停在CreateFileA函數上時,可以查看到簡單介紹和返回值。在中間的圖片中,當鼠標懸停在hTemplateFile參數上時,可以查看相應的描述。在底部的圖片中,當鼠標懸停在dwShareMode上時,該自動化重命名的常量會顯示一些描述信息。????

          函數

          參數

          常量

          圖1.當鼠標懸停在函數名、參數和常量上時會顯示相應的描述信息

          四、工作原理

          ????????在插件對反匯編代碼產生任何改變之前,它會備份當前的IDB文件(IDA數據庫文件)。該文件會存儲在當前數據庫的目錄下,用于恢復以前的標記,以防你不喜歡插件對反匯編代碼的更改或出現了問題。????

          該插件適合在分析之前對樣本代碼運行一次。它依賴于一個離線數據庫,產生自MSDN文檔和IDA Pro類型庫文件(.til)。對于導入表中引用的每個函數,該插件都會注解函數描述和返回值,添加參數描述以及重命名常量。圖2描述的是一個已注釋的導入表的示例。它展示了一個描述性的注釋如何添加到每個API函數調用。參數位于函數調用的前面,以便標識出指令的地址,該插件依賴于IDA Pro標記。????

          圖2:已注釋的導入表

          ??圖3顯示了一個插件創建的.msdn段,主要用于存儲參數描述。這只會影響IDA的數據庫文件,不會修改原始的二進制文件。?

          圖3. 額外添加到IDA數據庫的段

          ????.msdn段中存儲了參數的描述信息,如圖4所示。獨一無二的參數名和相應描述性的注釋被順序的添加到該段中。????

          圖4. 名字和注釋都被插入到參數描述

          ????為了讓用戶通過懸停鼠標就能查看到常量的描述信息,插件導入了IDA Pro中標準的枚舉類型,并給枚舉成員添加了描述性的注釋。圖5顯示了MACRO_CREATE枚舉類型,存儲了通過參數dwCreationDisposition傳遞給函數CreateFilaA的常量值。????

          圖5.添加枚舉成員的描述

          五、準備MSDN數據庫文件

          ??????????????????插件的圖形化接口需要安裝QT框架和Python,已經包含在IDA Pro 6.6發行版中。????????你也可以在IDA 6.5的環境中使用插件,具體設置參考如下 (http://www.hexblog.com/?p=333).??????????????

          ????就如開始提到的,插件需要一個XML數據庫文件,用于存儲MSDN文檔。我們不能讓這個數據文件和插件一起發布,因為MSDN文檔的版權是微軟的。甭怕,我們提供一個生成這個數據庫文件的腳本。腳本和插件都可以從git倉庫(https://github.com/fireeye/flare-ida)下載下來。????????

          你可以參照以下步驟創建數據文件,只需執行一次就O了。

          ????????1. 下載并安裝離線MSDN文檔,下載鏈接:http://www.microsoft.com/en-us/download/details.aspx?id=18950.盡管不是最新的SDK版本,但是它包含了所需的全部信息,????????而且數據可以直接被提取。如圖6所示,你可以只選擇安裝幫助文檔,默認的安裝目錄是C:ProgramFilesMicrosoft SDKsWindowsv7.0Help1033.????????

          圖6. 安裝MSDN文件的本地副本

          ????2. 利用解壓軟件(如7-zip)解壓MSDN文檔到指定目錄

          3. 從Hex-Rays網站上下載tilib.exe,鏈接如下: https://www.hex-rays.com/products/ida/support/download.shtml

          ????為了讓插件能夠重命名常量,插件需要知道需要導入哪些標準的枚舉類型。IDA Pro把這些信息存儲在位????????于%IDADIR%/til/的TIL文件中。Hey-Rays提供一個工具(tillib)用于顯示TIL文件內容。把下載的tillib文件解壓到%IDADIR%目錄中。如果你不加任何參數運行tilib,并看到了它的幫助信息,說明程序正確地運行起來了。????

          4. 運行MSDN_crawler/msdn_crawler.py <已解壓的MSDN文件的目錄 > < tilib.exe所在的目錄> < til文件所在的目錄>

          如果提前條件都滿足,你就可以運行位于MSDN_crawler目錄中的MSDN_crawler.py腳本。腳本需要TIL文件的目錄(通常為%IDADIR%/til/pc/)和已解壓的MSDN文檔的目錄。當腳本運行完之后,最終的XML數據庫文件就位于MSDN_data 目錄中。????

          現在就去IDA中運行我們的插件給反匯編代碼添加注釋吧!

          六、運行MSDN注釋插件

          ????????在IDA中,通過菜單”File->script File…”(或快捷鍵 ALT+F7)打開名為annotate_IDB_MSDN.py的腳本。然后出現如圖7所示對話框,允許你配置插件的功能。默認情況下,插件會注釋函數、參數以及重命名常量。如果你修改了配置,并通過點擊“OK”執行插件,配置信息會存儲在位于插件目錄中的一個配置文件。這樣就允許你重用以前的配置在其他的樣本中運行插件。如果你沒有配置注釋函數或參數,你將鼠標懸停在這類元素(函數或參數)上時,就不會出現相應的描述信息了。????????

          圖7. 插件的配置窗口

          ????

          當你對函數配置成了“可重復性注釋”,在反匯編列表中函數的描述信息是可見的,如圖8所示。????

          圖8.當設置成“可重復性注釋”時,函數注釋的預覽

          七、類似工具和已知的缺陷

          ????????部分解決方案借鑒了現有的IDAPro插件,例如IDAScope和IDAAPIHelp。在此對Zynamics團隊表達最真摯的謝????意,他們的MSDN crawler和IDA importer給我們的研發提供了極大的幫助。

          插件主要在Windows環境下的IDA Pro上測試通過,應該也可以在其他系統環境下運行。由于MSDN文檔的結構和MSDN crawler工具的缺陷,并不是所有的常量都能被自動解析。當你遇到缺失信息的情況,你可以在MSDN_data目錄添加一些文件來手動擴展數據庫。為了保證擴充文件能夠被正確的處理,這些文件必須是有效的XML文件,并且符合主數據庫文件(madn_data.xml)中給定的結構(XML Schema)。如果你打算部分擴展已有函數的信息,你只需要添加額外的字段。為了標識相應的元素,必須為這些額外字段添加名字標簽(name tag)。????

          ??例如,如果解析器不能識別一個常用的常量,你可以手動添加注釋信息。對于CreateFileA函數中的dwDesiredAccess參數,需要添加的信息類似于列表1:???

          <?xml version=<?xml version=”1.0″ encoding=”ISO-8859-1″?><msdn><functions><function><name>CreateFileA</name><arguments><argument><name>dwDesiredAccess</name><constantsenums=”MACRO_GENERIC”><constant><name>GENERIC_ALL</name><value>0×10000000</value><description>All possibleaccess rights</description></constant><constant><name>GENERIC_EXECUTE</name><value>0×20000000</value><description>Executeaccess</description></constant><constant><name>GENERIC_WRITE</name><value>0×40000000</value><description>Writeaccess</description></constant><constant><name>GENERIC_READ</name><value>0×80000000</value><description>Readaccess</description></constant></constants></argument></arguments></function></functions></msdn>

          列表1. 添加的信息增強了對CreateFileA函數的dwDesiredAccess參數的理解

          八、結論

          ????本篇博文演示了如何生成一個MSDN數據庫文件,用于插件自動化的給IDA Pro反匯編代碼中的函數、參數和常量添加注釋信息。此外,我們還討論了插件如何工作,如何配置以及定制插件。我們希望這個插件能夠加快你的分析過程。

          ??[原文出處:??????http://www.fireeye.com/blog/technical/2014/09/flare-ida-pro-script-series-msdn-annotations-ida-pro-for-malware-analysis.html]

          ??水平有限,錯誤難免,歡迎批評指正!本人也做過一些逆向工作,對文中提到的問題也深有體會,真希望多開源一些分析工具,減輕逆向分析工作的勞動強度

          標簽:火眼插件-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          冰糖葫蘆廣場舞原唱?馮曉泉?!侗呛J》是一首由張和平和杜鵬作詞,馮曉泉作曲,馮曉泉演唱的歌曲,于1995年1月1日發行。包括在專輯《龍鳳金歌榜VOL.9》中。歌詞:都說糖葫蘆是酸的,酸中包裹著甜。都說糖葫蘆是甜的,但是表現出來的是里面的酸。糖葫蘆可以和竹簽一起穿,象征幸福和團圓,把幸福和團圓聯系在一起,沒有煩惱和煩惱。如果你站得高,你會看得遠。如果你面對蒼山的召喚,你會怒而心寬,你會年輕二十歲。...

          蘋果手機屏幕顯示已中病毒?你好;手機有病毒,可以用騰訊手機管家殺毒。騰訊手機管家獨有的雙核查殺引擎,可以有效檢測手機病毒。使用云端智能查殺技術,查殺病毒木馬,以及強大的軟件一鍵分析,刪除多余的系統程序,并可隨時恢復。隱私保護支持圖案解鎖,不再像數字那樣單調。謝謝你。蘋果手機怎么殺毒和清理手機內存?1.進入對應的APP,在設置里找到清除緩存,然后清除。如果你自己下載了一些東西,自己刪除不必要的文件。...

          冰糖葫蘆歌原唱?《冰糖葫蘆》的原曲是:馮曉泉。這首歌由《冰糖葫蘆》馮曉泉演唱,馮曉泉作曲,張和平和杜鵬作詞。冰糖葫蘆原唱是誰?《糖葫蘆》這首歌的原唱是馮曉泉。馮曉泉,音樂人,滿族,出生于哈爾濱,歌手,國家新銳音樂人。冰糖葫蘆蔡國慶原唱?不,《糖葫蘆》這首歌的原唱是馮曉泉。歌詞:都說糖葫蘆是酸的,酸中裹著甜。都說糖葫蘆是甜的,其實里面是酸的。糖葫蘆掛在竹簽上很好看,象征著幸福和團圓。把幸福和團圓連在...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>