Chapter 9. 실행 압축(Run-Time Packer) I
1. Data Compress
- Algorithm에 의해 Data(File)를 더 작은 크기로 변환시키는 Encoding 과정과 저장된 Data(File)를 불러와 다시 원래 상태로 복원시키는 Decoding 기술을 이용해 Data를 더 작은 저장 공간에 효율적으로 기록하기 위한 기술
- 비손실 압축
· 압축한 Data를 100% 원래 상태의 Data(File)로 복원시킬 수 있는 압축
· Data(File)의 크기를 줄여서 보관 및 이동에 효율성을 높일 수 있다.
· 비손실 압축 Algorithm
◦ Run-Length
◦ Lempel-Ziv
◦ Huffman
- 손실 압축
· 압축한 Data(File)를 복원할 때 원래상태로 복원시킬 수 없는 압축
· Data에 의도적인 손상을 주어 압축률을 높이는 목적으로 사용한다.
· 주로 Multimedia Data(jpg, mp3, mp4 etc.)에 사용된다.
· 원본과는 차이가 발생하지만 일반 사람들은 거의 구분을 못할 정도로 손상을 입힌다.
2. 실행 압축(Run-Time Packer)
- 실행 압축
· 실행(Portable Executable) File을 압축해놓은 기술
· 실행 File 내부에 압축해제 Code가 포함되어 있어 실행되는 순간에 Memory에서 압축해제 Code가 실행되어 원본 File이 실행되도록 하는 기술
- 일반압축 & 실행압축 차이점
일반 압축 | 실행압축 | |
대상 File | 모든 File | PE File(exe, dll, sys) |
결과물 | 압축(zip, rar) File | PE File(exe, dll, sys) |
압축 해제 방식 | 전용 압축해제 Program 사용 | 내부의 Decoding Routine 사용 |
File 실행 여부 | 자체 실행 불가 | 자체 실행 가능 |
장점 | 모든 FIle에 대해 높은 압축률로 압축가능 | 별도의 해제 Program 없이 바로 실행 가능 |
단점 | 전용 압축해제 Program이 없으면 해당 압축 File을 사용할 수 없음 | 실행할 때마다 Decoding Routine이 호출되기 때문에 실행시간이 아주 미세하기 느려짐 |
- Packer
· 실행 File 압축기를 말하며 Run-Time Packer, PE File 전문압축기라고도 한다.
· Packer의 한 종류로 Anti-Reversing 기법에 특화된 Packer를 Protector라고 한다.
· 사용목적
◦ PE File의 내부 Code, Resource와 같은 상세 정보를 보호하기 위해 사용된다.
◦ 크기를 줄이기 위해 사용된다.
· Packer의 종류
◦ 결과물로 평범한 PE File을 만들어 내는 Packer : UPX, ASPack etc.
◦ PE Header를 심하게 손상시키며 원본 File이 크게 변형되는 Packer : UPack, PESpin, NSAnti etc.
· UPX를 통해 압축된 PE File의 구조 비교
· Protector
◦ PE File을 Reverse Code Engineering(Reversing)으로부터 보호하기 위한 Utility
◦ 실행 압축뿐만 아니라 Reversing을 막기 위한 기법들이 추가된 압축 기술
◦ Reversing을 막기 위한 기법
▹ Anti-Debugging
▹ Anti-Emulating
▹ Code Obfuscating
▹ Polymorphic
▹ Garbage Code
▹ Debugger Detection
◦ 사용 목적
▹ Cracking 방지
▹ PE File의 내부 Code, Resource와 같은 상세 정보를 보호하기 위해 사용된다.
◦ Protector의 종류
▹ 상업용 Protector : ASProtect, Themida, SVKP etc.
▹ 공개용 Protector : UltraProtect, Morphine etc.
'Reversing > Theory' 카테고리의 다른 글
Chapter 10. 실행 압축(Run-Time Packer) II - UPX (0) | 2015.08.16 |
---|---|
Chapter 8. PE Header III - IAT & EAT (0) | 2015.08.16 |
Chapter 7. PE Header II - RVA to RAW (0) | 2015.08.16 |
Chapter 6. PE header I - PE Format (0) | 2015.08.16 |
Chapter 5. Calling Convention (0) | 2015.08.16 |