리버스 엔지니어링 레지스터 종류 및 설명
레지스터레지스터의 기억 용량은 메모리에 비해 적지만 고속으로 접근할 수 있습니다.주요 레지스터에는 범용레지스터, 상태레지스터, 명령포인터, 세그먼트레지스터가 있습니다. 범용 레지스터리버스 엔지니어링(Reverse Engineering)에서 프로그램의 동작 원리를 파악하기 위해 바이너리 코드를 분석하는 과정입니다. 범용 레지스터는 연산이나 포인터 저장 등 범용적으로 사용되는 레지스터 입니다.EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI와 같은 레지스터들은 중요한 역할을 수행합니다. 이번에는 리버싱에서 사용되는 각 레지스터의 의미와 주요 용도에 대해 알아보도록 하겠습니다.EAX (Extended Accumulator): EAX 레지스터는 계산 결과나 함수의 반환 값 등을 저장하는 데..
2024. 9. 22.
리버스 엔지니어링 조건문에서 자주 사용하는 명령어 종류 및 설명
리버스 엔지니어링 조건문에서 자주 사용하는 명령어 종류 및 설명리버스 엔지니어링에서는 다양한 어셈블리 명령어를 이해하고 이를 통해 프로그램의 동작을 분석합니다. SHL, CMP, JNZ, JL, JMP, SUB, JZ, JA, JGE 등의 명령어는 특히 자주 사용됩니다.SHL (Shift Left): 첫 번째 피연산자의 비트를 두 번째 피연산자만큼 왼쪽으로 이동시키는 명령어입니다.MOV EAX, 2 ; EAX에 2를 설정SHL EAX, 1 ; EAX의 값을 왼쪽으로 1비트 이동결과적으로 EAX는 4가 됩니다.CMP (Compare): 두 피연산자를 비교하고 결과에 따라 상태 플래그를 설정하는 명령어입니다.MOV EAX, 5 ; EAX에 5를 설정CMP EAX, 3 ; EAX와 3을 비교결과적으로 EAX는..
2024. 9. 22.