본문 바로가기

PE 헤더

Windows PE 구조 PE 포맷이란 윈도우 OS가 파일을 실행시키기 위해서 Portable Executable 포맷 (확장자 : .exe와 .dll)을 동적 라이브러리를 링킹하기 위한 참조 값과 API export and import tables, 리소스 데이터와 TLS 데이터를 캡슐화한 것이다. 소스 코드를 컴파일하고 링크를 하여 PE 구조의 실행 파일이 생성되는 과정을 순서도로 보면 실행 파일에는 어떤 내용들이 들어있는지 윈도우 Notepad.exe를 메모장으로 열어보겠다. MZ는 PE를 만든 Mark Zbikowski의 이니셜로써, MS-DOS 헤더의 시작을 알리는 문자이다. "This program cannot be run in DOS mod" 문자열은 DOS 에서 윈도우 프로그램이 실행되면 출력하는 문자열이다. PE.. 더보기
올리디버거(OllyDBG)를 이용한 nag 제거와 윈도우 PE 구조 문제 풀이 레나(Lena)라는 제작자가 리버싱 플래시 강좌 40강 중에 3번 강좌에 있는 RegisterMe.exe와 RegisterMe.Oops.exe파일을 풀어보겠다. 강좌 파일을 다운로드 받으면 연습 문제와 강의 파일이 모두 들어 있다. 참고로 관심이 있으신 분들은 1강부터 40강까지 순서대로 모두 보는 것을 추천한다. 자료는 모두 영문이다. 조만간 풀이를 올리도록 하겠다. 문제의 설명을 보면 nag를 제거하고, 헤더 문제를 해결이라고 되있다. nag는 경고창 정도를 의미한다. #03.tutorial 폴더의 files 폴더에 RegisterMe.exe 문제를 올리디버거로 실행해보면 nag 창이 떴다. 확인을 누르면 메인 폼이 뜬다. 종료를 하면 또 nag 창이 뜬다. 처리해야 할 부분은 실행할 때 1번, 종료.. 더보기