Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

blacksalamander

Chapter 2 본문

Reverse Engineering

Chapter 2

검은도롱뇽 2018. 11. 25. 15:41

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