일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- SQL Injection
- attack vector
- IMAGE_EXPORT_DIRECTORY
- BOF
- sctf 2021
- Windows 11
- IMAGE_IMPORT_DESCRIPTOR
- GetProcAddress()
- NT File Header
- Tutorial
- PE file format
- Windows
- RVA
- NT Header
- docker
- DOS Stub
- powerlevel10k
- 리버싱 핵심원리
- web
- PE Header
- samsung ctf
- stack based buffer overflow
- Windows Terminal
- zsh theme customization
- NT Optional Header
- ubuntu
- DOS Header
- Buffer Overflow
- oh-my-zsh
- WSL
- Today
- Total
목록Windows (7)
나만의 메모노트
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bF4zSc/btrcXljYUVh/jZWFphP9N9yE4CwNVTkUq1/img.png)
1. PowerShell을 관리자 권한으로 실행 2. Linux용 Windows 하위 시스템 사용 설정 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 3. WSL 2 실행을 위한 요구 사항 확인 x64 시스템의 경우: 버전 1903 이상, 빌드 18362 이상 ARM64 시스템의 경우: 버전 2004 이상, 빌드 19041 이상 Windows 10 버전 확인하는 방법 Windows 메뉴 ➡ 설정 ➡ 시스템 ➡ 정보 Windows 10 버전 1903 또는 1909를 실행하고 있는 경우 Windows 메뉴 ➡ 설정 ➡ 업데이트 및 보안 ➡ 업데이트 확인 - 빌드 번호 : 18362.1..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bhZjkS/btrcOf6n0to/ikQKtsaecTGgil4tZ3yhwk/img.png)
1. Install zsh sudo apt-get install curl -y sudo apt-get install zsh -y sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" chsh -s $(which zsh) GitHub - ohmyzsh/ohmyzsh: 🙃 A delightful community-driven (with 1800+ contributors) framework for managing your zsh configu 🙃 A delightful community-driven (with 1800+ contributors) framework for managing your..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NvtIZ/btraVTRaKDy/iTh6fKgBitkzcYe9kS3QO0/img.png)
EAT (Export Address Table) Windows OS에서 라이브러리(Library)란? 다른 프로그램에서 불러 쓸 수 있도록 관련 함수들을 모아 놓은 파일 (DLL/SYS) 대표적인 라이브러리 : Win32 API 핵심 라이브러리 파일 : kernel32.dll 개념 : 라이브러리 파일에서 제공하는 함수를 다른 프로그램에서 가져다 사용할 수 있도록 해주는 핵심 메커니즘 해당 라이브러리에서 Export하는 함수의 시작 주소를 정확히 구할 수 있음 Export 정보는 PE 파일 내 특정 구조체(IMAGE_EXPORT_DIRECTORY)에 저장 IMAGE_EXPORT_DIRECTORY 구조체는 PE File에 하나만 존재하며, PE Header에서 확인 가능 실제 IMAGE_EXPORT_DIRE..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/IOj35/btraVqBKQ8X/TwHH4ag2yucB38QiZHkf2K/img.png)
IAT (Important Address Table) 개념 : 프로그램이 어떤 라이브러리에서 어떤 함수를 사용하고 있는지를 기술한 테이블 Windows OS의 핵심 개념인 Process, Memory, DLL 구조 등에 대한 내용이 함축되어 있음 DLL 로딩 방식 중 Implicit Linking에 대한 메커니즘을 제공하는 역할 디버거를 통해 IAT 확인 해보기 대상 프로그램 : notepad.exe CALL [1001104] → notepad.exe에서 kernel32.dll의 CreateFileW를 호출하는 명령어 CALL 명령어를 통해 호출하는 주소는 IAT 메모리 영역 (.text 섹션의 메모리 영역) 1001104 주소에 저장된 7C810CD9라는 값을 통해 CreateFileW를 호출 (직접 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cGvuhQ/btraTcpJNrw/2xsNx80pfQGNXMddxKqrG1/img.png)
NT Header IMAGE_NT_HEADERS NT Header의 구조체 3개 멤버로 구성 PE Signature : 50450000h(“PE”00) 값을 가짐 File Header 구조체 Optional Header 구조체 크기 : F8 (248byte) File Header IMAGE_FILE_HEADER 구조체 파일의 개략적인 속성을 나타냄 주요 멤버 각 멤버별 값들의 설정이 부정확할 경우 비정상 실행 1) Machine Machine 넘버는 CPU별로 고유한 값을 가짐 (32bit Intel x86 호환칩 = 14C의 값) winnt.h 파일에 정의된 Machine 넘버의 값 2) NumberOfSections 섹션의 개수 해당 값은 반드시 0보다 커야 함 정의된 섹션 개수와 실제 섹션이 다르면..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GxVrT/btraRxuxHG2/AqTU8kJwyUoSyfRfPDe891/img.png)
notepad.exe를 대상으로 Hex editor를 통해 바이너리 코드를 살펴보며 PE File Format 이해하기 Dos Header 초기 PE File Format Microsoft가 널리 사용되던 DOS 파일에 대한 하위 호환성을 고려하여 제작 PE Header의 첫 부분은 DOS EXE Header, 이후 IMAGE_DOS_HEADER 구조체로 확장 IMAGE_DOS_HEADER 구조체 크기 : 40h (64byte) 주요 멤버 e_magic : DOS signature (4D5A 👉 ASCll값으로 "MZ"를 의미함) e_lfanew : NT Header의 offset을 표시 NT Header 구조체의 위치를 가리킴 파일에 따라 가변적인 값을 가짐 Dos Stub Dos Header 아래에 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bqCadQ/btraZMcCr4d/DtYffNiFQrXdJVD0yk4Tmk/img.png)
개요 PE (Portable Excutable) Windows OS에서 사용되는 실행 파일 형식 UNIX에서 사용되는 COFF(Common Object File Format) 기반 Windows OS에서만 사용 다른 OS로 이식성이 용이함 PE File PE32 : 32bit 형태의 실행 파일 PE+/PE32+ : 64bit 형태의 실행 파일 PE File Type OBJ를 제외한 모든 파일이 실행 가능한 파일 DLL, SYS 파일 등은 셸(Explorer.exe)에서 직접 실행할 수 없으며, 다른 형태의 방법(debugger, service, etc)을 이용하여 실행 가능 PE Header 실행 파일이 실행되기 위해 필요한 모든 정보가 구조체 형식으로 저장되어 있음 메모리 적재 위치, 실행 위치, 실행..