본문 바로가기

[Wargame Write-up]/CodeEngn Challenges

[CodeEngn Challenges] Basic RCE 01



프로그램으로 하여금 현재 HDD를 CD-Rom으로 인식하게 하라고 한다. 바로 실행 시   이러한 결과를 볼 수 있다.




MSDN 페이지에서 GetDriveTypeA를 검색하면, CD-ROM은 5임을 알 수 있다. 인증키는 여기에서 나왔다.




이제 패치를 할 것이다. 우선 CMP 문에 breakpoint를 걸고, 각각 무슨 값을 비교하는지 확인한다. ESI=3, EAX=1이다.




코드를 삽입해야 하는데, 코드 아래쪽(401067부터)은 사용하지 않으므로 가장자리부터  작성한다. 우선 40101F의 JMP할 주소를 코드 삽입 부분으로 바꾼다.




그런데 프로그램 흐름 상, 단순히 EAX, ESI를 갖게 만들면 된다. 그러므로 꼭 5로 맞추진 않고, EAX를 3으로 올리겠다. INC문 2번이면 될 것이다. 이후 원래 진행방향으로 가기  위해 마지막에 JMP문을 써 준다.




수정 사항을 저장하고 확인한다.