ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dreamhack - rev-basic-4
    wargame/Dreamhack 2024. 7. 17. 19:14

    [LEVEL 1 - rev-basic-4 - reversing]

     

     

    이전 문제와 동일하게 입력값을 검증해 맞으면 correct, 틀리면 wrong을 출력하는 프로그램이 주어진다.

     

    똑같이 IDA로 열고 main() 디컴파일 했고, 이번엔 시프트연산을 하는 함수가 있어서 위와 같이 함수명을 변경했다.

     

     

     

     

    시프트 연산을 하는 해당 함수를 들어가보면 위와 같고, 여기서 16을 곱하는 건 4비트 왼쪽 시프트 연산을 하는 것과 같다.

     

     

     

     

    마찬가지로 byte_140003000을 들어가보면 위와 같이 나온다. 이걸 이용해 코드를 짜면 된다.

     

     

     

     

    배열에 넣은 후, 4비트 왼쪽 시프트 연산으로 바꿔주고, 16진수의 바이트(8비트)만 사용하도록 % (16 * 16)을 해주었다. 이는 & 0xFF와 같다.

     

     

     

     

    C언어 소스코드를 실행시키면 위와 같이 출력된다.

     

     

     

     

    chall4.exe에 얻은 값을 입력하면 Correct가 뜬다.

     

     

     

     

    플래그를 획득했다!

     

    'wargame > Dreamhack' 카테고리의 다른 글

    Dreamhack - rev-basic-6  (1) 2024.07.23
    Dreamhack - simple-operation  (0) 2024.07.17
    Dreamhack - rev-basic-3  (0) 2024.07.17
    Dreamhack - pathtraversal  (0) 2024.05.28
    Dreamhack - rev-basic-2  (0) 2024.05.27
Designed by Tistory.