지역변수 출력 (리버싱 유형 - 1)

2021. 3. 17. 17:06악성코드 분석

#include <stdio.h>

int main() {
	int a = 5;
	printf("%d\n", a);
	return 0;
}

지역변수인 a를 출력하는 코드를 x64dbg로 동적 분석

Ctrl + G 를 누른 뒤 main을 입력하면 main 함수로 이동

 

sub rsp, 28 : rsp가 가르키는 주소를 0x28 만큼 빼서 스택공간 확보

mov edx, 5 : edx에 5를 대입 (int a = 5 와 대칭)

lea rcx, qword ptr ds:[7FF7D84B2240] : rcx에 주소 대입(7FF7D84B2240 : %d)

call <printf> : printf 함수 불러오기

xor eax, eax : 같은 값을 eax하면 무조건 0이 나옴 (만약 1 반환을 원하면 mov eax, 1로 나옴)

add rsp, 28 : 스택공간 확보해놓은 것을 다시 더해서 공간을 없앰

ret : 종료

'악성코드 분석' 카테고리의 다른 글

easy-crackme1.exe 분석 보고서  (0) 2021.05.06
메모리 구조  (0) 2021.02.25
abex' crackme #1 write-up  (0) 2021.02.06
x64dbg 사용법  (0) 2021.01.30
리버스 엔지니어링 기초 (레지스터 및 명령어)  (0) 2021.01.28