먼저 코드를 쭉쭉 넘겨보다 보면 isDebuggerPresent함수로 안티디버깅한다


그래서 디버깅 할 때마다 eax0으로 바꿔주면서 디버깅을 했다



함수 목록들을 보다가 시간 관련된 함수가 나와서 조사를 해보니 윈도우가 시작된 순간부터 현재까지 시간을 반환해 준다. 리턴값은 600001.



이 부분에서 두번 함수를 호출한다.



두번째로 호출한 함수의 값에서 첫번째로 호출한 함수의 값을 빼면 시간이 나온다


그 시간을 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

+ Recent posts