워게임/HackTheBox
[HackTheBox] Impossible Password - 리버싱 / IDA
SecurityMan
2023. 4. 18. 11:00
HackTheBox 에서 제공하는 쉬운 난이도의 리버싱 문제
간단하게 풀 수 있다.
반응형
문제에서 주어지는 파일은
impossible_password.bin 파일이다.
리버싱 문제이니 고민하지 않고 바로 IDA 로 열어보았다.
main 함수에서 f5를 눌러 수도코드를 살펴보니
* 을 출력한 뒤에 사용자 입력을 받는데
그 값이 SuberSeKretKey 일 경우 다음으로 넘어가게 되어있다.
그리고나서 ** 을 출력하고 또 입력을 받는데
이번엔 그 값이 v3 의 값과 같아야 한다.
v3 는 sub_40078D 의 수행결과가 저장되는데
sub_40078D 를 들어가 봤더니
시간을 시드값으로 해서 랜덤한 값을 생성하고
그 값의 % 94 + 33 을 계산해 V3 에 집어넣고 있었다.
사실상 이걸 알아내는건 불가능하다.
다시한번 main 함수를 살펴보면
결과가 맞을 경우 sub_400978(v5) 를 실행하는걸 볼 수 있다.
v5에는 지금 A]Kr=9k0=0o0;k1?k81t 값이 들어가있는데
sub_400978 에서는 인수로 받은 값을
9 와 XOR 연산을 하여 리턴을 한다.
그럼 이부분을 그대로 한번 더 연산해주면 원래값을 찾을 수 있다.
CyberChef(https://gchq.github.io/CyberChef/) 에서 간단하게
key 값을 9로 넣고 XOR 하면
플래그를 찾을 수 있다.
반응형