- DOS Stub Code
DOS Stub Code는 필수 구성 요소가 아니기 때문에 DOS Stub Code가 없더라도 프로그램이 실행되는 데는 아무런 지장이 없다.
DOs Stub Code는 도스 모드에서 실행시켰을 때 실행되는 코드이며, 보통 "This Program must be run under Microsoft Windows"라는 메시지를 출력하고 종료되는 코드가 삽입된다. 또는 오브젝트 파일을 링킹할 때 STUB 옵션을 이용하여 원하는 스텁 코드를 삽입할 수 있다는 점 정도만 알아두면 된다.
- PE 만들기 1
PE 파일 제작의 첫번째 단계는 DOS Header를 만들기다.
Hex 에디터를 열고 64바이트의 새 파일을 생성한다. ( 필자는 HxD를 이용한다 )
[편집]-[바이트 삽입] 메뉴를 선택하고 64바이트를 생성한다.
[그림 1] 64 바이트 크기의 새로운 파일 생성
[그림 2]와 같이 처음 2 바이트 부분의 값을 "4D 5A"로 수정한다. 이는 DOS Header의 시그니처인 MZ를 의미한다.
[그림 2] DOS 시그니처 입력
[그림 3]과 같이 마지막 4바이트의 값을 0x40으로 설정한다. DOS Stub Code는 생략이 가능하기 때문에 생략하도록 한다. 즉, DOS Header 다음에 바로 PE Header가 온다. 그리고 기본적으로 리틀엔디안 방식이므로 40 00 00 00으로 입력해야 한다.
[그림 3] PE Header의 시작 지점을 지정
이 파일은 계속 사용해야 하기 때문에 CreatePE라는 이름으로 저장한다.
참고
'NCS보안3기 > 리버스 엔지니어링' 카테고리의 다른 글
[Reverse Engineering] PE 구조 (0) | 2017.05.22 |
---|