(Un)Packing 개념 훑어보기 2010.04.30 조 준
Contents 1. Packing 2. UnPacking 3. UPX 4. Crack Me 5. Ollydbg plugin unpacking
What is Packing? 실행 파일 포장
Packing의 목적 Protection (보호) Compressor (압축) Ex) Armadillo, Thermida 등 Ex) UPX 등 왜 분석가는 Packer를 알아야 하나? 패킹되어 있으면 원본코드가 압축이 되어있어서 리버싱 하는데 방해가 됨
Packing의 목적 – Cont’d ZIP vs Packer Packer 단일파일 압축에 주로 사용 ZIP과 Packer의 차이? ZIP : 다시 사용할 경우 압축을 풀어야 함 Packer : 다시 사용할 경우 압축을 풀지 않아도 됨.
Packing 패킹은 무조건 좋은 것? 무조건 패킹한다고 잘 되는 것이 아님 궁합처럼 맞는 프로그램이 있고 아닌 프로그램이 있음 Ex) A라는 패커 프로그램 1, 2
UnPacking 패킹의 반대말 보호를 목적으로 암호화 및 압축된 실행파일을 원상태로 해제 프로그램 패치 및 수정, 크랙
리버스엔지니어링 (역분석 구조와 원리) 예제 http://learn2crack.com Packing & UnPacking 예 리버스엔지니어링 (역분석 구조와 원리) 예제 http://learn2crack.com 현재 안 들어가짐. UPX 관련 문제
UPX Ultimate Packer for eXecutables 여러 운영체제에서 수많은 파일 포맷을 지원
OEP(Original Entry Point) EP vs OEP EP (Entry Point) 프로그램 시작점 OEP(Original Entry Point) 프로그램 최초 수행코드, 진입 점
Crack Me PE 찾기 EP
Crack Me 해당 파일을 OllyDbg로 열었을 때 OEP EP(Entry Point) - OEP
OllyDbg Plug-in을 이용한 매뉴얼 언패킹 OEP
IAT Import Address Table 동적으로 메모리 주소를 담는다.
OllyDbg Plug-in을 이용한 매뉴얼 언패킹