IT Security

리버싱) 바이트 오더링 및 레지스터

로픽 2018. 12. 3. 19:24
300x250

바이트 오더링 및 레지스터

* 바이트 오더링 : 컴퓨터에서 메모리에 데이터를 저장하는 방식


  - 빅엔디안 : 데이터를 앞에서 부터 순차적으로 적용(사람이 보는 방식과 동일) 

  ㄴ 네트워크 프로토콜에서 사용하는 방식


  - 리틀엔디안 : 데이터를 역순으로 저장하는 방식  ( 00AB12CD -> CD12AB00)

  ㄴ Intel x86 CPU에서 사용하는 방식


* 레지스터 - CPU 내부에 존재하는 다목적 저장 공간


  - 범용 레지스터 - 상수, 주소를 저장할 때 사용. 또한 어셈블리 명령어에서는 특정 레지스터를 조작하는데 사용.

  ㄴ 32비트 기준 : EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP


  - 세그먼트 레지스터 - 메모리 관리


  - 프로그램 상태와 컨트롤 레지스터

  ㄴ EFLAGS : Flag Register ( 각 비트마다 의미를 가지고 있으며, 1,0 ( On/Off | True/False ))

  ㄴ Zero Flag(ZF) : 연산 후 결과값이 0이 되면 ZF가 1(True)로 세팅된다.

  ㄴ Overflow Flag(OF) : 부호 있는 수의 오버플로가 발생했을 때 1로 세팅. MSB가 변경되었을 때 1로 세팅.

  ㄴ Carry Flag(CF) : 부호 없는 수의 오버플로가 발생했을 때 1로 세팅.




출처 : 리버싱 핵심원리 ( 이승원 / 인사이트 )

반응형