이전 문제들을 다 합친 느낌이다. 시작해보자!
떼잉... 시도도 안 했는데 등록을 안 했단다! 디버거에 올려보자.
OEP를 찾기 위해 POPAD를 찾으려 했는데 보이지 않는다. 역시 이렇게 쉬울리가 없지
언패킹을 바로 때려줬더니!! 안된다. UPX로 패킹한 게 아닌가보다. PEID를 깔 때가 왔군.
🔽PEiD 다운로드
https://softfamous.com/peid/download/
PEiD를 통해 확인해보니 ASPack으로 패킹되어 있다. 그럼 수동으로 언패킹 해보겠다. (자동 수동 분류는 베이직 9번 포스팅에 있다.)
디버거에 올려줬다. F8키를 눌러 한줄 실행을 한 뒤 ESP값을 우클릭 해 Follow in Dump를 해준다.
해당 덤프에서 .으로 끊겨있는 바이트(00)까지 선택해준 뒤 Breakpoint → Hardware, on access → Dword를 설정해주고 F9키로 이동한다.
그럼 JNZ 분기점으로 이동한다. 바로 위에 POPAD가 있다! 굿.
그리고 RETN에서 F7키를 통해 들어가면 이렇게 디버거가 분석하지 못한 코드가 뜬다. 여기서 Ctrl+A를 눌러주면 언패킹이 된다.
성공. 그러므로 OEP는 00445834이다. 이제 '등록성공'으로 갈 분기점을 찾아주기 위해서 성공구문 텍스트를 찾으러 Search for → All referenced text strings로 들어간다.
성공구문으로 추정되는 well done문자열을 찾았다. 더블클릭 해서 해당 코드로 이동해보자.
성공 문자열 위에 바로 JNZ 분기점을 찾을 수 있었다. OPcode는 75 55이다.
OEP + OPcode는 004458347555이다. 입력해줘볼까...
음... 긋
[CodeEngn] Basic RCE L12 Write-Up (0) | 2022.05.01 |
---|---|
[CodeEngn] Basic RCE L11 Write-Up (0) | 2022.05.01 |
[CodeEngn] Basic RCE L09 Write-Up (0) | 2022.03.29 |
[CodeEngn] Basic RCE L08 Write-Up (0) | 2022.03.29 |
[CodeEngn] Basic RCE L07 Write-Up (0) | 2022.03.24 |