반응형
IsDebuggerPresent bypass
Section 1. What is IsDebuggerPresent?
IsDebuggerPresent 디버깅 감지를 하는 유저 모드 디버거 함수이다.
이 함수를 사용하는 이유는 디버거를 이용하여 이상한 짓(?)을 하는 것을 막으려는 의도가 있지만.
우회 방법은 매우 간단하다;
그래서 상업용에는 디버거 감지를 Themida같은 경우에는 프로텍터에서 자체적으로 지원하고 있고,
그 이외에도 각자의 디버거 감지를 하는 솔루션을 가지고 있어 이 함수는 주로 사용하지는 않는다.
(그러나 해킹대회 문제에서는 나옴ㅋ)
일단 코딩은 귀찮으니 CodeEngn Level 04 문제를 이용하기로 했다.
Entrypoint 00401030
F8로 쭉 한번 실행하니..
디버깅 당함 이 뜹니다..
일단 그래서 IsDebuggerPresent 가 있어서 함수 내부로 들어가보니
음?
EAX에 박아둠 ㅎ
그래서 혹시나 하는 마음에 EAX값을 0로 바꾸고 ㄱㄱ
올ㅋ
이런 방식으로 우회를 하는 것을 보실 수 있습니다.
실제 IsDebuggerPresent 함수를 보시면
디버거가 감지되면 1
감지 없으면 0이 return 되니 RETN EAX를 0로 바꾸면 끝~
반응형
'Reverse Engineering' 카테고리의 다른 글
크으립토락커 한글판 간단분석 (0) | 2015.05.04 |
---|---|
SysFader는 무엇일까? (0) | 2014.07.17 |
CSAW CTF 2013 Reversing 200 Write-up (0) | 2013.10.04 |
ollydbg 2.0.1 (0) | 2013.09.30 |