kernel32.dll을 OllyDBG를 이용하여 확인해 보면 IsDebuggerPresent API가 존재하는 것을 볼 수 있다.
ctrl+g를 입력 후 IsDebuggerPresent를 입력하면 된다.

그 다음 해당 API의 동작을 확인하기 위해 JMP DWORD PTR이라고 적혀있는 회색 부분을 더블 클릭하면

이러한 창이 뜨게 됩니다. 여기서 DS세그먼트 뒤에 있는 주소값을 복사하여
ctrl+g를 입력하여 해당 위치로 이동한다.

그러면 IsDebuggerPresent의 동작을 볼 수 있다.

EAX에 FS:[30]에 있는 값을 가져온 후
FS:[30]+2의 위치에 있는 값을 eax로 가져온다.
FS:[30]은 PEB의 시작 주소이며,

윈도우 공식 사이트에서 PEB의 시작위치+2는 BeingDebugged 멤버변수임을 알 수 있다.
정리하면 IsDebuggerPresent API의 동작은 PEB의 멤버변수 BeingDebugged의 값을 이용하여 디버깅 중이면 True, 아닌 경우 False를 리턴하게 된다.
해당 API는 VMProtect의 Debugger Detection 옵션을 사용하면 적용되는 안티디버깅 기법이다.
감사합니다.