일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- SW에듀서포터즈
- Autoware
- Android
- Mobile
- 모바일프로그래밍
- Reversing
- Frida
- ctf-d
- tar
- Interceptor
- 안티디버깅
- upx
- ZIP
- CodeEngn
- Multimedia
- 침해사고대응
- K-shield Jr 10기
- disk
- crack
- John the ripper
- shadow
- 포렌식
- 써니나타스
- 디스크
- K-sheild Jr
- 파일해시생성
- swing
- 케쉴주
- 리버싱핵심원리
- Today
- Total
목록Waregame & CTF/Reversing (30)
물먹는산세베리아
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
IAT Import Address Table 프로그램이 어떤 라이브러리에서 어떤 함수를 사용하고 있는지 기술한 테이블 1.1. DLL Dynamic Linked Library 멀티태스킹을 지원하면서 라이브러리의 바이너리 코드를 그대로 프로그램에 삽입하는 방식이 비효율적이 되어버려 등장한 것이 DLL이다. Linux - *.so Windows - *.dll - 프로그램에 라이브러리를 포함시키지 않고 별도의 파일(DLL)을 때마다 불러와 쓴다. - 한번 로딩된 DLL의 코드, 리소스는 메모리 매핑 기술로 여러 process에서 공유해 쓴다. - 라이브러리가 업데이트되어도 DLL파일만 교체하면 된다. DLL 로딩 방식 Explicit Linking : 프로그램에서 사용되는 순간에 로딩하고 사용이 끝나면 메모리..
PE 파일은 DOS header ~ Section header까지는 PE 헤더, 그 아래의 Sections들은 PE 바디로 구성되어 있다. 먼저, PE 헤더에 대해 살펴보자. 참고로, 파일은 일반적인 PE 파일의 기본 구조를 갖고 있는 윈도우의 notepad.exe 파일을 사용했다. 1. DOS Header PEViewer에서 notepad.exe 열어봄 PE 헤더의 맨 앞에는 IMAGE_DOS_HEADER 구조체가 있다. IMAGE_DOS_HEADER typedef struct _IMAGE_DOS_HEADER // DOS .EXE header { WORD e_magic; // Magic number WORD e_cblp; // Byte on last page of file WORD e_cp; // Pa..
1. 데이터 이동 MOV : 데이터복사 MOV 목적지, 소스 소스 내용을 목적지에 복사 MOV EAX, ECX MOVZX : 0확장하여 데이터 복사 MOVZX 목적지(32bits/16bits), 소스(16bits/8bits) 소스 목적지에 복사, 목적지 남은 부분은 0으로 채우기 MOVZX EAX, CX 연산 전: EAX(89ABCDEF), ECX(12345678) 연산 후: EAX(00005678), ECX(12345678) * 목적지가 32bits면 소스는 16 bits, 목적지가 16bits면 소스는 8bits 레지스터가 옴 * CX는 ECX 레지스터의 하위 16비트 값(즉, 5678)을 의미한다. MOVSX : 부호 확장하여 데이터 복사 MOVSX 목적지(32bits/16bits), 소스(16bi..
1. 64bit 레지스터 1.1. 레지스터 변화 EAX (4byte) → RAX (8byte) EBX (4byte) → RBX (8byte) EBP (4byte) → RBP (8byte) ... 사이즈와 이름이 달라지긴 했으나 x64에서 EAX, EBX, ..가 사용되지 않는 건 아니다. EAX는 RAX의 하위 4byte를 의미하기 때문이다. 1.2. 새로 추가된 레지스터 x64에서 범용 레지스터의 크기는 64비트(8바이트)로 확장되었다. R8~R15 레지스터가 추가되어 개수도 18개로 늘어났다. 모든 범용 레지스터들의 이름은 'R'로 시작한다. (x86은 'E'로 시작한다.) 새로 추가된 64비트 모드에서만 사용 가능한 레지스터는 64비트 모드에서 호환 모드로 전환 한 후 64비트 모드로 다시 전환되는..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.