Reversing
-
PE 파일 구조 (3) - PE 헤더(NT Header)IT/리버싱 핵심원리 2017. 11. 29. 16:28
공부를 시작하기에 앞서 본 글은 '리버싱핵심원리', 이승원 저자, 인사이트 를 참고했음을 밝힙니다.또한 공부하는 입장에서 정리를 목적으로 작성하였기때문에 틀린 정보가 있을수도 있다는 것을 알려드립니다. 관련 글PE 파일 구조 (1) - PE 기본구조, VA & RVAPE 파일 구조 (2) - PE 헤더(DOS Header, DOS Stub)PE 파일 구조 (3) - PE 헤더(NT Header) 계속해서 PE 헤더에 대해서 알아보도록 하겠습니다. NT Header NT Header 구조체 IMAGE_NT_HEADERS입니다. IMAGE_NT_HEADERS 구조체 typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader..
-
PE 파일 구조 (2) - PE 헤더(DOS Header, DOS Stub)IT/리버싱 핵심원리 2017. 11. 29. 15:51
공부를 시작하기에 앞서 본 글은 '리버싱핵심원리', 이승원 저자, 인사이트 를 참고했음을 밝힙니다.또한 공부하는 입장에서 정리를 목적으로 작성하였기때문에 틀린 정보가 있을수도 있다는 것을 알려드립니다. 관련 글PE 파일 구조 (1) - PE 기본구조, VA & RVAPE 파일 구조 (2) - PE 헤더(DOS Header, DOS Stub)PE 파일 구조 (3) - PE 헤더(NT Header) 1. PE 헤더 - PE 헤더는 많은 구조체로 이루어져 있다. DOS Header IMAGE_DOS_HEADER 구조체 typedef struct _IMAGE_DOS_HEADER { WORD e_magic; WORD e_cblp; WORD e_cp; WORD e_crlc; WORD e_cparhdr; WORD e..
-
PE 파일 구조 (1) - PE 기본구조, VA & RVAIT/리버싱 핵심원리 2017. 11. 28. 10:49
공부를 시작하기에 앞서 본 글은 '리버싱핵심원리', 이승원 저자, 인사이트 를 참고했음을 밝힙니다.또한 공부하는 입장에서 정리를 목적으로 작성하였기때문에 틀린 정보가 있을수도 있다는 것을 알려드립니다. 관련 글PE 파일 구조 (1) - PE 기본구조, VA & RVAPE 파일 구조 (2) - PE 헤더(DOS Header, DOS Stub)PE 파일 구조 (3) - PE 헤더(NT Header) 1. PE File Format - PE(Portable Executable) 파일은 Windows 운영체제에서 사용되는 실행 파일 형식이다. - PE 파일은 32비트 형태의 실행 파일을 의미하며 PE32라는 용어를 사용하기도 한다. 64비트의 형태의 실행 파일은 PE+ 또는 PE32+ 라고 부른다. PE 파일 ..
-
함수 호출 규약(Calling Convention)IT/리버싱 핵심원리 2017. 11. 24. 14:27
공부를 시작하기에 앞서 본 글은 '리버싱핵심원리', 이승원 저자, 인사이트 를 참고했음을 밝힙니다.또한 공부하는 입장에서 정리를 목적으로 작성하였기때문에 틀린 정보가 있을수도 있다는 것을 알려드립니다. 1. 함수 호출 규약(Calling Convention) - 함수를 호출할 때 파라미터를 어떤 식으로 전달하는가? 에 대한 일종의 약속이다. - 함수 호출 후에 ESP(스택 포인터)를 어떻게 정리하는지에 대한 약속이다. 주요 함수 호출 규약을 설명하기 앞서서 앞으로 나오게 될 용어들을 알아보자. Caller(호출자) 함수를 호출한 쪽 Callee(피호출자) 호출을 당한 함수 ex) main() 함수에서 printf() 함수를 호출했다면 Caller는 main()이고, Callee는 printf()가 되는 ..
-
스택 프레임(Stack Frame) 실습 - stackframe.exeIT/리버싱 핵심원리 2017. 11. 23. 17:57
공부를 시작하기에 앞서 본 글은 '리버싱핵심원리', 이승원 저자, 인사이트 를 참고했음을 밝힙니다. 또한 공부하는 입장에서 정리를 목적으로 작성하였기때문에 틀린 정보가 있을수도 있다는 것을 알려드립니다. 관련글 스택(Stack) 이란 무엇인가? 스택 프레임(Stack Frame) 에 대해 알아보자 스택 프레임(Stack Frame) 실습 - stackframe.exe 실습 '리버싱핵심원리' 에서 제공하는 stackframe.exe 파일을 예제로 실습을 진행하겠다. stackframe.exe 다운로드 먼저, "StackFrame.exe" 파일이 어떠한 코드로 작성 되었는지 아래 그림을 통해 살펴보자. StackFrame.cpp 소스코드 위의 코드를 간단히 살펴보면, 1. 메인함수 시작 2. a 변수에 1 ..
-
스택 프레임(Stack Frame) 에 대해 알아보자IT/리버싱 핵심원리 2017. 11. 23. 17:42
공부를 시작하기에 앞서 본 글은 '리버싱핵심원리', 이승원 저자, 인사이트 를 참고했음을 밝힙니다.또한 공부하는 입장에서 정리를 목적으로 작성하였기때문에 틀린 정보가 있을수도 있다는 것을 알려드립니다. 관련 글스택(Stack) 이란 무엇인가?스택 프레임(Stack Frame) 에 대해 알아보자스택 프레임(Stack Frame) 실습 - stackframe.exe 1. 스택 프레임스택 프레임이란 ESP(스택 포인터)가 아닌 EBP(베이스 포인터) 레지스터를 사용하여 스택 내의 로컬 변수, 파라미터, 복귀 주소에 접근하는 기법을 말한다. 스택 프레임을 어셈블리 코드로 보면 다음과 같은 형식이다. PUSH EBPMOV PEB, ESP ; 함수 시작 ; 현재의 ESP(스택포인터)를 EBP에 저장 ... ; 함수..