W4RG4M3/R3V3RS1NG
[CodeEngn] Basic RCE L19 문제 풀이
HackChang
2019. 11. 28. 11:54
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가 나온다.