레지스터 종류

728x90

'rax' - 가장 중요한 레지스터로 시스템 콜의 실질적 번호를 가리키는 번호, 함수 결과값이 담기는 레지스터

'rbx' - base register로 메모리 주소를 지정할 때 사용

'rcx' - 보통 반복문에 사용 

'rdx' - 데이터 레지스터로 연산 수행할 때 rax 와 많이 사용함

 

여기 위 네개의 레지스터를 '데이터 레지스터'라고 합니다.

 

다음 네개는 '포인터 레지스터' 입니다. 이 레지스터들은 특정한 주소를 가리킵니다. 

'rsi' - 메모리를 이동하거나 비교할 때 출발주소을 가리키는데 사용 

'rdi'- 메모리를 이동하거나 비교할 때 목적지 주소를 가리키는데 사용 

'rbp' - 함수 파라미터나 주소를 가리킬 때 사용

'rsp' - 중요, stack의 삽입 및 삭제 명령어에 의해서 변경되는 스택 가장 위를 가리키는 포인터 

 

출처: https://com24everyday.tistory.com/223

728x90

'Technique' 카테고리의 다른 글

실행중인 프로세스를 gdb에 부착하는 방법  (0) 2021.10.06
pwntools에서 debug 및 ld_preload 사용법  (0) 2021.10.06
Heap Spray  (0) 2021.10.01
PIE 디버깅  (0) 2021.07.25
SROP  (0) 2021.07.25