...специальной танслятор -ассамблер. Если из ассамблерного листинга...
Супротив граматнасти ниче протев не емею, но емей совисть, пеши хатябы "ассемблер" правильна. Родной язык машины заслуживает того чтобы его название писали правильно, в отличие от васиков, сей, пырлов, дэбльфей и проч=)
В общем случае программа состоит из трех областей памяти(сегментов): сегментов кода (CS), сегментов кода (DS) и сегментов кода (SS).
Без коментариеф.
00401296 cnp eax, 00000000
.
----------------------
А воще статья довольно примитивная. Реальные защиты далеко не так примитивны.
1) можно обойтись без мессадж боксов, зарегив класс окна и назначив ему простенькую оконную процедурку на выньапи
2) можно сделать сплайсинг в АПИ МесаджБоксА
3) можно замаскировать саму проверку: соотв. CMP будет не так то просто обнаружить если в случ неудачной проверки запустить поток который подождав пару сек вызовет МессаджБоксА (или еще свое окно как наприм. сделано в выньраре).
4) еще один поток может висеть в это время в памяти и периодически проверять чексум критического участка кода, причем этот поток можно даже внедрить (такое дело токма в хрюхе но всерано) в совершенно левый процесс (напр в эксплорер.ехе). Ессесно вылет произойдет даже тогда когда в этот код просто поставить точку останова (int 3), что обычно и делает дебагер.
5)Как вариант такую проверку может осуществлять совершенно безобидная на первый взгляд АПИ-функция, которую ессесно перехватили. Трассировка перехваченных АПИ функций геморойное дело. Например если это была инъекция (или первые 6 байт меняются) то поставив туда точку останова мы или вылетим нах из отладчика или уйдем лесом (в зависимости от варианта реализации и самого отладчика).
6) динамическая шифрация/расшифрация очень затруднит фикс проги, даже если в памяти мы его успешно крякнули.
7) методов ухода из-под дыбугера (валом) ну и так дальше. просто влом писать все методы постановки палок в колеса кракерам. их очень много.