공부해요/리버싱_핵심원리

14. 실행 압축

yenas0 2024. 10. 8. 23:47
반응형

데이터 압축

어떤 형태의 파일이든 내부는 바이너리로 되어 있음 -> 압축 알고리즘을 사용해 크기를 줄일 수 있음

비손실 압축 압축 파일 100% 복원 가능
보관 및 이동에 용이하도록 하려는 목적으로 사용
7-zip, 빵집과 같은 프로그램 이용
Run-Length, Lempel-Ziv, Huffman 알고리즘
손실 압축 압축 파일 100% 복원 불가
압축률을 높이는 목적
멀티미디어 파일들(jpg, mp3, mp4)에서 대부분 사용

 

 

 

실행 압축

  • 실행(PE: Portable Executable) 파일을 대상으로 파일 내부에 압축해제 코드를 포함하고 있어서 실행되는 순간에 메모리에서 압축을 해제시킨 후 실행시키는 기술
  • 실행 압축된 파일도 PE파일, 내부에 원본 PE파일과 decoding루틴 존재. EP코드에 decoding루틴이 실행되며 메모리에서 압축을 해제시킨 후 실행
항목 일반 압축 실행 압축
대상파일 모든 파일 PE파일
압축 결과물 압축 파일 PE파일
압축해제 방식 전용 압축해제 프로그램 사용 내부의 decoding 루틴
파일 실행 여부 자체 실행 불가 자체 실행 가능
장점 모든 파일에 대해 높은 압축물로 압축 가능 별도의 해제 프로그램 없이 바로 실행 가능
단점 전용 압축해제 프로그램이 없으면 해당압축 파일 사용 불가  실행할 때마다 decoding 루틴이 호출되기 때문에 실행시간이 아주 미세하게 느려짐 

 

 

 

패커

PE Packer란 실행 파일 압축기

 

사용 목적

PE 파일의 크기를 줄이고자 하는 목적

PE 파일의 내부 코드와 리소스를 감추기 위한 목적

 

종류

순수한 의도의 패커 VirusTotal에서 진단 안 됨
UPX, ASPack 등
불순한 의도의 패커 VirusTotal에서 진단됨
UPack, PESpin, NSAnti 등

 

 

 

프로텍터데이터 압축

어떤 형태의 파일이든 내부는 바이너리로 되어 있음 -> 압축 알고리즘을 사용해 크기를 줄일 수 있음

비손실 압축 압축 파일 100% 복원 가능
보관 및 이동에 용이하도록 하려는 목적으로 사용
7-zip, 빵집과 같은 프로그램 이용
Run-Length, Lempel-Ziv, Huffman 알고리즘
손실 압축 압축 파일 100% 복원 불가
압축률을 높이는 목적
멀티미디어 파일들(jpg, mp3, mp4)에서 대부분 사용

 

 

 

 

 

실행 압축

실행(PE: Portable Executable) 파일을 대상으로 파일 내부에 압축해제 코드를 포함하고 있어서 실행되는 순간에 메모리에서 압축을 해제시킨 후 실행시키는 기술

 

실행 압축된 파일도 PE파일, 내부에 원본 PE파일과 decoding루틴 존재. EP코드에 decoding루틴이 실행되며 메모리에서 압축을 해제시킨 후 실행

항목 일반 압축 실행 압축
대상파일 모든 파일 PE파일
압축 결과물 압축 파일  PE파일
압축해제 방식 전용 압축해제 프로그램 사용 내부의 decoding 루틴
파일 실행 여부 자체 실행 불가 자체 실행 가능
장점 모든 파일에 대해 높은 압축물로 압축 가능 별도의 해제 프로그램 없이 바로 실행 가능
단점 전용 압축해제 프로그램이 없으면 해당압축 파일 사용 불가 실행할 때마다 decoding 루틴이 호출되기 때문에 실행시간이 아주 미세하게 느려짐 

 

 

 

 

 

패커

PE Packer란 실행 파일 압축기

 

사용 목적

PE 파일의 크기를 줄이고자 하는 목적

PE 파일의 내부 코드와 리소스를 감추기 위한 목적

 

종류

순수한 의도의 패커 VirusTotal에서 진단 안 됨
UPX, ASPack 등
불순한 의도의 패커 VirusTotal에서 진단됨
UPack, PESpin, NSAnti 등

 

 

 

 

프로텍터

PE 파일을 'Reverse Code Engineering'으로부터 보호하기 위한 유틸리티

 

사용목적

크래킹 방지

코드 및 리소스 보호

 

종류

사용 프로텍터 ASProtect, Themida, SVKP 등
공개용 프로텍터 UltraProtect, Morphine 등

 

 

 

notepad.exe vs notepad_upx.exe

- PE header의 크기는 동일

- 섹션 이름 변경

- 첫 번째 섹션의 RawDataSize = 0(파일에서의 크기는 0)

- EP(Entry Point)는 두 번째 섹션에 위치

- 리소스 섹션(.rsrc)의 크기는 거의 변하지 않았음

반응형

'공부해요 > 리버싱_핵심원리' 카테고리의 다른 글

16. Base Relcoation Table  (4) 2024.10.09
15. UPX 실행 압축된 notepad 디버깅  (0) 2024.10.09
13. PE File Format  (1) 2024.10.02
11장. Lena's Reversing for Newbies  (0) 2024.09.24
10장. 함수 호출 규약  (0) 2024.09.22