본문 바로가기

Reversing/Theory

Chapter 9. 실행 압축(Run-Time Packer) I

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.