2017.w04 加殼程式 (Executable Compression) - 資安

Table of Contents

2017.w04 - 加殼程式 (Executable Compression)
> 時代的眼淚

## 前言 ##
又是因為工作的需要 ...

## 內容 ##
加殼壓縮[0] 是為了 1) 數據壓縮 以及 2)資料保護 兩個目的而產生的一種技術。

為了減少資料傳輸的大小 (節省頻寬) 而將一個檔案 (通常是可執行檔) 進行壓縮

解壓縮這個步驟則是執行檔案的時候 動態的解壓縮內容並且執行 (runtime packer)

在 Linx 的環境中 最常使用 UPX[1] 來當作一個加殼 (壓縮殼)

UPX 支援在記憶體中解壓縮內容:

- 重新指向 Entry Point 到解壓縮的邏輯
- 將壓縮後的內容放到 memory
- 執行解壓縮演算法 還原成原本的機械碼
- 回到原本程式的 Entry Point




加殼程式也可以被應用在非執行檔:

在 script language 中可以混淆原本的程式碼 轉換成不易閱讀的程式碼

例如 JS 的 Uglify 技術:移除非必要空白、簡化變數名稱、JSFuck[3]

目的是為了讓 JavaScript 可以被執行 但是很難被肉眼瞭解程式碼運作的邏輯


[0]: https://zh.wikipedia.org/wiki/%E5%8A%A0%E6%AE%BC%E5%A3%93%E7%B8%AE
[1]: https://zh.wikipedia.org/wiki/UPX
[2]: https://en.wikipedia.org/wiki/Entry_point
[3]: https://en.wikipedia.org/wiki/JSFuck

--

All Comments

Mary avatarMary2017-01-26
Jake avatarJake2017-01-30
推 用心的版主
Blanche avatarBlanche2017-02-01
推,這些分享讓資安板越來越充實
沒推到
Donna avatarDonna2017-02-04
JavaScript Obfuscator
Agatha avatarAgatha2017-02-07
推用心版主
Faithe avatarFaithe2017-02-09
Ina avatarIna2017-02-13
Emma avatarEmma2017-02-16
感謝版主無私分享。
Regina avatarRegina2017-02-21
用心