완료됨
snow 함수 해석 질문
ida로 prob 파일을 열어서 분석중입니다.
일단 main 함수부터 해석을 하는 중인데 sub_1ADF와 sub_1C2F 함수 해석을 어떻게 해야 할지 모르겠습니다.
우선 sub_1C2F를 살펴보면 dword_4860라는 값과 sub_17D3 함수의 반환값을 xor 연산해서 리턴하고 있습니다.
dword_4860 값을 알아내고자 메모리를 보면 ?라는 값만 나와있습니다.
sub_1ADF를 살펴보면 변수에 값을 할당해주는 것을 볼 수 있고
그 중 sub_1933를 살펴보면 for문을 사용해 dword_4860[i] = dword_4860[i + 1] 연산을 해 주는 것을 볼 수 있습니다.
이를 통해 sub_1ADF 함수로 dword_4860에 값을 할당하고 sub_1C2F 함수로 xor 연산을한 다음 저장된 문자열과 비교해서 참 거짓을 판별하는 과정임을 알 수 있습니다.
그런데 dword_4860에 들어가는 값이 뭔지 모르겠습니다. 마음 같아서는 브레이크 포인트 걸고 실행해서 알아내고 싶은데 F2랑 F9 단축키가 먹히지 않습니다. 이에 대해 문제 풀이 관련된 조언 주시면 감사합니다.
#reversing
작성자 정보
답변
1
keyme
CTF Second Place
우선 dword_4860에 할당되는 ?는 동적으로 할당되는 데이터입니다. 따라서 리눅스 환경에서 GDB로 동적디버깅을 해보셔야 할 것 같습니다.
추가로 풀이와 관련된 힌트를 드리자면 모든 코드를 완벽하게 분석하는 방향보다는 핵심 코드를 찾아서 분석하는 방향으로 생각하시는게 좋을 것 같습니다.