먼저 코드를 쭉쭉 넘겨보다 보면 isDebuggerPresent함수로 안티디버깅한다.
그래서 디버깅 할 때마다 eax를 0으로 바꿔주면서 디버깅을 했다.
함수 목록들을 보다가 시간 관련된 함수가 나와서 조사를 해보니 윈도우가 시작된 순간부터 현재까지 시간을 반환해 준다. 리턴값은 60000이 1분.
이 부분에서 두번 함수를 호출한다.
두번째로 호출한 함수의 값에서 첫번째로 호출한 함수의 값을 빼면 시간이 나온다.
그 시간을 ebx+4에 있는 값과 비교 하는데 그보다 작으면 다시 반복한다.
다시 timegettime함수를 호출하여 제일 처음에 호출된 함수의 리턴값을 빼면 다시 시간이 나올 것 이다.
두 값의 차는 프로그램이 실행된 후로 현재까지의 시간을 나타냅니다.
그 차이가 ebx+4보다 크면 프로그램이 종료된다.
답 나왔다.
'문제 > CodeEngn_Basic' 카테고리의 다른 글
CodeEngn Basic 20 (0) | 2017.01.10 |
---|---|
CodeEngn Basic 18 (0) | 2017.01.10 |
CodeEngn Basic 17 (0) | 2017.01.10 |
CodeEngn Basic 16 (0) | 2017.01.10 |
CodeEngn Basic 15 (0) | 2017.01.10 |