130 likes | 456 Views
리버싱 (Reversing) 으로부터 실행파일을 보호하기 위한 Packing 기술 개발. 신민용 , 한경수. 2011 년 Keeper – 보안 기술문서 – Packing. 순 서. 시작하기 전에 주제 및 목표 제안 배경 필요한 기술 연구 및 구현범위 참고할 문헌 일 정. 시작하기 전에. Reverse Engineering 이란 ? 장치 또는 시스템의 기술적인 원리를 그 구조분석을 통해 발견하는 과정 Packing
E N D
리버싱(Reversing)으로부터 실행파일을 보호하기 위한 Packing기술 개발 신민용, 한경수 • 2011년 Keeper – 보안 기술문서 – Packing
순 서 시작하기 전에 주제 및 목표 제안 배경 필요한 기술 연구 및 구현범위 참고할 문헌 일 정
시작하기 전에 • Reverse Engineering이란? • 장치 또는 시스템의 기술적인 원리를 그 구조분석을 통해 발견하는 과정 • Packing • Reverse Engineering을 막기위해 암호화하거나 실행파일을 압축하여 소스코드를 볼 수 없도록 만드는 것 • Packer : Packing을 해주는 프로그램
주제 및 목표 • 주 제 • PE(Portable Executable)파일을 리버싱으로부터 보호하기 위해 Protector기능을 포함하는 Packing기술 개발 • 목표 • 개발한 Packing기술을 적용할 수 있는 Packer개발
제안 배경 • 리버스 엔지니어링이란 것은 상업적 또는 군사적으로하드웨어를 분석한 것에서 시작되었으며, 목적은 최종 제품을 가지고 과정을 추론하는 것이다. 따라서 오류, 접근 불가 문서 수정, 안전 감시 등의 좋은 용도로 사용될 수 있다. • 하지만, 소프트웨어 불법 정품 인증 및 시리얼 코드 생성 / 키젠 및 크랙 생성 등을 통해 지적 재산권을 침해할 수 있으므로 이를 방지하는 기술을 만들어 보고자 함.
필요한 기술 • PE구조 파악
필요한 기술 • Section 수정 및 추가 • 우리가 원하는 작업을 하기 위해서 Section부분의 수정이 필요함
필요한 기술 • Section 수정 및 추가 • 우리가 원하는 작업을 하기 위해서 Section부분의 수정이 필요함 • 암호화에 대한 복호화 가능한 데이터를 넣기 위해서는 Section의 추가가 필요함
필요한 기술 • 프로그램이 실행되는 실제 API 주소를 얻어오고 조작하여 원하는 Entry Point로 옮겨야 함 • 이 때, OS에서 자동으로 IAT(Import Address Table)를 못쓰므로 프로그램에서 사용되는 모든 dll을 파악하여 로딩해야 함 • IDT(Import Directory Table) / IAT 암호화 • 복호화 코드 작성
연구 및 구현범위 • 연구범위 • 프로젝트를 진행하면서 PE구조를 상세히 익힌다. • Section부분을 수정해 암호화 / 복호화가 가능한 알고리즘을 적용시킨다. • 프로그램이 수행되면서 원래의 동작에 영향을 미치지 않는 범위 내에서 중간동작을 수정할 수 있는 방법을 연구한다. • 구현범위 • W32Dasm, Ollydbg를 속일 수 있는 Packer 구현
참고할 문헌 • 도서 • 『REVERSE ENGINEERING(역분석 구조와 원리, 리버스엔지니어링)』, 박병익, 이강석 저 • 『정보 보안 개론과 실습(시스템 해킹과 보안)』, 양대일 저 • 인터넷 • http://seestory.tistory.com - 패킹 제작과정 • http://gogil.tistory.com/ - 패킹 구현방법 • http://www.reversecore.com/18 - PE파일