지역변수 출력 (리버싱 유형 - 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 |