作者CMJ0121 (请多指教!!)
看板NetSecurity
标题[闲聊] 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/%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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.122.171
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/NetSecurity/M.1485264443.A.67E.html
1F:推 a2735000: 推 01/25 02:30
2F:推 liangh: 推 用心的版主 01/25 02:52
3F:→ Peruheru: 推,这些分享让资安板越来越充实 01/25 08:54
4F:→ Peruheru: 没推到 01/25 08:54
5F:推 zha0: JavaScript Obfuscator 01/25 10:46
6F:推 birk0066: 推用心版主 01/25 12:46
7F:推 now99: 推 01/26 12:26
8F:推 supermario85: 推 01/29 18:30
9F:推 Debian: 感谢版主无私分享。 02/03 01:07
10F:推 brayce1996: 用心 03/15 11:02