2013年8月20日 星期二

破解手記(一)脫殼的ESP定律 (圖)(文)




學習爆破是一件很有趣的事情
像是繞過外掛的註冊碼註冊
又或者是程序的繳活註冊等等等~


這些都只是我的見解
如果有講解錯誤還請留言跟我說

在這裡會給各位教學爆破程序的一些方法
脫殼也可以算是爆破的一種 (後面就隻到不需要脫殼也行進行繞過註冊碼)
當然網路上有一些unpacker~~
如果懶惰手動脫殼的人可以去用一下那些


第一節我就說明一下ESP定律的脫殼方式吧。
壓縮殼一開始會先PUSHAD這樣ESP就指向寄存器壓入棧中的地址
而執行了一些壓縮指令後~壓縮殼就會進入程序的OEP。
當然在這裡我們就可以像ESP下硬件斷點。
因為壓縮殼要訪問OEP恢復寄存器時,一定要先通過ESP指向的地址。
因此在這裡如果我們下斷就可以輕鬆繞過壓縮殼執行的那些不必要子程序,並且順利直接抵達OEP



1.首先我們用PEID或是EXEINFO看一下程序是被加甚麼殼

可以看出是加了UPX
在這裡我簡單寫了個程序來為這節課當作範例
估計第三節開始上網實例下載程序來爆破註冊的手續

2.然後我們開啟OD來載入吧
圖片中我圈起紅色框框的部分就是最基本壓縮殼的特徵
把所有寄存器都Push到棧中

3.
  1. 我們F8單步走一次
  2. 看一下壓入棧後ESP指向的地址 在這裡是12FF6C
  3. 最下面視窗輸入 DD 12FF6C (就是我剛剛看到的ESP) 
  4. 資料視窗中按12FF6C右鍵->斷點->硬體寫入->word
  5. F9執行



 4.斷在這裡後我們按一下F8可以發現這是一個往上跳得跳轉

5.用鼠標點擊下一個地址並按下F4(執行到所選地址)
   並且按兩次F8跟進JMP
   這裡我要說一下這個JMP~ 它是網路上所說的大跳轉,
   其實他也可以理解為不同區塊的跳轉,
   現在這個區塊是UPX區塊,當他跳轉後可以到我們程序的區塊



6.點選上面的外掛(也就是插件)->ollydbg Dump ->脫殼在當前調試的進程
然後點擊獲取EIP做為OEP,再按確定。


 7.最後就隨便保存吧~ 再用PEID看下剛剛保存的文件


已經脫殼了,但是這裡要注意!!
程序並不是完美脫殼,它的UPX區段以及IAT和資源表等等PE段都是還沒修復的,也就是說程序可能執行會錯誤或是一些功能無法使用之類的。

我們在第二節會講到修復脫殼後的程序和手動強制進入OEP。


爆破文件的載點::: 點我進入mf




5 則留言:

  1. 雖然看不是很懂 但好奇心蠻大的我 想學看看

    如有問題會再下方留言的

    其實很不錯的

    感覺沒有人再看0.0

    回覆刪除
  2. 我會在這裡發一些技術的文章
    希望有和你一樣感興趣的人來看^^

    回覆刪除
  3. 想學中文化
    有些軟體有加殼沒辦法中文化

    回覆刪除