看板 NetSecurity作者 CMJ0121 (請多指教!!)標題 [閒聊] 2017.w04 加殼程式 (Executable Compression)時間 Tue Jan 24 21:27:19 2017
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/加殼壓縮
[1]:
https://zh.wikipedia.org/wiki/UPX
UPX - 维基百科,自由的百科全书
UPX(the Ultimate Packer for eXecutables)是一个免费且开源的软件,支持很多种不同操作系统上的文件格式。 ...
[2]:
https://en.wikipedia.org/wiki/Entry_point
Entry point - Wikipedia
In computer programming, an entry point is where control is transferred from the operating system to a computer program, at which place the processor enters a program or a code fragment and execution begins. In some operating systems or programming languages, the initial entry is not part of the pro ...
[3]:
https://en.wikipedia.org/wiki/JSFuck
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.122.171
※ 文章代碼(AID): #1OXrOxP- (NetSecurity)
※ 文章網址: https://www.ptt.cc/bbs/NetSecurity/M.1485264443.A.67E.html
推 liangh: 推 用心的版主2F 01/25 02:52
→ Peruheru: 推,這些分享讓資安板越來越充實
沒推到3F 01/25 08:54
推 zha0: JavaScript Obfuscator5F 01/25 10:46
--