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