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로 세팅.
출처 : 리버싱 핵심원리 ( 이승원 / 인사이트 )
반응형