티스토리 뷰






CodeEngn Advance RCE의 01번 문제입니다.


프로그램이 몇 밀리세컨드 후에 종료되는지를 묻고 있습니다.






문제 파일을 실행시켜보니 이런 화면이 나타납니다.


PEID로 보겠습니다.






UPX로 패킹 되어있네요.


언패킹 한 후 올리디버거로 열어서 분석하겠습니다.






모든 timeGetTime 함수에 BP를 걸었습니다.


윈도우가 시작되고 난 뒤 지난 시간을 DWORD형 데이터로 얻는 timeGetTime 함수는 윈도우가 시작되고 난 뒤의 시간을 리턴합니다.


리턴값은 보통 EAX에 저장됩니다.


EAX와 비교하는 부분을 찾아야겠네요.






EAX와 비교하는 구문을 찾았습니다.


DWORD PTR DS : [EBX+0x4]에 있는 값인 337B와 EAX를 비교해서 같으면 프로그램이 종료됩니다.


337B를 10진수로 변환하고 md5 암호화를 해준 뒤, 인증해보면..






Success!!


문제가 너무 익숙해서 이상했는데, Basic RCE의 19번 문제와 답만 다를 뿐 아예 같은 문제였네요.. ㅋㅋ


http://turtledove.tistory.com/29





댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함