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 |