-
Dreamhack - simple-operationwargame/Dreamhack 2024. 7. 17. 20:36
[Beginner - simple-operation - reversing]
일단 문제 파일을 다운로드 받으면 chall과 flag 이렇게 두 개의 파일이 있다.
chall 파일을 ida로 열면 위와 같이 main()을 디컴파일 할 수 있다.
여기서 알 수 있는 것은 랜덤값과 사용자의 입력값을 xor연산한 후, 이것을 거꾸로 한 것이 a0b4c1d7이 나와야 flag를 알 수 있다는 것이다.
그리고 주의할 것은 입력값이 "%d"가 있어서 10진수라는 것이다.
결론적으로 xor한 값이 7d1c4b0a여야 하는 것이다.
랜덤값 ^ 입력값 = 7d1c4b0a면, 입력값 = 랜덤값 ^ 7d1c4b0a도 성립하기 때문에 위와 같이 입력해야 하는 값을 구하는 코드를 짠다.
이제 우분투에서 nc로 문제 환경에 접속한다.
내 C언어 소스코드를 실행시켜서 문제 환경에 나온 랜덤값을 붙여넣으면 입력해야 하는 값이 10진수로 출력된다.
이걸 그대로 nc 문제 환경에 입력하면 끝이다.
플래그를 획득했다!
'wargame > Dreamhack' 카테고리의 다른 글
Dreamhack - rev-basic-8 (1) 2024.07.23 Dreamhack - rev-basic-6 (1) 2024.07.23 Dreamhack - rev-basic-4 (0) 2024.07.17 Dreamhack - rev-basic-3 (0) 2024.07.17 Dreamhack - pathtraversal (0) 2024.05.28