문제
"HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가."
풀이
01.7z의 압축을 해제햐면 01.exe의 PE File하나를 얻을 수 있다. 해당프로그램은 "HD를 CD-Rom으로 인식시켜 주세요." 라는 의미심장한 말과 함께 종료된다.
디버거로 한번 까보자
이화면을 보게되니 다시금 RCE문제를 풀고있구나가 느껴진다. 그래...우선 사용되는 문자열인 "Make me think your HD is a CD-Rom"이 .data에 raw로 존재하기를 바라며 찾아가보자.
굿 어렵지 않게 문자을 찾을 수 있었다. 우선 MessageBoxA의 파라미터로 들어가는 Title "abex's 1st crackme"를 찾아가자(0x00401002)
어렵지 않게 메인코드로 들어올 수 있었다. 0x00401026 필드에 je명령어 (같을경우 -> ZF가 1일때) 가 있다. 우선 강제로 움직여보자
ZF를 강제로 1로만들어서 성공했을 때로 가보았다. 결과는 좋지못하다.
으흠; 특별한것은 보이지 않고, MessageBoxA의 파라미터만 바뀐다.
문제를 다시 읽어보자. 문제가 요구하는것은 GetDriveTypeA의 값이 무엇이 되냐는 것이다. 잠깐 API를 보고오자.
https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getdrivetypea
그렇다. DRVIE_CDROM의 값은 int 5이다. 정답또한 5가 될 것이다.
첫문제부터 난항을 겪었다. 역시 오랜만에 어셈블리어를 보니 기본적인 명령어 사용법도 제대로 기억이 안난다. 빨리 실력을 끌어올려야한다.
'WarGame > CodeEngn' 카테고리의 다른 글
[CodeEngn] 코드엔진 - Basic RCE 5 - (0) | 2021.09.05 |
---|---|
[CodeEngn] 코드엔진 - Basic RCE 4 - (0) | 2021.09.04 |
[CodeEngn] 코드엔진 - Basic RCE 3 - (0) | 2021.09.04 |
[CodeEngn] 코드엔진 - Basic RCE 2 - (0) | 2021.09.04 |
[CodeEngn] 코드엔진 - 문제풀이를 시작하며 - (0) | 2021.09.04 |