어셈블리어 속 main함수의 프롤로그와 에필로그 (레지스터, 스택, 메모리 구조와 함께 알아보자)
어셈블리어 코드를 분석하기 위해 몇 가지 알아야 할 cs지식이 있다.레지스터와 스택, 메모리구조이다. 이 3가지를 어느 정도 이해해야 어셈블리어 코드와 c언어 코드를 일대일 대응해가며 분석할 수 있다. 우선 레지스터부터 설명해보겠다.범용 레지스터 (x32)상수/주소 저장, 4바이트(32bit)EAXAccumulator, 산술논리연산을 수행하며 함수의 리턴값이 이 레지스터에 저장된다. 호출 함수의 성공 여부, 실패 여부를 쉽게 파악할 수 있다.EBXBase address, 메모리 주소 저장 용도ECXCounter, 반복 카운터 (반복할 횟수 저장, 반복 작업 수행)EDXData, EAX와 같이 쓰이고 부호 확장 명령 등에 쓰인다. 큰 수의 곱셈/나눗셈 등의 연산이 이루어질 때EBPBase Pointer,..
2025. 3. 26.
최근댓글