SMALL
패킹
패킹이란 PE file을 압축하는 방법중 하나이다.
일반적으로 알고있는 알집같은 경우는 프로그램을 압축하면 압축을 풀어야 실행이 가능하다.
하지만 패킹은 압축된 상태에서도 실행이 가능하도록 하는 기술이다.
패킹을 하는 프로그램을 패커라고 하는데 패커의 종류는 아주 다양하다.ex) upx, upack, aspack
압축을 한상태인데 프로그램을 실행이 가능한 이유는 디코딩 소스가 내부에 있기 때문이다.
패킹을 하면 EP는 패킹을 푸는 디코딩 소스를 가리킨다.
예를 들어 프로그램이 다음과 같이 실행이 된다고 하자
1. 프로그램 1번째부분 실행
2. 프로그램 2번째 부분 실행
3. 프로그램 3번째 부분 실행
4. 프로그램 4번째 부분 실행
이 프로그램을 패킹을 한 후 실행 하면 다음과 같이 소스코드가 바뀐다.
(이부분이 Entry Point)
1. 압축된 프로그램 1번째 부분 풀기
2. 압축된 프로그램 2번째 부분 풀기
3. 압축된 프로그램 3번째 부분 풀기
4. 압축된 프로그램 4번째 부분 풀기
(이부분이 Original Entry Point)
5. 프로그램 1번째부분 실행
6. 프로그램 2번째 부분 실행
7. 프로그램 3번째 부분 실행
8. 프로그램 4번째 부분 실행
패킹을 하는 이유는 프로그램의 크기를 줄이고 내부 소스를 감추기 위해서이다.
LIST
'리버싱 > 이론 정리' 카테고리의 다른 글
PE FILE FORMAT (0) | 2020.07.26 |
---|---|
stolen byte (0) | 2020.07.26 |
레지스터 (0) | 2020.07.25 |
빅엔디언과 리틀엔디언 (0) | 2020.07.24 |
올리디버거 단축키 (0) | 2020.07.24 |