1619, 1/81 회원가입  로그인  
   disnwkdl420
   매우 기초적으로 알아야 할 레지스터 정보 요약

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=8132 [복사]


저희가 리버싱을 배울 때에는 컴퓨터의 구조적인 면을 더 자세하게 알아야하는데요. 이때 레지스터에 대한 기초적인 지식이 도움이 됩니다. 레지스터는 CPU에서 명령을 처리할 때 참조되는 데이터 저장 장소로 RAM에 있는 데이터들에 직접, 임의적인 접근을 할 수 있게 해줍니다. CPU에서는 레지스터가 가장 가까운 위치에 있어 RAM, 하드디스크 보다 빨리 접근할 수 있습니다.

1. 8개의 32bit 범용 레지스터

   EAX : 함수의 리턴값을 저장하거나 산술연산을 하는 레지스터
   EBX : 특정 주소의 지정을 위해 사용하는 레지스터
   ECX : 명령어가 반복 수행될 때 횟수를 저장하는 레지스터
   EDX : 큰 수의 곱, 나눗셈 등의 연산시 EAX 레지스터와 함께 사용
   EDI : 문자열 복사, 비교 시에 목적지 문자열의 주소를 저장하는 레지스터
   ESI : 문자열 복사, 비교 시에 소스 문자열의 주소를 저장하는 레지스터
   ESP : 명령어 수행시 스택 위치를 저장하는 레지스터
   EBP : 함수 인자, 스택 변수에 접근하기 위해 사용하는 레지스터

2. 6개의 16bit 세그먼트 레지스터

   CS : 코드 세그먼트를 가리킴
   SS : 스택 세그먼트를 가리킴
   DS, ES, FS, GS : 데이터 세그먼트를 가리킴

3. EFLAGS, EPI 레지스터

   - EFLAGS : 현재 프로그램의 상태나 분기문 조건 등의 검사에서 사용되는 플래그들을 모아놓은 레지스터
   - EPI : CPU가 다음에 실행해야 할 명령어를 담고 있는 메모리의 주소를 저장하는 레지스터

  Hit : 10453     Date : 2015/07/21 01:08



    
ikarte666 EPI가 아니라 EIP 아닌가요? 2015/07/21  
dlgjsdn79 EIP를 오타낸거 같내요 ~ 2016/01/09