PEview HxD
file > 실행 x 데이터 덩어리(hex)
memory > 메모리에 매핑이 됨
Hello World.exe 구조
> 파일 헤더 부분
MZ - PE 파일의 시작 부분에 나타나는 서명
MS-DOS 헤더, NT 헤더, 섹션 - PE 파일이 메모리에 로드될 때 각각의 세션이 어떤 역할을 하는지 정의
>섹션 설명
.text - 코드가 들어가는 부분 / 프로그램의 실행 코드가 포함된다
.rdata - 읽기 전용 데이터로 실행 코드가 아닌 상수 값이나 문자열 등의 데이터가 들어간다
.data - 쓰기 가능한 데이터가 들어가는 영역, 프로그램이 실행 중에 사용할 수 있는 변수들이 위치
.rsrc - 리소스 섹션, 아이콘, 이미지, UI 등 리소스 파일이 포함된다.
>HEX 값 분석
- 16진수의 값 원시 파일을 나타낸다, 필요에 따라 ASCII 문자로 변환할 수 있다.
>구조 분석
PE헤더 : IMAGE_DOS_HEADER, IMAGE_NT_HEADERS 등 파일의 전체 구조를 나타내는 정보
섹션헤더 : 파일이 메모리에 로드될 때, 코드나 데이터가 메모리 상에 어떻게 배치될지를 정의하는 역
수정 하고 ctrl + s 누르면 저장 됨
PE의 값을 바꾸지 않았을 깨는 실행이 된다
값을 바꾸면 실행이 안된다
복사하고 붙여넣기 쓰기에 바꾼 hex값의 위치를 바꿔서 전체적으로 모든 값을 바꾼다
엔트리 포인트
이미지 베이스를 억지로 바꾸면 다 깨지게 됨
원래 상태