본문 바로가기

PE

PE 구조 (8) 이번에는 이전 글에서 다루지 못한 .rsrc 섹션에 대해서 알아보도록 하겠다. [.rsrc 섹션] 이 섹션은 GUI 프로그램에서 많이 볼 수 있는 섹션으로 그래픽 정보를 저장하는 섹션이다. 해당 섹션의 구조는 다른 섹션과는 달리 트리구조로 되어 있으며 이 트리를 구성하는데 있어 각 노드들에는 두가지의 구조체가 있다. IMAGE_RESOURCE_DIRECTORY라는 구조체와 IMAGE_RESOURCE_DIRECTORY_ENTRY 구조체이다. 또 섹션의 트리에는 속하지 않지만 실제 리소스들의 대한 정보를 가지고 있는 IMAGE_RESOURCE_DATA_ENTRY 구조체가 있다. 해당 섹션의 속성정보를 알아본 뒤 각 구조체에 대해서 알아보도록 하겠다. - IMAGE_SCN_CNT_INITIALIZED_DATA.. 더보기
PE 구조 (5) 이번에는 IMAGE_DATA_DIRECTORY 구조체를 알아볼 차례이다. WinNT.h를 보면 IMAGE_OPTIONAL_HEADER안에 있지만, 사실은 NT Additional Fields 하부구조체이다. 구조는 아래와 같다. [그림 1 - 구조체 형태] WinNT.h에 명시되어 있는 것을 보면 IMAGE_DATA_DIRECTORY의 엔트리 개수는 16개로 정의되어 있다. [그림 2 - 엔트리 정의] 엔트리는 다음과 같이 정의되어 있고, 마지막은 0으로 예약되어 있기 때문에 16개가 되는 것이다. [그림 3 - 엔트리 목록] 아래는 notepad.exe의 IMAGE_DATA_DIRECTORY 구조체의 각 엔트리 부분을 표시한 것이다. 표시한 각 부분의 앞쪽 4바이트는 RVA(DWORD VirtualAd.. 더보기
PE 구조 (1) 포렌식에서 메모리 분석을 통해 파일을 카빙한다거나 하드디스크 이미지에서 파일을 카빙하여 해당 파일이 무엇인지 분석하려고 할 때 꼭 필요한 지식이기에 이렇게 상세하게 공부를 해 본다. 일반적으로 포렌식에서 파일을 분석 할 경우는 악성코드로 의심되는 파일을 분석하는 경우로 정적분석과 동적분석을 하게 되는데 리버스 엔지니어링 같은 경우에는 정적분석에 속한다. 정적분석을 할 경우 어셈블리어와 메모리 구조 등에 대한 지식도 있어야 하지만, PE구조에 대한 지식도 있어야 하기에 이렇게 상세히 PE 구조를 몇개의 포스팅을 거쳐 알아 볼 것이다. PE(Portable Executable)파일포맷은 윈도우에 해당하는 파일포맷으로 .exe, .dll, .cpl, .sys, .scr, .drv, .vxd, .ocx 확장자를.. 더보기
PE 돋보기?? PE분석기라고 하기에 참 뭐한 프로그램이라... 일단은 PE 돋보기라고 해두겠다 ㅋㅋㅋㅋㅋㅋㅋ PE문서 보면서 공부하던 도중에 실제 값들은 어떤지 궁금해서 한번 짜보았다 ㅋ Import 함수 리스트 뽑는 기능은 아직 추가를 못했다(군대가기전에는 추가 할 수 있겠지 ㅋㅋ) 별로 어려운건 없다. 구조체변수 선언해서 쭈욱 뽑아주면 끝 ㅡㅡ;; 더보기