이번 문제 역시 입력을 받고 맞으면 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

+ Recent posts