1. 程式人生 > 其它 >吾愛破解 培訓第一課:破解基礎知識之介紹常見工具和殼的特徵 筆記

吾愛破解 培訓第一課:破解基礎知識之介紹常見工具和殼的特徵 筆記

吾愛破解 培訓第一課:破解基礎知識之介紹常見工具和殼的特徵 筆記

[《吾愛破解培訓第一課:破解基礎知識之介紹常見工具和殼的特徵》講師:Hmily](https://www.52pojie.cn/thread-378612-1-1.html)

課件內容

一個程式從編譯出來的時候一般都是沒有殼的,不同編譯器編譯出的無殼程式也是不相同的,認識了不同編譯器編譯出來的無殼的程式,再去看無殼程式被加殼程式加殼後的樣子就輕鬆很多,經過對比從而瞭解不同語言無殼程式和加殼後程序的特徵是什麼,特徵主要從“入口點程式碼”、“程式區段”和“載入模組”等資訊來確定。

一:程式是什麼語言編譯的

  • VC6特點:入口點程式碼是固定的程式碼,入口呼叫的API也是相同的,其中有的push地址不同程式可能不同;區段有四個也是固定的.text、.rdata、.data和.rsrc。
  • VS特點:入口點只有兩行程式碼,一個CALL後直接JMP,第一個CALL進去後呼叫的API也是相同的;區段相對於VC6多了一個.reloc。
  • 易語言特點:可以從程式裡找一些call的呼叫最終都會走到上面核心程式碼圖位置(文字不太好表達),這個方法可以區分和VC的區別,非獨立編譯比較容易識別,入口特徵和模組特徵都有krnln.fnr。(易語言編譯無殼程式分,獨立編譯和非獨立編譯,其中獨立編譯是呼叫VC的連結程式編譯的,所以從區段和入口程式碼特徵和VC相同。)

二:如何識別加殼

  1. 通過[PEiD](http://down.52pojie.cn/Tools/PEtools/PEiD 0.95.rar)、Exeinfo PE

    查殼工具內建各種殼的十六進位制特徵碼進行對比查殼

    PEiD、FFI、FastScanner、RDG Packer Detector這類程式都是通過目錄下的userdb.txt(查殼程式不同可能資料庫名有出入)資料庫進行加殼程式特徵對比的,由於userdb.txt檔案都是好多年前的了,全球基本都在用fly在09年釋出的UpKPEiDSign,即使有新的也都基於他製作的版本之上進行更新的,而且更新都沒有太好效果,由於原理都是通過加殼程式的特徵進行對應,而這些加殼特徵都是個人總結而來,對加殼程式的模糊搜尋對比造成可靠性不高,特別是對於VMProtect這類加密殼程式,經常被識別成一些算七八糟都沒見過的加殼內容,特別是顯示UPolyX,基本都是誤報,對新手的誤導很嚴重,但對於傳統的一些壓縮殼的識別效果還是很好的,當然了,有利有弊,正是由於它的開放性特徵庫,也方便給大家提供自己編寫特徵的方法,來識別一些新的殼,期待大家能做出自己的加殼特徵來。
    
    Exeinfo PE屬於新一代查殼工具,作者目前還在更新,它和PEiD的區別可能就在於它的特徵庫是作者自己維護,不支援外部修改,新版好像也開始支援外部特徵庫了,這款查殼工具的加殼特徵庫比較準確而且範圍很廣,如Themida、WinLicense、VMProtect、ZProtect、Shielden都可以輕鬆識別出來,但對於具體加殼程式的版本都是模糊的,其實個人認為加殼版本真的不重要,這個後面再具體說道,Exeinfo PE可以說是目前可以說最好的查殼工具了,推薦大家使用。
    
  2. 通過入口特徵和區段特徵來識別

    區段資訊:可以通過PEiD的EP處點選獲取到.
    入口特徵:可以通過OllyDBG載入獲得,載入後可以按一下“Ctrl+A”,讓OD分析一下程式碼,就可以把入口點一些特徵字串分析出來.(對於Shielden、Safengine、VProtect這類加殼程式都可以使用這種方法判斷出來)
    

三:程式加的是什麼殼

windows程式狀態大體可以分為以下幾種型別:

​ 未加殼、壓縮殼、傳統加密殼、程式碼虛擬化保護、.Net程式加密等

課後問題總結答疑

1.簡單脫殼方法

  • 找OEP

  • Dump映象檔案

  • 修復IAT

    IAT RVA = 00432000 - 00400000 = 32000

    IAT 大小=00432554 -00432000 =554

  • 修復重定位表、修復資源、修復VMOEP等。

2.ASLR(Address space layout randomization)是一種針對緩衝區溢位的安全保護技術,通過對堆、棧、共享庫對映等線性區佈局的隨機化,通過增加攻擊者預測目的地址的難度,防止攻擊者直接定位攻擊程式碼位置,達到阻止溢位攻擊的目的。

  • CFF Explorer檢視PE頭控制ASLR的位置:Nt Headers->File Header->Characteristics->Click here->Relocaation info stripped from file

  • LordPE檢視PE頭控制ASLR的位置:特徵值->...->重定位已分離

3.win7無法執行由於ASLR(PE位置)和重定位的原因

  • 去掉ASLR---【ASLR關閉工具】OD載入每次入口地址不一樣:ttp://www.52pojie.cn/thread-377450-1-1.html

  • 不去掉ASLR---修復重定位

4.作業解答:
1、問脫殼外掛有異常,提示記憶體無法讀取。
解答:不要用win7/win8脫殼,換論壇xp虛擬機器,原因是ASLR基地址隨機化脫殼外掛獲取的地址不對。
2、問為什麼脫殼地址和視訊裡的地址不同。
解答:如上一問題,不要用win7/win8脫殼,換論壇xp虛擬機器,原因是ASLR基地址隨機化導致地址不同。
3、問異常法脫殼去掉忽略異常後怎麼無法暫停。
解答:OD外掛--StrongOD--Options--Skip Some Exceptions選項取消,重啟OD再試試。
4、問 xp 上脫完殼到win7/win8系統上就無法運行了。
解答:原因一:IAT未完全修復成功導致的,重新修復,不要用脫殼外掛,使用LordPE來dump再用ImpREC(最好用Scylla修復,ImpREC對一些新系統的API支援不好)來修復IAT(千萬不要使用OllyDump外掛來脫殼,老東西bug多,脫完無法執行不計其數)。原因二:由於ASLR和重定位表問題,詳見:http://www.52pojie.cn/thread-382462-1-1.html
5、問脫完殼用Exenfo PE查殼顯示“Unknown Packer-Protector”未知。
解答:知道脫完就好了,脫完的vs2008的程式Exenfo PE沒能識別出來,但根據它的提示使用它的外掛“advance scan”是可以掃描出來的,可以試一下。
6、問如何知道是否脫殼成功。
解答:簡單的說脫完殼後可以正常執行,OEP入口程式碼為無殼程式碼特徵(我第一課裡說了什麼是無殼程式),IAT解密完、資源沒有被壓縮即可。
7、問如何完美脫殼和處理重定位。
解答:轉了一些fly的帖子,大家可以參考:
http://www.52pojie.cn/thread-382879-1-1.html
http://www.52pojie.cn/thread-382872-1-1.html
http://www.52pojie.cn/thread-382870-1-1.html

8、關於ximo脫殼教程和論壇虛擬機器機中OD使用可能遇到的問題。
解答:OD不要直接在虛擬機器的共享資料夾載入檔案,請把檔案複製到虛擬機器磁碟上再進行除錯。

課件工具

  1. 吾愛破解專用版OllyDbghttp://www.52pojie.cn/thread-350397-1-1.html

  2. 論壇專用破解虛擬機器http://www.52pojie.cn/thread-341238-1-1.html

  3. 其他工具見愛盤:http://down.52pojie.cn/Tools/

課件資源

360雲盤下載:
https://yunpan.360.cn/surl_y3GCKpiI2fX 提取碼:7693
百度網盤下載:
連結: https://pan.baidu.com/s/1z9WQeYgUGxcurVD2lKfNeg提取碼: e2su

愛盤下載:
http://down.52pojie.cn/吾愛破解視訊教程/吾愛破解論壇官方入門教學培訓第一期/

解壓密碼:
www.52pojie.cn

本文來自部落格園,作者:Theseus‘Ship,轉載請註明原文連結:https://www.cnblogs.com/yongchao/p/15753577.html