본문 바로가기

Reversing

(18)
General Purpose Register (범용 레지스터) General Purpose Register 8개의 각각의 쓰임새와 특징들 (범용 레지스터 복습겸) EAX , EBX, ECX, EDX (X자 돌림) - 주로 산술연산에 사용- ECX 는 반복문 명령어(LOOP)에서 반복 카운트(loop count)로 사용됨 (루프를 돌때마다 ECX를 1씩 감소시킴)- EAX 는 일반적으로 함수 리턴값에 사용됨 EBP, ESI, EDI, ESP (X자 아닌것들) - 주로 메모리 주소를 저장하는 포인터로 사용됨- ESP는 스택 메모리 주소를 가리킴 (스택 메모리 관리는 프로그램에서 매우 중요하기 때문에 ESP를 다른 용도로 사용하지 말아야 함)Stack Frame : EBP는 함수가 호출되었을때 그 순간의 ESP를 저장하고 있다가, 함수를 리턴하기 직전에 다시 ESP에 값..
리버싱 기초(레지스터) 1. CPU 레지스터 우선 CPU가 무슨 일을 하는지 알아보자. 간단하게 CPU(Central Processing Unit)는 메모리로부터 명령어를 가져와서(fetch) 어떤 명령어인지 해석하고(decode) 실행하는(execute) 동작을 한다. CPU에 대해서는 리버싱 작업에서 많이 사용되는 레지스터에 대해서만 알아보도록 하겠다.레지스터는 CPU에서 사용하는 고속의 기억장치다. CPU는 연산을 수행하기 위해 메모리에 있는 데이터를 CPU 내부에 있는 레지스터로 가지고 온다. 레지스터의 종류로는 범용 레지스터, 세그먼트 레지스터, 상태 플래그 레지스터, 명령 포인트 레지스터 등이 있다. 올리디버거에 나타나는 레지스터 정보를 살펴보자. 범용 레지스터□ EAX(Extended Accumulator Regi..