[Dreamhack-rev] Inject ME!!!

컴컴한해커·2025년 1월 14일

Dreamhack-rev

목록 보기
1/1

이번 문제는 64비트 환경에서 코드를 좀 읽어보고 싶어서 풀어보았다.

📌 사전 분석

이번 제공 파일은 실행 파일이 아닌 DLL 파일이라서 좀 더 생소했다. 실행은 안되니까 일단 PEview를 봤는데 rdata쪽에서 의심가는 곳이 있었다.

dreamhack.exe와 flag라는 글자가 보였는데 되게 수상해서 코드를 켜서 분석해보았다.


📌 코드 분석


와... 32비트로 분석하다가 64비트 환경으로 분석하려니까 숫자가 머릿속으로 안들어온다... 그래서 IDA 환경에서 디컴파일링해서 보기로 했다.


이렇게 보니까 확실히 디컴파일링 기능이 좋다는 생각이 들었다. Path의 FileName이 일단 dreamhack.exe가 되어야 한다는 것이고 그 실행파일과 같은 경로에 prob_rev.dll이 있으면 어려운 코드 계산에 상관없이 MessageBoxA 함수로 flag를 출력할 것이라고 생각했다.

#include <stdio.h>
#include <Windows.h>

int main() {
	LoadLibraryA("prob_rev.dll");
}

해당 C언어코드를 visual studio에서 dreamhack 솔루션으로 만들어서 dreamhack.exe 파일을 만들었다. 그 장소에 prob_rev.dll을 넣고 dreamhack.exe 파일을 돌리니까 flag가 출력되었다.


64비트 환경을 경험하려고 하였지만, 정작 코드들과 관계없이 디컴파일링된 값을 읽고 도출할 수 있었다. 하지만 맛보기 수준으로 괜찮은 문제였다.

0개의 댓글