iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
Security

我逆向你逆向我的逆向工程膩系列 第 11

Dx11 - 加殼時間

  • 分享至 

  • xImage
  •  

我們平常傳送檔案的時候常常用到壓縮器,不論是 rarzip等,有了這些壓縮器都使我們傳送檔案可以使更少的空間,或是更安全的加密。而使用 PE 執行檔時我們有時也會使用壓縮 ,而這個壓縮器則稱為運行時壓縮器,它會在程式執行時將程序解壓縮並正確執行。這些程式有些能讓逆向檢測難以發現原本的意圖,俗稱為””。

https://ithelp.ithome.com.tw/upload/images/20220925/20135675AzUAktnen0.png

壓縮器

運行時壓縮器,PE檔案的專用壓縮器。他的主要用途有 :

  1. 縮減文件大小
    就和平常使用壓縮器來壓縮檔案,意圖透過加密演算法把檔案變小
  2. 隱藏PE文件內部代碼或資源
    透過壓縮原本的代碼,使這些數據難以進行逆向分析 API、字串等資料。
  3. 破壞或偷偷載入病毒
    有些不良的壓縮器會在文件中進行較大的變形、毀損。或在裏頭添加惡意程式等。

保護器

保護器則與壓縮器的功能在目的上不同,它的主要目標是防止 PE 文件被逆向分析,所以應用了許多防止逆向分析的技術,像是垃圾代碼、反測試、混亂代碼等。致使完成保護後的代碼可能比原本的程式還要大

像是防止破解、防遊戲外掛等都會利用保護器來防止攻擊。另外病毒等惡意代碼也會使用保護器來避免被分析

殼分析

練習檔 :
https://github.com/Dinlon5566/IT_Reverse_Engineering/tree/main/Dx11

這邊來利用 UPX 壓縮 notepad.exe 來加殼 ,觀察其 section 改變:

https://ithelp.ithome.com.tw/upload/images/20220925/201356754gFECGdJ8F.png

會發現到經過 UPX 後,第一個 Section ( UPX[0] ) 的 RawAddress0,並且與 UPX[1] 的部分重疊。但是可以看見它所分配的空間有 10000,這使得程式可以再裝載時一次把所有程序都載入到這個空間。而需要解壓縮的文件與解壓縮的程式都寫在了第二個 Section

原本的

https://ithelp.ithome.com.tw/upload/images/20220925/201356753JKWV0nDfO.png

壓縮後的

https://ithelp.ithome.com.tw/upload/images/20220925/20135675Fa1GgX2vCQ.png

下一篇將實際解析被 UPX 加殼的檔案是如何破殼而出的。

喔對了,現在大部分防毒軟體只要看到有常見的殼就認為是病毒喔。
https://ithelp.ithome.com.tw/upload/images/20220925/201356758iTbjGyXM0.png


上一篇
Dx10 - 導入與導出函式位置表解析
下一篇
Dx12 - UPX 脫殼解析
系列文
我逆向你逆向我的逆向工程膩31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言