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