본문 바로가기

SYSTEM

패킹, 언패킹

728x90
반응형

▶패킹

실행 압축

실행 파일 내부에 있는 코드를 압축하여 평소에는 코드를 압축한 상태로 저장

→ 파일을 실행하면 메모리에서 압축을 해제 → 파일을 실행

 

Zip 파일처럼 압축을 해제해야 프로그램을 실행하는 방식 X

일반 프로그램처럼 바로 실행 가능 O

<WHY?>

파일 압축시 용량을 더 적게 사용 – 프로그램의 크기를 줄임(전 후 3~4배의 차이)

→ 작은 용량으로 악성코드를 빠르게 전파할 수 있음

 

 

▶언패킹

패킹했던 파일을 해체함

<기본 원리> 

- 압축이 해제된 상태의 코드를 dump 함

실행 압축 프로그램이 실행되는 시점에서는 압축되기 전 상태로 돌아가야함

그때의 메모리 상태를 메모리 내용 그대로 파일에 저장함 → Entry Point 진입점을 파일을 압축하기 전 위치로 설정해줌 

 

언패킹 루틴은 마지막에 EP로 점프하여 원본코드가 적상작동할 조건을 만들어줌

OEP로 순서가 달라지는 부분을 찾음  메모리에 위치하는 언패킹된 데이터를 얻을 수 있음 

언패킹된 데이터를 덤핑 = 원본코드를 얻음!

 

+ Dump : 장애 발생시 그 상태를 출력, 인쇄하기 위해 기억장치나 파일 내용, 자료에 기억시킨 내용을 보조기억장치 등에 복사 or 전이하는 조작 / 컴퓨터 주기억장치나 레지스터 등에 해당 내용들이 존재 및 지정된 메모리 영역

728x90
반응형

'SYSTEM' 카테고리의 다른 글

함수 호출 규약 (Calling Convention)  (0) 2023.01.05
파일 디스크립터, 실습  (0) 2023.01.05
안디디버깅 종류  (1) 2023.01.05
프로세스, 스레드 차이  (0) 2023.01.05
세마포어, 뮤텍스 차이  (0) 2023.01.05