PE 파일의 주요 자료구조 분석 섹션 테이블 실습 CFF Explorer
·
리버싱
섹션테이블배열처럼 동일한 자료구조 나열섹션이 n개면 n개의 IMAGE_SECTION_HEADER가 있음IMAGE_SECTION_HEADER가 모여서 섹션 테이블의 구조각 섹션의 속성을 확인할 수 있음프로그램 실행 시 로더에서 PE헤더를 통해 섹션을 먼저 파악함 IMAGE_SECTION_HEADER의 구성요소 typedef struct _IMAGE_SECTION_HEADER { BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; union { DWORD PhysicalAddress; DWORD VirtualSize; } Misc; DWORD VirtualAddress; DWORD SizeOfRawData; DWORD PointerToRawData; DWORD Point..
PE 파일의 자료구조 헤더 분석 실습 Stud_PE, x32 dbg
·
리버싱
Stud_PE을 사용해서 IMAGE_NT_HEADERS 확인하기Stud_PE은 직관적이고 특정 구조 부분을 선택하면 그 부분을 하이라이팅 해준다이전 이론 포스팅에서 다뤘던 헤더 부분을 살펴보자 https://eggsmong.tistory.com/46 윈도우 실행파일 PE파일의 구조와 PE 헤더를 알아보자PE파일이란?Window에서 사용되는 파일 형식으로 exe, dll, sys 등운영체제에 의해 메모리에 로드되고 실행되는데 필요한 주요 데이터들이 포함되어 있다가상 메모리에 매핑된 후에도 실행 전후 레이eggsmong.tistory.com Stud_PE에 예제 파일인 “sample_x32.exe”를 로드하고 IMAGE_NT_HEADER를 찾아보자→ Basic HEADERS tree view 부분 클릭 ..
윈도우 실행파일 PE파일의 구조와 PE 헤더를 알아보자
·
리버싱
PE파일이란?Window에서 사용되는 파일 형식으로 exe, dll, sys 등운영체제에 의해 메모리에 로드되고 실행되는데 필요한 주요 데이터들이 포함되어 있다가상 메모리에 매핑된 후에도 실행 전후 레이아웃이 거의 변하지 않는 특성 PE파일의 구조 PE파일은 헤더와 여러 섹션들로 이루어져 있고모든 헤더들은 구조체 Struct 자료구조로 되어있음 헤더에는DOS HeaderDOS stubPE Header(Image_NT_Header)Section Table 섹션에는.data: 전역변수 저장.rdata: 읽기 전용 데이터 섹션.rsrc: 아이콘, 이미지 등의 리소스.bss: 초기화되지 않은 전역변수.text: 컴파일된 기계어 코드가 있음등의 다양한 섹션이 있고 개수에 제한은 없다고 한다각 헤더와 섹션들은 밑에..
프로세스의 가상주소공간 VAS 검증을 위한 실습 x64dbg
·
리버싱
지난 리버싱 포스팅에서 가상주소공간의 이론에 대해 알아보았고,오늘은 실습을 통해 가상주소공간의 실제 구조가 어떻게 구성되어 있는지 알아보자  사용할 툴은 x64dbg계산기 프로그램 calc.exe을 로드해 보자(경로는 C:\Windows\System32\calc.exe)  프로세스의 부모자식 관계를 파악하기 위해서는 process explorer64/procexp64.exe를 사용할 수 있다   위에서 x64dbg안에 calc.exe를 실행했기 때문에procexp64안에서도 x64dbg.exe의 하위에서 calc.exe가 위치해 있는 것이 확인된다.    x64dbg의 메모리탭 Memory Tab에 들어가서 calc.exe가 로드된 주소,DLL 파일 로드 주소, 권한 등을 확인할 수 있음→ calc.ex..
운영체제 프로세스 가상주소공간 Virtual Adress Space
·
리버싱
물리메모리 사용을 할 때 발생하는 문제1. 메모리 부족아키텍쳐에서 표현하고자 하는 값을 위해 필요한 만큼 물리 메모리가 부족할 수 있음물리 메모리의 크기를 넘어서는 주소 값으로 접근하면 크래시 발생 가능성 있음 2. 프로그램 간 사용 메모리 접근 통제 문제프로그램들이 동일한 물리 메모리 주소에 접근하는 경우 데이터 오염, 정보 노출, 다른 프로세스가 있는 공간에 접근하면 보안 문제도 있음 3. 단편화로 인한 메모리 낭비 문제실행 중인 프로그램/프로세스가 동일한 메모리 공간을 사용할 수 있어 효율적인 사용 X  윈도우 운영체제 프로세스의 가상주소공간  프로세스가 실행되면 바로 물리메모리에 올라가는 게 아니라,매핑테이블에서 가상주소공간에 할당한 후에 물리메모리를 할당한다→ 프로세스는 물리 메모리 주소를 직접..
윈도우 실행파일의 생성과 실행과정
·
리버싱
개념 이해를 위한 용어 정리DLL:동적 링크 라이브러리, 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는 라이브러리 폰노이만 구조:실행 파일이 평소에는 스토리지에, 실행 시 메모리에 매핑되고 CPU에 의해 실행됨. cpu는 기계어만 이해할 수 있다  윈도우 실행파일 생성 및 실행과정    위에서 말했듯이 실행파일은 원래는 스토리지에 저장되어 있다가 실행이 시작되면메모리에 로드되는 단계를 거치는데 소스코드 파일→오브젝트 파일→실행파일 순으로 만들어진다그리고 메모리상에 매핑된 exe(혹은 dll) 파일의 코드를 실행하는 것은 CPU 전처리기: 입력 데이터를 처리하여 다른 프로그램에 대한 입력으로서 사용되는 출력물을 만들어내는 프로그램컴파일러: 고급언어를 직접 기계어 코드로 변환, 문법 검사..