HackChang

[CodeEngn] Basic RCE L19 문제 풀이 본문

W4RG4M3/R3V3RS1NG

[CodeEngn] Basic RCE L19 문제 풀이

HackChang 2019. 11. 28. 11:54

L19 문제

Basic RCE L19

이 프로그램은 몇 밀리세컨드 후에 종료 되는가

압축을 풀고, PEID에 올려봤다.

 

UPX로 패킹된 것을 볼 수 있고, 언패킹툴을 통해 언패킹을 진행했다.

언패킹을 진행하고, 올리디버거를 통해 실행시켜봤다.

 

안티디버깅이 되어있는 것을 볼 수 있었고, 함수검색을 통해 isdebugpresent를 검색해서 들어간다.

 

해당 점프문 부분을 JNZ -> JZ로 바꿔 디버깅툴을 탐지하지 못하도록 한다.

문제는 시간을 구하는 문제이므로, 함수검색에서 time을 검색해봤다.

timeGetTime이라는 함수를 볼 수 있었고, 구글을 통해 검색해봤다.

 

시간과 관련된 함수인 것을 볼 수 있었고, timeGetTime 함수 모두에 BP를 걸었다.

F9를 통해 실행시키면 00444C44에서 걸리는 것을 볼 수 있다.

 

F8을 눌러 레지스터를 보면서 실행시켜본다.

 

CMP EAX,DWORD PTR DS:[EBX+4] 이 부분에서 시간을 비교하는 것을 알 수 있고, 

EBX+4를 아래 데이터창에 쳐본다.

70 2B 00 00 을 리틀엔디언으로 바꾸면 2B 70이다.

즉 11120ms가 나온다.

Comments