Анти-отладка с использованием очереди предварительной выборки не работает с моим процессором

Почему этот код позволяет мне обнаруживать отладчик?

Ссылка выше подсказала мне способ использовать очередь предварительной выборки для анти-отладки, затем я попытался использовать приведенный ниже код для тестирования, но мне это не удалось. Может ли кто-нибудь помочь мне указать, если мой код неверен. Мой процессор - Intel® Core ™ (i7-2630QM 2,00 ГГц). большое спасибо

ML: D: \ Programs \ masm32 \ Bin \ ML.EXE / c / coff / Cp / nologo / I & quot; D: \ Programs \ masm32 \ Include & quot; & Quot; AntiDebug.asm & Quot;

Link: D: \ Programs \ masm32 \ Bin \ LINK.EXE /SECTION:.text,RWE / SUBSYSTEM: WINDOWS / RELEASE /VERSION:4.0 / LIBPATH: & quot; D: \ Programs \ masm32 \ Lib & quot; /OUT:"AntiDebug.exe" & Quot; AntiDebug.obj & Quot;

Он всегда выполняет отладочную метку, независимо от того, отлаживаю я или нет, и никогда не выполнит «jmp normal».

.386
.model flat, stdcall  ;32 bit memory model
option casemap :none  ;case sensitive

include windows.inc
include kernel32.inc
include user32.inc

includelib kernel32.lib
includelib user32.lib

.data
szDebug     db  'Hey, you are debugging!!!',0
szError     db  'Error',0
szNormal    db  'You are running it without debugging',0
szPrompt    db  'Prompt',0

.code
start:
    call IsDebug
debug:
    invoke MessageBox, NULL, addr szDebug, addr szError, MB_OK
    invoke ExitProcess, -1
normal:
    invoke MessageBox, NULL, addr szNormal, addr szPrompt, MB_OK
    invoke ExitProcess, 0
IsDebug:
    mov al, 0c3h
    mov edi, offset IsDebug
    mov cx, 20h
    rep stosb
    jmp normal
end start

Ответы на вопрос(1)

Ваш ответ на вопрос