본문 바로가기

리버싱

[codeengn]코드엔진 Advance RCE L01

문제:

이 프로그램은 몇 밀리세컨드 후에 종료 되는가
정답인증은 MD5 해쉬값(대문자) 변환 후 인증하시오

ollydbg로 열어보려고 했는데 encrypt되어있다고 한다.

PEiD로 보니, UPX로 패킹되어있음을 알 수 있다.

cmd창에서 upx로 언패킹해주었다.

이제 ollydbg로 열어보도록 한다.

ollydbg로 잘 열림을 확인했다.

종료에 대한 문제이므로 search for - intermodular calls를 확인한다.

시간과 관련 있는 문제이므로, timeGetTime에 set breakpoin on every~를 해준다.

bp건 곳으로 가니까 이 부분이 나오고 그다음 bp로 가면 프로그램이 꺼져버린다.

time 관련하여 연산하는 걸 찾아봐야 할 듯 하다.

일단 CALL EDI부분은 time과 관련이 있다.

밑에도 EDI가 있는데 비교하고 SUB하는 것이 상당히 큰 단서가 될 듯 하다.

더 진행해보면 바로 여기로 이동된다.

CMP부분을 보니,

시간을 뺀 연산을 수행하고 비교함을 확인할 수 있다.

밑에서 DS:~=337B이므로 이를 MD5 연산하면 된다.

 

반응형

'리버싱' 카테고리의 다른 글

[HackCTF]Reversing Me  (0) 2020.08.14
[codeengn]코드엔진 Advance RCE L02  (0) 2020.08.13
[CodeEngn]코드엔진 Basic RCE L20  (0) 2020.08.09
[Reversing.kr]Easy crack 1번  (0) 2020.08.07
[codeengn]코드엔진 Basic RCE L19  (0) 2020.08.06