이번 문제 역시 입력을 받고 맞으면 correct 틀리면 wrong을 출력해주는 문제이다.
je부분을 통해 correct일지 wrong일지가 나뉘는것을 볼 수 있다.
함수를 살펴보면
rax = [rsb]
rcx = [rsp+20]
eax = [rcx + rax]
rcx에 src1의 주소 대입
eax = [rcx+rax] : src1[str[cnt]]
rcx = [rsp]
rdx에 src2의 주소 대입
ecx = [rdx + rcx] : src2[cnt]
cmp(eax,ecx)
src1의 인덱스 역할을 하는 str[cnt]의 값은 char자료형이기 때문에 src1의 메모리를 0x7f까지 참조한다.
파이썬으로 계산을 해주면
일단 정답이 나오기는 했는데 블로그를 참고하면서 풀어서 다시 풀어봐야 될것같다.
'보안 > 리버싱' 카테고리의 다른 글
[리버싱] 드림핵 rev-basic-7 풀이 (0) | 2021.11.13 |
---|---|
IAT, EAT 로딩 과정 (0) | 2021.10.02 |
[리버싱] 드림핵 rev-basic-5 풀이 (0) | 2021.10.02 |
[리버싱] 드림핵 rev-basic-4 풀이 (0) | 2021.10.02 |
[리버싱]pe 헤더 정리 (0) | 2021.09.25 |