ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dreamhack - simple-operation
    wargame/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
Designed by Tistory.