본문 바로가기

[Wargame Write-up]/CodeEngn Challenges

[CodeEngn Challenges] Advance RCE 01



Basic RCE 19번 문제와 같은 문제이다.




UPX 패킹되어 있으니, unpack 해주자.




그 후, IsDebuggerPresent 함수를 통해, 디버거를 감지한다.




디버거가 작동중이니 1(TRUE)를 반환하는데, 0(FALSE)로 패치해주자.




시스템 시간을 반환하는 timeGetTime 함수를 호출하는 주소를 찾는다. 육감적으로 가장 돋보이는 주소에 BP를 건다.




그 주소에서 Step over 몇 번 해보면, 다음과 같은 종료 분기점을 볼 수 있다. Stack에 있는 0x337B가 답이다.




이 값을 10진수로 변환하고, 문제에서 시키는 대로 md5 hash 결과값(대문자)으로 웹페이지에서 인증하면 된다.