• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            luqingfei@C++

            為中華之崛起而崛起!
            兼聽則明,偏聽則暗。

            初識exe程序反匯編小感[轉]

            本文出自 “空中的魚” 博客,出處http://airfish.blog.51cto.com/358752/264819

             
            近期由于一個項目的需要,我初步接觸了exe程序反匯編。折騰了好幾天終于見到了那個程序中急需的算法的真面目了。回顧整個過程,小有感悟。為記念初識程序反匯編的心路歷程,特記錄下對程序反匯編過程的粗淺感受。

            一、工作環境:
              1查殼工具:PEiD(用于初步確定exe程序是否加殼以及使用何種開發軟件編寫);
              2反編譯工具:DeDe(經過查殼工具檢查,將要被反匯編的程序是用“BorlandC++ 1999”編寫的,所以選用專門反編譯Delphi程序的DeDe;用于初步確定程序模塊、函數方法劃分對應exe程序相應匯編指令地址的位置);
              3反匯編動態調試工具:OllyICE(即,OD;用于動態反匯編調試程序的相關代碼邏輯);
              4開發環境:VS.NET 2005
              5其他工具:EditPlus、記事本、計算器等若干;
             
            二、基礎知識:
              1匯編程序設計:主要深入了解程序數據存放、堆棧使用、子程序調用等技巧;不同類型數據的地址跳轉規則(一般都是跳轉該類型長度個位置);
              2c++程序設計:基本語法結構;指針、數據類型的使用和控制;
              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
            、 反匯編準備:
            使用ODOllyICE)打開test.exe程序,如示意圖6
             
            找到剛才記錄下的首地址、尾地址。如上圖中兩個黑圓點處的紅條,分別是首地址:00401EC4、尾地址:00401EF5

            5
            、 反匯編調試:
            根據步驟4中定位的匯編指令地址,再結合示意圖6[ASCII”Hello OD”][ASCII”this is OllyDbg DeAsm”]等關鍵字符串,進行所有匹配字符串的檢索,就可以開始使用OD進行調試了。具體使用方法請參閱OD自帶的help文件。
            逐句分析所需部分的匯編代碼邏輯流程。其間可以用其他一些輔助工具來幫助記錄動態分析過程中的數值傳遞軌跡及變換方法。

            6
             C++實現:
            根據分析出的匯編代碼邏輯,使用C++實現同樣的功能。
             
            備注:在定位反匯編所需的代碼位置時,除了一些ASCII字符串的定位方法,還能通過程序中聲明的一些常量字符串、映射控制矩陣、計數器等常量來進行更為精確的定位。
             
             
             以上就是我初識程序反匯編主要過程的記錄。注意:由于“保密協議”的限制,在此不便過多討論項目代碼細節。還望大家敬請原諒。寫的很粗淺,希望有反匯編經驗的前輩不吝指教,在此,先謝過啦。哈哈 ^_^

            posted on 2010-08-11 10:44 luqingfei 閱讀(5953) 評論(1)  編輯 收藏 引用 所屬分類: 反匯編

            評論

            # re: 初識exe程序反匯編小感[轉][未登錄] 2011-02-23 03:02 KK

            好文章,挺詳細的  回復  更多評論   

            導航

            <2010年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            統計

            留言簿(6)

            隨筆分類(109)

            隨筆檔案(105)

            Blogers

            Game

            Life

            NodeJs

            Python

            Useful Webs

            大牛

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            一级女性全黄久久生活片免费| 成人资源影音先锋久久资源网| 亚洲午夜福利精品久久| 九九久久自然熟的香蕉图片| 中文字幕日本人妻久久久免费| 亚洲国产精品久久久久婷婷老年| 99久久er这里只有精品18| 久久99精品国产麻豆宅宅| 久久午夜羞羞影院免费观看| 久久亚洲私人国产精品| 久久精品国产99国产精品澳门| 国内精品久久久久久久影视麻豆| 国产精品99久久久精品无码 | 2021精品国产综合久久| 国产精品青草久久久久福利99| 久久亚洲天堂| 国产精品99久久精品| 久久人人爽人人爽人人爽| 久久99国产精品久久久| 亚洲欧美伊人久久综合一区二区| 人人狠狠综合久久亚洲婷婷| 久久精品免费一区二区| 欧美久久一区二区三区| 亚洲人成网亚洲欧洲无码久久 | 岛国搬运www久久| 亚洲人成无码www久久久| 久久国产精品久久国产精品| 久久婷婷人人澡人人爽人人爱 | 久久亚洲国产精品123区| 丰满少妇人妻久久久久久| 97香蕉久久夜色精品国产| 亚洲国产成人久久综合野外| 99久久国产综合精品五月天喷水 | 久久天堂AV综合合色蜜桃网| 国产精品一区二区久久精品无码| 国产成人综合久久综合| 国产亚洲色婷婷久久99精品| 久久久久久亚洲AV无码专区| 久久w5ww成w人免费| 久久精品人人做人人爽电影蜜月| 亚洲AV成人无码久久精品老人|