финальная точка останова
Команда '? PID' выводит идентификатор процесса, 'P RET' выполняет API-функцию, дожидаясь возврата, а '? EAX' сообщает содержимое регистра EAX в котором находится код возврата из API-функции и все вместе это работает так:
Break due to BPX KERNEL32!CreateFileA DO "? PID; D esp->
4 L 20; P RET; ? EAX; x;"
000001DC 0000000476 "-" ; PID
0010:0012138C 43 44 2E 73 6E 61 69 6C-2E 65 78 65 00 61 5F 65 CD.snail.exe.a_e
0010:0012139C 2E 65 78 65 00 00 00 00-00 00 00 00 00 00 00 00 .exe............
00000074 0000000116 "t" ; код возврата
Break due to BPX KERNEL32!CreateFileA DO "? PID; D esp->
4 L 20; P RET; ? EAX; x;"
000001DC 0000000476 "-" ; PID
0010:0012138C 64 65 6D 6F 2E 63 72 6B-2E 65 78 65 00 61 5F 65 demo.crk.exe.a_e
0010:0012139C 2E 65 78 65 00 00 00 00-00 00 00 00 00 00 00 00 .exe............
00000074 0000000116 "t" ; код возврата
Break due to BPX KERNEL32!CreateFileA DO "? PID; D esp->
4 L 20; P RET; ? EAX; x;" 000001DC 0000000476 "-" ; PID
0010:0012138C 64 65 6D 6F 2E 70 72 6F-74 65 63 74 65 64 2E 63 demo.protected.c
0010:0012139C 72 6B 2E 65 78 65 00 00-00 00 00 00 00 00 00 00 rk.exe..........
00000074 0000000116 "t" ; код возврата