Writeup
[Tryhackme] Classic Passwd 리버싱 챌린지 Writeup
이둥둥
2025. 3. 22. 22:25
플래그를 출력하는 패스워드를 찾아보자
디컴파일하기 전에 칼리리눅스에서 파일을 실행했다
chmod +x [filename]
./[filename]
실행권한을 부여하는거 잊지말기!
일단 테스트로 username을 admin으로 입력하고 시도해보니 실패한다
IDA에서 정적분석을 해보겠음
strcmp 함수가 등장하는걸로 보니 문자열 비교를 하는 기능이 있을듯
이번엔 디컴파일해보자
플래그에 해당하는 THM{}는 찾았는데 반복문으로는 힌트를 딱히 못 찾음
조건값에 해당하는 값을 decrypt해봐도 해당하는 문자는 못 찾았다
다시 칼리 리눅스로 돌아가보자
깃허브 URI 다음에 등장하는 AGB6~ 이게 패스워드가 아닐까
저번 리버싱에서 썼던 ltrace 명령어를 활용해서 테스트
ltrace ./file.exe admin
strcmp 함수가 입력값인 admin을 AGB6js5d9dkG7이랑 비교한다
위에서 찾은 값이랑 거의 비슷한데 약간 다르다 왜일까
플래그 획득 성공! 문제는 풀었는데 strings 명령어로 찾은 값이랑
실제 비교값이 왜 다른지 궁금하다
strings는 실행파일에 저장된 ASCII 문자열을 출력하는 반면에
ltrace 명령어는 실제로 프로그램에서 비교하는 동적 값을 보여줘서 다르게 나타나는듯
결론적으로는 ltrace로 찾은 값이 더 정확하다고 보여짐
Medium 난이도 문제 해결~~!!