블로그 이미지
yookie*(ゆうき)のブログに遊びに来てどうもありがとう! 今後ともよろしくお願いします★ 대만에서 한국어 공부있는 일본사람-유키입니다. 中日混血yookie*在台灣生活的的點點滴滴★
yookie*유키

    calendar

      1 2 3 4 5 6
    7 8 9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30 31      
    • 6,994total
    • 11today
    • 16yesterday
    2010/01/15 01:05 IT/exe解析講座

    解析必備的工具

    二進制編碼編輯工具(Binary Editor)
    對照解析報告時必須要透過編輯器去查找或修改exe應用程式需要調整的地方。
    本人是用日文版Windows XP,中文使用者可以下載對應中文的編輯器(例如:UltraEdit)

    反組譯程式(Dissambler)
    把*.exe反組譯之後會產生「解析報告」。包含著以組合語言寫成的程式所有機械碼內容。
    在透過上述的工具去查找並修改需要的功能。

    解析可能需要的工具

    程式語言(Programming Tool)
    Dev C++ 
    在解析exe程式之前必須先學會如何建立一個exe應用程式。
    是為了要熟悉反組譯後的機械碼的架構。以便熟悉以後破解的步驟。
    我們在很多網站上看到的「破解檔」是不直接透過二進制編碼編輯工具,
    而是寫一個程式去直接修改原本程式的內容。

    程式資源編輯工具(Resource Editor)
    可以修改替換程式的選單和文字圖片資源。而在這裡是為了方便查找解析的入口。
    通常一個200KB的程式利用反組譯程式解析出來的機械碼報告多達3MB。
    所以需要透過輔助工具或者是熟悉機械碼架構瞭解程式解析的入口。

    exe的解析步驟


    1.分析程式類型:
    某些程式為了防止窺探內容或者程式過於龐大。透過壓縮工具將程式破壞性壓縮,這動作稱之為「加殼」。
    加殼會導致我們無法直接用反組譯程式解析出機械碼。此時需要利用程式加以「解殼」。
    某些程式也不是單一程式直接執行。可能會包含很多DLL檔(動態連結庫)或資料檔。
    所以即使反組譯程式解析出機械碼但是找不到解析的入口。
    此時就得要將所有的DLL檔案加以解析,需耗費時間和耐心去逐一查找。
    這些不在這次討論範圍內。這次講座的前提都是假設exe應用程式沒有透過任何加工改變原來的內容。

    2.反組譯*.exe檔案:
    這裡利用dispe反組譯*.exe取得「解析報告」。檔案副檔名通常是(*.asm)。
    需要用普通的文字編輯器(記事本或EmEditor等等)打開解析報告。需要調整字體讓機械碼容易閱讀。

    3.查看*.exe的二進制編碼:
    這裡利用Stirling(或是用UltraEdit)去開啟*.exe一邊對照解析報告以便之後的解析作業。

    4.查找解析入口:
    在這邊通常會先執行需要破解的程式,然後透過他顯示的字串內容去查找程式開始的地點。
    找不到的話可以用Resource Hacker找出對話方塊(或者字串)資源位址,去查找解析報告內的程式起點。

    5.分析解析報告:
    找到解析入口之後,用「程式邏輯」想出程式的「流程」然後去查找對應的機械碼。

    6.修改*.exe檔案:
    機械碼旁邊通常有對應的二進制編碼。
    修改時直接把該行的二進制編碼複製到二進制編輯器的搜尋視窗後直接修改即可。
    注意修改*.exe時必須要確定*.exe不是在開啟狀態否則無法寫入(也可以另存新檔)
    修改完後一定要在開啟看看是否正確執行。

    本節課題

    • 請用Dev C++(或其他程式語言工具)編譯以下程式碼。這是一個猜數字密碼的應用程式。
      下章節會說明此程式架構並實際演練如何解析這個程式。
    posted by yookie*유키

    댓글을 달아 주세요