"С.П.Расторгуев, А.Е.Долгин "Как защитить информацию" (пособие по борьбе с хакерами)" - читать интересную книгу автора

2) Начиная с МП 80286, характерна следующая особенность: команда
PUSH SP заносит в стек значение SP с учетом его декремента, а более
низшие типы МП - без.
Для пытливого ума выявление особенностей микропроцессоров сослужит
хорошую службу как при составлении защитных алгоритмов, так и для
идентификации ПЭВМ, а именно на таких программистов и рассчитана эта
статья.
В качестве примера, реализующего некоторые приемы, была разработана
утилита DLOCK. Правила пользования ею приведены в приложении 2.

Л и т е р а т у р а
1. Дмитриевский Н.Н., Расторгуев С.П. " Искусство защиты
и "раздевания" программ", "СОВМАРКЕТ", 1991.
2. статья "Особенности работы МП 8086/8088 в пошаговом
режиме", "Журнал д-ра Добба", N 2, 1991.
3. "Intel insight on specific instructions", "Personal
Computer World", April, 1990.


┌────────────────────────────────────────────────────────────┐
│ СОКРЫТИЕ АДРЕСОВ │
│а) безусловного перехода │
│ jmp m mov ax,offset m ; занести в стек │
│ . . . push ax ; адрес метки. │
│ ret ; перейти на метку. │
│ . . . │
│ m:. . . m: . . . │
│ . . . . . . │
│б) вызов подпрограммы │
│ call subr mov ax,offset m ; занести в стек │
│ . . . push ax ; адрес возврата. │
│ . . . jmp subr ; перейти на под- │
│ . . . m: . . . ; программу. │
│ subr: subr: . . . │
│в) прерывание │
│ int 21h pushf ; занести в стек флаги. │
│ . . . xor si,si │
│ mov es,si │
│ call dword ptr es:[21h*4] │
│ . . . │
│г) возврат из подпрограммы │
│ . . . . . . ; взять из стека │
│ ret pop bx ; адрес возврата и│
│ jmp bx ; перейти на него.│
│ . . . . . . │
│д) выход из прерывания │
│ iret mov bp,sp ; переход на точку│
│ jmp dword ptr [bp] ; возврата из пре-│
│ . . . . . . ; рывания. │
│ add sp,4 ; точка возврата. │