일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스커널
- radare2
- pwn.college
- kernel
- 커널
- Leviathan
- 컴퓨터구조
- C++
- 취약점
- 프로그래밍
- 워게임
- 드론
- 어셈블리어
- pwncollege
- Pwnable.kr
- 리버싱
- write up
- 시스템
- 시스템해킹
- css
- px4
- 리눅스 커널
- 시스템 프로그래밍
- wargame
- 리눅스
- 시그널
- 시스템프로그래밍
- Bandit
- C언어
- 알고리즘
- Today
- Total
목록어셈블리어 (6)
Computer Security

스택 -후입선출(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..

음수와 양수 -컴퓨터에서 정수 데이터는 부호가 있는(signed) 경우와 부호가 없는(unsigned) 경우로 분류 된다. -부호가 없는 경우 모든 비트가 정수의 데이터 비트로 이용되지만, 부호가 있는 경우 최상위 비트(MSB)가 부호 비트로 이용된다. -음수를 표현하기 위해 2의 보수법을 이용하며, 부호의 유무와 상관없이 덧셈과 뺄셈의 결과로 나오는 비트 데이터는 동일하다. -ADD와 SUB명령어는 데이터의 부호 유무를 구별하지 않고 단순히 비트들을 더하고 뺀다. ex) 다음과 같이 1바이트 정수 덧셈을 하는 경우 249와 2를 더하는 경우와 -7과2를 더하는 경우 모두 결과값이 11111011로 비트 필드가 서로 같다. 이진수 부호 없는 십진수 부호 있는 십진수 1111 1001 249 -7 0000..