보안/리버싱

[리버싱] 드림핵 rev-basic-6 풀이

jiiihye 2021. 10. 2. 20:52

이번 문제 역시 입력을 받고 맞으면 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까지 참조한다.

파이썬으로 계산을 해주면 

일단 정답이 나오기는 했는데 블로그를 참고하면서 풀어서 다시 풀어봐야 될것같다.