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로 세팅.
출처 : 리버싱 핵심원리 ( 이승원 / 인사이트 )
반응형
'IT Security' 카테고리의 다른 글
칼리리눅스 - sparta 취약점도구 (1) | 2019.01.17 |
---|---|
CVE - 보안 취약점 (2) | 2019.01.08 |
리버싱) Ollydbg (올리디버거) (0) | 2018.11.27 |
리버싱) 리버스 엔지니어링 (0) | 2018.11.24 |
보안 솔루션 구축) pfSense 테스트 (0) | 2018.10.17 |