보안/리버싱
[리버싱] 드림핵 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까지 참조한다.
파이썬으로 계산을 해주면
일단 정답이 나오기는 했는데 블로그를 참고하면서 풀어서 다시 풀어봐야 될것같다.