12
리리리 (Reversing) 리리리리 리리리리리 리리리리 리리 Packing 리리 리리 2011 리 Keeper – 리리 리리리리 – Packing 리리리 , 한한한

리버싱 (Reversing) 으로부터 실행파일을 보호하기 위한 Packing 기술 개발

Embed Size (px)

DESCRIPTION

리버싱 (Reversing) 으로부터 실행파일을 보호하기 위한 Packing 기술 개발. 신민용 , 한경수. 2011 년 Keeper – 보안 기술문서 – Packing. 순 서. 시작하기 전에 주제 및 목표 제안 배경 필요한 기술 연구 및 구현범위 참고할 문헌 일 정. 시작하기 전에. Reverse Engineering 이란 ? 장치 또는 시스템의 기술적인 원리를 그 구조분석을 통해 발견하는 과정 Packing - PowerPoint PPT Presentation

Citation preview

Page 1: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

리버싱 (Reversing) 으로부터 실행파일을 보호하기 위한 Packing 기술 개발

2011 년 Keeper – 보안 기술문서 – Packing

신민용 , 한경수

Page 2: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

순 서시작하기 전에주제 및 목표제안 배경필요한 기술연구 및 구현범위참고할 문헌일 정

Page 3: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

시작하기 전에

Reverse Engineering 이란 ?

◦ 장치 또는 시스템의 기술적인 원리를 그 구조분석을 통해

발견하는 과정

Packing

◦ Reverse Engineering 을 막기위해 암호화하거나

실행파일을 압축하여 소스코드를 볼 수 없도록 만드는 것

Packer : Packing 을 해주는 프로그램

3

Page 4: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

주제 및 목표

주 제

◦ PE(Portable Executable) 파일을 리버싱으로부터

보호하기 위해 Protector 기능을 포함하는 Packing

기술 개발

목표

◦ 개발한 Packing 기술을 적용할 수 있는 Packer 개발

4

Page 5: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

제안 배경

5

리버스 엔지니어링이란 것은 상업적 또는 군사적으로하드웨어를 분석한 것에서 시작되었으며 , 목적은 최종 제품을 가지고 과정을 추론하는 것이다 . 따라서 오류 , 접근 불가 문서 수정 , 안전 감시 등의 좋은 용도로 사용될 수 있다 .

하지만 , 소프트웨어 불법 정품 인증 및 시리얼 코드 생성 / 키젠 및 크랙 생성 등을 통해 지적 재산권을 침해할 수 있으므로 이를 방지하는 기술을 만들어 보고자 함 .

Page 6: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

필요한 기술

6

PE 구조 파악

Page 7: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

필요한 기술

7

Section 수정 및 추가◦ 우리가 원하는 작업을 하기 위해서 Section 부분의 수정이

필요함

Page 8: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

필요한 기술

8

Section 수정 및 추가◦ 우리가 원하는 작업을 하기 위해서 Section 부분의 수정이

필요함

◦ 암호화에 대한 복호화 가능한 데이터를 넣기 위해서는 Section 의 추가가 필요함

Page 9: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

필요한 기술

9

프로그램이 실행되는 실제 API 주소를 얻어오고 조작하여 원하는 Entry Point 로 옮겨야 함◦ 이 때 , OS 에서 자동으로 IAT(Import Address Table) 를

못쓰므로 프로그램에서 사용되는 모든 dll 을 파악하여 로딩해야 함

IDT(Import Directory Table) / IAT 암호화 복호화 코드 작성

Page 10: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

연구 및 구현범위

10

연구범위◦ 프로젝트를 진행하면서 PE 구조를 상세히 익힌다 .

◦ Section 부분을 수정해 암호화 / 복호화가 가능한 알고리즘을 적용시킨다 .

◦ 프로그램이 수행되면서 원래의 동작에 영향을 미치지 않는 범위 내에서 중간동작을 수정할 수 있는 방법을 연구한다 .

구현범위◦ W32Dasm, Ollydbg 를 속일 수 있는 Packer 구현

Page 11: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

참고할 문헌

11

도서◦ 『 REVERSE ENGINEERING( 역분석 구조와 원리 ,

리버스엔지니어링 ) 』 , 박병익 , 이강석 저◦ 『정보 보안 개론과 실습 ( 시스템 해킹과 보안 ) 』 , 양대일

인터넷 http://seestory.tistory.com - 패킹 제작과정 http://gogil.tistory.com/ - 패킹 구현방법 http://www.reversecore.com/18 - PE 파일

Page 12: 리버싱 (Reversing) 으로부터  실행파일을 보호하기 위한  Packing 기술 개발

일 정

12

구 분 1 주 2 주 3 주 4 주 5 주 6 주 7 주 8 주

PE 파일구조 분석

Section 수정 / 추가

암호화 / 복호화 알고리즘 구현

구현 확인 및 테스트

문서 정리 및 검증