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 하면
플래그를 찾을 수 있다.
반응형
'워게임 > HackTheBox' 카테고리의 다른 글
[HackTheBox] FreeLancer - 웹해킹 / SQL Injection / LFI / dirb (86) | 2023.07.14 |
---|---|
[HackTheBox] Forest - 포렌식 / Stegsolve / Steghide / Vigenere (66) | 2023.04.25 |
[HackTheBox] xorxorxor - 암호학 (78) | 2023.04.09 |
[HackTheBox] Reminiscent - 포렌식 / Volatility (70) | 2023.04.05 |
[HackTheBox] USB Ripper - 포렌식 / Python (56) | 2023.03.23 |