kali linux에서 vim은 syntax highlight 기능이 기본으로 셋팅이 안되어 있다. 매번 syn on을 할 수도 없다. 그래서 다음과 같이 미리 설정하여 vim을 사용할 때 마다 자동으로 설정 할 수 있도록 할 수 있다. .vimrc 파일 생성 위치는 기본 홈 디렉토리 (/root/.vimrc)를 생성해서 사용하면 된다. set nocompatible " 오리지날 VI와 호환하지 않음 set autoindent " 자동 들여쓰기 set cindent " C 프로그래밍용 자동 들여쓰기 set smartindent " 스마트한 들여쓰기 set wrap set nowrapscan " 검색할 때 문서의 끝에서 처음으로 안돌아감 set nobackup " 백업 파일을 안만듬 set visualbe..
시작점에서부터 IMAGE_DOS_HEADER의 사이즈인 64Bytes 만큼 떨어진 곳에서 찾을 수 있다. 이 부분은 IMAGE_DOS_HEADER와 같은 구조체가 아닌 이름 그대로 프로그램이다. 일반적인 실행파일처럼 실행한다. 이 프로그램에는 "This program cannot be run in DOS mode."라는 문자열을 볼 수 있다. 32bit 프로그램을 도스(16bit)에서 실행할 때 위의 문자열을 출력(16bit 환경에서 실행 하는 것을 방지하는 역할) 해주는데 쓰인다. 그래서 현재는 사용하지 않는 부분이다. 이 부분은 개발 환경 등에 따라 크기가 가변적이다. (MS-DOS Stub Program의 크기가 가변적이기 때문에 IMAGE_DOS_HEADER의 e_lfanew의 값이 가변적이게 되..
64byte(0x40)의 고정된 크기를 가지며, 디스크상의 첫 부분과 메모리상 ImageBase에 위치하고 있다. ImageBase는 프로세스의 가상 메모리 0 ~ FFFFFFFFh 범위(32bit의 경우)에서 PE파일이 로딩(매핑)되는 시작 주소를 나타내는 부분이다. DOD Header의 처음 2byte는 DOS Header 구조체의 e_magic 인자로 MZ로 시작한다. 이는 DOS 개발자 가운데 한명인 Mark Zbikowski의 이니셜로 DOS Header의 시그니쳐로 사용하고 있다. e_magic은 MZ를 나타내는 첫 2bytes 로 DOS Header 의 식별자이고, 마지막의 e_lfanew는 가변적인 값을 가지는 것으로 PE Header(NT header)의 주소를 알아볼 수 있다. e_lf..
Runtime Data Areas는 Process로서의 JVM이 프로그램을 수행하기 위해 OS로부터 할당 받는 메모리 영역이다. Runtime Data Areas는 각각의 목적에 따라 5 개의 영역으로 나뉜다. PC Registers Java Virtual Machine Stacks Native Method Stacks Method Area Heap 이 중에서 앞의 세가지 메모리 영역, 즉 PC Register와 두 개의 Stack 영역은 각 Thread 별로 생성이 되고 Method Area 와 Heap은 모든 Thread에게 공유된다.