ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dreamhack - Inject ME!!!
    wargame/Dreamhack 2024. 8. 5. 00:19

    [LEVEL 1 - Inject ME!!! - reversing]

     

     

     

    문제 설명을 보면, 문제 파일에서 주어진 prob_rev.dll 파일과 함께 있는 TXT 파일에는 조건을 맞춰서 DLL을 로드시키면 플래그를 얻을 수 있다고만 쓰여져 있었다고 한다.

    문제를 풀고 나서 보니 이 문장 자체가 문제 힌트다.

     

    ida로 해당 dll을 열어서 디컴파일하면 위와 같이 DllMain함수를 볼 수 있다.

     

     

     

     

    함수로 들어오면 위와 같이 디컴파일되는데, 모르는 함수들은 검색을 하자.

     

     

     

     

    구글링하면서 대략적으로 이 함수가 전체적으로 무엇을 하는지 주석을 달아 정리해보았다. 밑쪽에 sub_180001060 함수는 자신의 반환값과 v5~v8을 xor연산하고 결과값 중 Text를 메시지박스로 출력하는데, 이것이 곧 플래그값일 것으로 추정된다. 그래서 이 문제를 풀기 위해서는 이름이 "dreamhack.exe"인 파일에서 prob_rev.dll을 로드하기만 하면 된다.

     

     

     

     

    dll을 로드하기 위해 위와 같이 dreamhack.c 소스코드를 짰다. 근데 실행파일은 생기는데 제대로 실행이 안되어서 뭔가 하고 봤더니 내 컴퓨터에 깔려있는 MinGW는 32비트로만 컴파일해줘서 64비트 버전을 깔아야했다.(dll이 64비트) 그래서 msys64 설치하고 그걸로 mingw64 버전 툴체인 편하게 설치했다. 그렇게 하고 다시 msys64에서 gcc dreamhack.c -o dreamhack.exe를 하니까 바로 메시지박스가 뜨면서 정상 실행되었다. 메시지박스에 플래그값이 나와있다.

     

     

     

     

     

     

     

     

    플래그를 획득했다!

     

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

    Dreamhack - [CodeEngn] Malware L07  (0) 2024.08.18
    Dreamhack - [CodeEngn] Malware L06  (0) 2024.08.18
    Dreamhack - Secure Mail  (0) 2024.08.04
    Dreamhack - rev-basic-8  (1) 2024.07.23
    Dreamhack - rev-basic-6  (1) 2024.07.23
Designed by Tistory.