반응형
x32dbg로 EP 부분을 확인해보면 위와 같다.
문자열 찾기 기능을 이용해 프로그램 내의 문자열들을 확인해보면 위와 같이 "디버깅 당함" 문자열과 "정상" 문자열을 볼 수 있다.
"정상" 문자열을 더블 클릭해 이동하면 위와 같은 코드가 보인다.
Sleep() 함수를 거쳐 IsDebuggerPresent() 함수를 거친 뒤 eax의 값이 1이면 "디버깅 당함"을 출력하고, eax의 값이 0이면 "정상"을 출력한다.
디버거에서 F8로 실행하면 위와 같이 "정상" 문자열이 아닌 "디버깅 당함" 문자열이 뜬다.
풀이
위의 코드를 보면 IsDebuggerPresent() 함수를 호출한 뒤 IsDebuggerPresent() 함수의 반환 값에 따라 "디버깅 당함" 혹은 "정상" 문자열이 뜬다.
그러므로 디버거를 탐지하는 함수 이름은 IsDebuggerPresent()이다.
반응형
'전쟁 > codeengn' 카테고리의 다른 글
[codeengn] Basic RCE 06 (0) | 2022.07.28 |
---|---|
[codeengn] Basic RCE 05 (0) | 2022.07.25 |
[codeengn] Basic RCE 03 (0) | 2022.07.24 |
[codeengn] Basic RCE 02 (0) | 2022.07.24 |
[Codeengn] Basic RCE 01 (0) | 2022.07.24 |