먼저upx 패킹이 되어있어 언패킹을 하였다.
코드엔진 베이직 19번에서 풀었던 문제와 유사하여 일단 timeGetTime함수에 모두 중단점을 걸었다.
그리고 디버깅 할때마다 안티디버깅이 되있어 eax를 0으로 바꿔주며 풀었다.
첫번째 timeGetTime 함수를 호출하고
두번째 함수를 호출해서
두번째 함수의 리턴 값에서 첫번째 함수 리턴값을 빼주어 eax에 저장한후 ebx+4와 비교한다.
ebx+4보다 작다면 계속 timeGetTime함수를 호출하며 무한루프를 돈다.
즉 ebx+4초 후에 프로그램이 종료된다.
'문제 > CodeEngn_Advance' 카테고리의 다른 글
CodeEngn Advance 06 (0) | 2017.01.10 |
---|---|
CodeEngn Advance 05 (0) | 2017.01.10 |
CodeEngn Advance 04 (0) | 2017.01.10 |
CodeEngn Advance 03 (0) | 2017.01.10 |
CodeEngn Advance 02 (0) | 2017.01.10 |