| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- stack frame
- crackme
- __vectorcall
- __stdcall
- 코드엔진
- ABI
- 리치헤더
- 32bit
- Rich Header
- x32
- 크랙미
- Programmers
- CodeEngn
- x64
- RVA
- rev
- Calling Convention
- Python
- __fastcall
- image section header
- Dos Stub
- 프로그래머스
- Image dos header
- pe format
- __cdecl
- 파이썬
- 함수 호출 규약
- 실행파일
- Reversing
- 리버싱
- Today
- Total
목록Section (2)
kj0on
0. 로더 관용성 윈도우 로더는 모든 필드를 엄격히 검증하지 않기 때문에 일부 스펙을 벗어나더라도 실행에 지장이 없는 경우가 있다. 이러한 특성을 이용하면 표준 권장사항을 지키지 않아도 섹션을 추가할 수 있다.1. IMAGE_SECTION_HEADER 1-1. Name[8]Name[8] 멤버는 섹션을 사람이 식별할 수 있도록 돕는 레이블 역할을 하며 윈도우로더가 해당 값을 해석하거나 검사하지는 않는다. 따라서 이름 자체는 임의의 값으로 설정해도 무방하며 단지 8바이트 크기만 충족하면 된다. 또한 NULL로 종료하지 않아도 무방하다.1-2. Misc.VirtualSizeMisc.VirtualSize 멤버는 섹션이 메모리에서 실제로 점유할 크기를 나타내지만 이 값이 0x0으로 설정되거나 SizeOfRawDa..
0. 실습파일"Hello World!"만 출력하는 간단한 프로그램을 작성하여 실습을 진행한다.1. 수동 추가실습에 사용할 프로그램은 010 Editor로 열어 진행하지만 이 외의 다른 Hex Editor를 사용해도 무방하다. 중요한 것은 실행 파일 내부의 바이너리 데이터를 직접 수정할 수 있는 도구를 사용하는 것이며 사용자의 편의에 따라 익숙한 에디터를 선택해도 결과에는 영향을 주지 않는다. 1-1. IMAGE_SECTION_HEADER섹션을 추가하기 위해서는 우선 PE 파일 내에서 IMAGE_SECTION_HEADER의 시작 위치로 이동해야 한다. reloc 섹션이 끝나는 지점부터 섹션을 추가한다. 추가 할 섹션의 위치에서 IMAGE_SECTION_HEADER의 멤버와 그 크기를 나타내면 위와 같다. ..