Search

[Rev] Paint

Year
2019
CTF Name
HS CTF
Category
REV
Type
DLL Analysis
Basic_REV

1. Description

Score : 414 Written by: dwang
Windows? :thonk:

2. Write up

해당 문제 파일은 dll 파일이다. 해당 dll 파일을 IDA로 열어보면 위와 같다.
인자값 개수가 1이 아닌 경우 종료
인자값 개수가 1인 경우 CreateThread()함수를 이용해서 스레드 생성
StartAddress() 함수 내부로 들어가면 해당 GetModuleFileNameA()함수를 사용해서 현재 실행시킨 프로세스의 이름을 가져온 뒤 C:\\WINDOWS\\system32\\mspaint.exe 문자열과 비교한다. 해당 DLL 파일을 디버깅하기 위해서 현재는 c:\windows\system32\rundll32.exe로 되어 있는데 ZF 플래그를 1로 바꿔줌으로써 강제로 0x7FFFE7091061로 분기하도록 변조한다.
0x7FFFE7091061 주소부터 보면 난독화된 문자열로 여러 연산을 한 뒤 스택에 저장하고 메세지 박스를 실행하고 있다.

3. FLAG

hsctf{havent_seen_windows_in_a_while}