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 난이도 문제 해결~~!!