|  |
| |
| jwkzzangs |
EntryPoint(EP, 엔트리포인트)는 파일이 메모리에 로드되어 파일작성자가 짜 놓은 코드의 처음 부분을 가리키고 있습니다.
이는 PE View로 확인했을때 NT헤더의 Optional 헤더의 Address of Entry Point 값(RVA)으로 확인할 수 있습니다.
대부분의 실행파일들은 EP가 0이 아닌값이 저장되어있는데 가끔 악성코드나 기타 악용을 목적으로 하는 파일을 강제로 EP에 0을 집어넣고 파일이 실행되고 EP 전까지 파일을 실행하기 위한 코드를 실행하는 부분에 추가로 EP를 0에서 다른값으로 바꾸도록 하는 코드를 삽입해 놓습니다.
EP에 0을 너놓은 이유는 여러가지가 있겠지만 기본적으로 EP가 0이되면 PE View, Olly, Ida같은 프로그램들이 파일을 읽을때 EP가 0이면 잘못된 파일로 인식하게 됩니다. 이를 이용해서 분석을 어렵게 만들기 위함입니다. |
2012/09/16 |
|
| jwkzzangs |
이해가 되셨는지요.... |
2012/09/16 |
|
| kywoo81 |
음.. 그럼 EP가 0이면 exe의 첫번째 바이트부터 실행을 시작한다라는건가요?
RVA값을 읽어서 거기부터 어셈블리 코드를 한바이트씩 실행하면
아무리 자기 압축화일이거나 기타 꼬아놓은 실행화일들도 한줄씩 역어셈이 가능하다는 말이죠? |
2012/09/16 |
|
| jwkzzangs |
그렇죠 실행은 되지만 각종툴들이 ep 0체크를 하기때문에 툴 사용 하기가 까다로워지죠 |
2012/09/16 |
|
| jwkzzangs |
처음 실행하는 부분은 메모리에 로드 됬을때 이미지베이스 더하셔야 합니다~ |
2012/09/16 |
|