일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스 커널
- 컴퓨터구조
- C++
- 리눅스
- px4
- wargame
- radare2
- 시스템프로그래밍
- Leviathan
- pwncollege
- 드론
- 리눅스커널
- 시스템
- pwn.college
- 프로그래밍
- 워게임
- 알고리즘
- 커널
- 취약점
- write up
- 리버싱
- 시스템 프로그래밍
- Bandit
- css
- 어셈블리어
- Pwnable.kr
- C언어
- 시그널
- kernel
- 시스템해킹
- Today
- Total
목록컴퓨터구조&어셈블리어 (17)
Computer Security
end로 점프하면 프로그램이 종료된다고 가정하자. 프로그램이 종료됐을 때, 0x400000 부터 0x400019까지의 데이터를 대응되는 아스키 문자로 변환하면 어느 문자열이 나오는가? [Register] rcx = 0 rdx = 0 rsi = 0x400000 ======================= [Memory] 0x400000 | 0x67 0x55 0x5c 0x53 0x5f 0x5d 0x55 0x10 0x400008 | 0x44 0x5f 0x10 0x51 0x43 0x43 0x55 0x5d 0x400010 | 0x52 0x5c 0x49 0x10 0x47 0x5f 0x42 0x5c 0x400018 | 0x54 0x11 0x00 0x00 0x00 0x00 0x00 0x00 ================..
스택 -후입선출(LIFO, Last-In-First-Out) 자료구조 -스택포인터(SP, Stack Pointer)는 스택의 최상위(top) 원소를 가리키는 주소를 저장하는 레지스터 -8086은 스택 세그먼트 레지스터 SS와 스택 포인터 SP를 제공(80386+는 ESP) -스택은 상위 주소에서 하위 주소로 거꾸로 성장함 -레지스터에 있는 데이터를 스택에 저장하는 연산을 PUSH, 스택에 저장된 데이터를 꺼내서 레지스터에 적재하는 연산을 POP이라 한다. PUSH:스택은 상위주소에서 하위주소로 내려간다. POP:마지막으로 들어왔던 데이터부터 꺼내서 레지스터에 적재 PUSH 명령어 -피연산자로 지정한 워드/이중워드(80386+) 크기 레지스터나 메모리 데이터를 스택에 저장한다. -플래그:아무것도 영향을 미..
프로그램 실행 흐름 제어 -IP(Instruction Pointer): 다음에 실행할 명령어의 (오프셋) 주소를 저장하는 레지스터 -IP의 값을 변경하여 프로그램의 흐름을 제어할 수 있다. -프로세서는 이런 프로그램 제어를 위한 일련의 명령어들을 제공한다.(점프(무조건분기),조건부 분기, 서브루틴 호출명령어등등,,) 조건부 분기의 원리 -조건부 분기는 특정 조건에 따라 프로그램의 실행 흐름을 제어하는 명령어 집합을 의미한다. -고급 언어의 if, while, for 등의 문법 구조를 구현할 때 조건부 분기 명령어를 사용한다. -조건부 분기는 상태 플래그 값을 검사해서 분기 여부를 결정한다. -기본적으로 조건 분기 명령어를 실행하기 전에 산술 및 논리 연산을 실행하지만, 두 값을 단순 비교하기 위해서 비교..
증가와 감소 -INC와 DEC 명령어는 레지스터 또는 메모리 피연산자의 값을 1씩 증가/감소 시킨다. -피연산자의 값을 1씩 변화시키지만, 캐리 플래그에는 영향을 미치지 않는다. -플래그: AF, OF, PF, SF, ZF INC reg/mem DEC reg/mem 부호반전 -NEG명령어는 레지스터 또는 메모리 피연산자의 값에 2의 보수를 취한다. -플래그:AF, CF, OF, PF, SF, ZF NEG reg/mem 불(Boolean)연산 AND 명령어 -플래그: CF(0), OF(0), PF, SF, ZF -A AND B : 둘 다 1 ->1 AND reg/mem , reg/mem/imm OR명령어 -플래그: CF(0), OF(0), PF, SF, ZF -A OR B: 둘 중 하나가 1->1 OR r..