【摘錄】初識exe程式反組譯碼小感

來源:互聯網
上載者:User
 近期由於一個項目的需要,我初步接觸了exe程式反組譯碼。折騰了好幾天終於見到了那個程式中急需的演算法的真面目了。回顧整個過程,小有感悟。為記念初識程式反組譯碼的心路曆程,特記錄下對程式反組譯碼過程的粗淺感受。 一、工作環境:
   1 查殼工具:PEiD(用於初步確定exe程式是否加殼以及使用何種開發軟體編寫);
   2 反編譯工具:DeDe(經過查殼工具檢查,將要被反組譯碼的程式是用“BorlandC++ 1999”編寫的,所以選用專門反編譯Delphi程式的DeDe;用於初步確定程式模組、函數方法劃分對應exe程式相應彙編指令地址的位置);
   3 反組譯碼動態調試工具:OllyICE(即,OD;用於動態反組譯碼偵錯工具的相關代碼邏輯);
   4 開發環境:VS.NET 2005;
   5 其他工具:EditPlus、記事本、計算機等若干;  二、基礎知識:
   1 組譯工具設計:主要深入瞭解程式資料存放、堆棧使用、子程式調用等技巧;不同類型資料的地址跳轉規則(一般都是跳轉該類型長度個位置);
   2 c++程式設計:基本文法結構;指標、資料類型的使用和控制;
   3 相關工具軟體的基本使用方法;  三、工作過程:
  我的反組譯碼大概過程是:
查殼->脫殼、判斷開發程式使用的環境-> 反編譯->初步定位主要功能模組或函數的彙編指令起始、終止地址-> 反組譯碼準備->尋找程式中的特徵字串或特徵值,進一步確定需要反組譯碼的代碼邏輯的位置-> 開始反組譯碼調試運行,分析需要反組譯碼的代碼邏輯的具體過程->將分析出來的邏輯流程 使用c++語言實現。  1 、 查殼:
運行PeiD,開啟要反組譯碼的exe程式,在這裡姑且稱之為:test.exe吧。
如1:“多項掃描”上面那行“Microsoft Visual C++ 7.0 Dll Method 3”就是該程式的開發環境了。
接下來電擊視窗右下角的“>>”按鈕,再來看看該程式是否加殼,如2:分別點擊“熵值”、“EP校正”、“快速校正”這三行最右側的“-”按鈕,就可以看到是否加殼的提示了。
哈哈,test.exe程式太乾淨了。沒有任何加殼,可以選用相應的反編譯工具進行下一步啦。  ^_^  2 、 反編譯:
“1、”中只是,我實際反編譯的程式是由“BorlandC++ 1999”編寫的,所以選擇DeDe 3.5作為反編譯工具;DeDe3.5的具體使用方法,請自行在網上查閱。
3: 
3 、 初步定位主要模組、函數對應的彙編指令地址:
根據反編譯出來的部分類和方法的代碼架構,確定了兩組可疑的彙編指令位址區段。
如4: 注意選擇“過程”按鈕,如所示。然後雙擊右下側列表中的Button3Click,就可以查看該方法對應的函數體了。當然,這樣看到的函數體不會是我們一般意義上的函數體,這函數體只有一個架構是進階語言的樣子,函數體內部都是彙編代碼,不過這已經足夠了,後面我們還要進行詳細的反組譯碼調試分析呢。嘿嘿。函數體5如下:
 
好,記下這段函數的首地址、尾地址,開始嘗試反組譯碼操作。 4 、 反組譯碼準備:
使用OD(OllyICE)開啟test.exe程式,如6:
 
找到剛才記錄下的首地址、尾地址。如中兩個黑圓點處的紅條,分別是首地址:00401EC4、尾地址:00401EF5。 5 、 反組譯碼調試:
根據步驟4中定位的彙編指令地址,再結合6中[ASCII”Hello OD”]、[ASCII”this is OllyDbg DeAsm”]等關鍵字符串,進行所有匹配字串的檢索,就可以開始使用OD進行調試了。具體使用方法請參閱OD內建的help檔案。
逐句分析所需部分的彙編代碼邏輯流程。其間可以用其他一些協助工具輔助來協助記錄動態分析過程中的數值傳遞軌跡及變換方法。 6 、 C++實現:根據分析出的彙編代碼邏輯,使用C++實現同樣的功能。  備忘:在定位反組譯碼所需的代碼位置時,除了一些ASCII字串的定位方法,還能通過程式中聲明的一些常量字串、映射控制矩陣、計數器等常量來進行更為精確的定位。    以上就是我初識程式反組譯碼主要過程的記錄。注意:由於“保密協議”的限制,在此不便過多討論項目代碼細節。還望大家敬請原諒。寫的很粗淺,希望有反組譯碼經驗的前輩不吝指教,在此,先謝過啦。哈哈 ^_^
 

本文出自 “空中的魚” 部落格,請務必保留此出處http://airfish.blog.51cto.com/358752/264819

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.