blacksalamander
Chapter 2 본문
https://www.youtube.com/watch?v=S6uFitUIYlc&list=PLnIaYcDMsScxpiB8VpGhM4-NtovcM_uB9&index=2
위 사이트를 통해 학습하였다.
프로세스 : 프로그램이 실행되는 것
메모리 : 가상메모리에 프로그램 파일이 올라감
가상메모리 : 컴퓨터가 물리메모리를 효율적으로 사용하기 위한 것
물리메모리 : 8GB RAM
레지스터 : CPU가 사용하려고 가지고 있는 데이터
EAX : 계산에 대한 저장을 하는 데이터
EBX : 베이스 레지스터
ECX : 카운터 레지스터(숫자를 셈)
EDX : 데이터 레지스터
ESI : 소스 인덱스(출발지)
EDI : 데스티네이션 인덱스(목적지)
EBP : 스택의 아랫부분(베이스) 포인터
ESP : 스택의 윗부분(탑) 포인터
EIP : CPU가 다음에 실행할 명령어 주소
EAX = 32bit
AX = 16bit
AH/AL = 8bit
재시작 : Ctrl + F2
한스텝 진행(오버) : F8
한스텝 진행(인투) : F7
주소 이동 : Ctrl + G
브레이크 포인트 : F2
계속 실행 : F9
명령어 수정하기 : Space bar
빅 엔디언
12 34 56 78
리틀 엔디언
78 56 34 12
오른쪽에서 왼쪽으로 데이터 넘어감
CreateFileA, ReadFile에 대한 설명 : Google에 검색
CMP EAX, -1 : 함수가 실패했는지를 확인 (EAX FFFFFFFF : 실패)
JZ(Jump if Zero) : 결과가 0이면 점프 (= JE(Jump Equal))
JNZ(Jump if Not Zero) : 결과가 0이 아니면 점프. Z flag
JE(Jump if Equal) : 비교 결과가 값을 때 점프
JL(Jump if Less) : CMP A, B에서 A가 작을 때 점프. S flag
NOP(No OPeration) : 실행하지 않음
'Reverse Engineering' 카테고리의 다른 글
Chapter 1 (0) | 2018.11.25 |
---|