Iriton's log
[CodeEngn] Basic RCE - L04 본문
이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가?
필요 개념 정리
- TEST EAX, EAX: EAX의 값이 0인지를 판별하는 코드이다.
풀이
프로그램을 실행시키면 일정 시간이 지남에 따라 "정상"이라는 문구가 출력된다.
올리 디버거로 열어 보았다.
올리디버거를 통해 실행시키니 "디버깅 당함"이라고 출력을 한다.
올리디버거를 통해 F8을 누르면서 코드 흐름을 따라가 보았다.
그러다 00408454 부분에서 어떤 함수를 CALL하니 문자열이 무한반복으로 출력된다는 것을 알게 됐다.
[Ctrl + G]를 눌러 해당 주소(0040100F)로 이동하였다.
IsDebuggerPresent라는 함수가 의심스러워서 실행시켜 보니 EAX 값이 0에서 1로 변한다.
그후 TEST EAX, EAX라는 코드가 보이는데
이는 EAX 값이 0인지를 판별하는 코드라고 한다.
0이면 점프를 하고 0이 아니면 점프를 안 하는 것으로 보인다.
그 후 00408190을 실행시키니 디버깅 당함이라는 문구가 출력된다.
즉 IsDebuggerPresent라는 함수가 정답이 된다.
'Reversing > Wargame' 카테고리의 다른 글
[CodeEngn] Basic RCE - L08 (1) | 2023.11.15 |
---|---|
[CodeEngn] Basic RCE - L06 (0) | 2023.11.15 |
[CodeEngn] Basic RCE - L05 (1) | 2023.11.15 |
[CodeEngn] Basic RCE - L02 (0) | 2023.11.14 |
[CodeEngn] Basic RCE - L01 (0) | 2023.11.14 |
Comments