рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

NAG SCREEN

NAG SCREEN - раздел Компьютеры, Nag Screen ...

NAG SCREEN

Психологический расчет очень прост. Постоянное раздражение пользователя должно подтолкнуть его к приобретению полной версии, лишенной… Но кому понравится назойливая реклама или периодически всплывающий экран с… Однако деньги российский пользователь платить не любит, особенно за рубеж. Не то чтобы все были поголовно нищие (на…

SetTimer

195 KillTimer B7 EnableWindow 146 GetSystemMetrics

Ограничение возможностей

Часто это оказывается безнадежным, но не всегда. Если нет никаких других путей для получения легальной копии (например, ее автор эмигрировал в Штаты… Однако чаще всего код все же физически присутствует, но не получает… Но что просто делается, так же просто и ломается. Необходимо воспользо­ваться любым редактором ресурсов. Я предпочитаю…

Text;004015CFp

j_?EnableWindow@cwnd@@QAEHH@z endp Их всего два. Как раз по числу элементов управления. Пока защита не предвещает… .text:0040142A mov еая, [esi+68h]

Ключевой файл

Можно рассмотреть два типа атаки. В первом хакер воссоздает ключевой файл, не затрагивая сам защитный механизм, а во втором модифицирует послед­ний…   толкать на нарушение закона. Впрочем, и законов-то, относящихся к ключевым файлам, нет. В их отсутствии каждый должен…

Способы затруднения анализа программ

Строго говоря, сегодня уже не существует действительно хороших и надеж­ных методов противодействия анализу защиты. Мощь современных технологий… Аппаратная поддержка отладки в процессорах 386+ в совокупности с вирту­альным… Сегодня получили широкое распространение отладчики-эмуляторы. Т.е. ин­терпретацию микрокода исполняет не процессор, а…

Приемы против отладчиков

Но рынок не терпит пустого места, и в то время отладчики росли как грибы после дождя. Многие из них не представляли ничего интересного и ушли… Появление 80286 процессора принесло с собой не только новые возможности, но и… Так или иначе, разработчикам защит стали наступать на пятки. Особенно подлила масла в огонь NuMega, выпустившая в…

Приемы против отладчиков реального режима

Легче всего понять концепцию контрольных точек останова исполнения программы. Для этого используется однобайтовый код ОхСС. Когда процессор… Что из этого следует? Отлаживаемая программа полностью, включая все аппаратные… IPß-------------SP

Приемы против отладчиков защищенного режима

Новый процессор полностью унаследовал все "прелести" реального режима, включая и автоматическую трассировку. Т.е. сохраняя полную… PUSH DS POP DS

Технологии эмуляции процессора

Большой популярностью пользовались уже забытые сегодня архитектуры с загружаемым набором инструкций, что позволяло процессору исполнять любой код. … Производители аппаратного обеспечения были разобщены, и каждый исполь­зовал… Ясно, что этой анархии должен был прийти конец. Но это уже совсем другая история, а до эпохи внедрения стандартов…

Тонкости дизассемблирования

Дизассемблирование в уме

Очень часто под рукой не оказывается ни отладчика, ни дизассемблера, ни даже компилятора, чтобы набросать хотя бы примитивный трассировщик.… Предположим, у нас есть простейший шестнадцатиричный редактор, вроде того,… Вы сможете, например, поставить на диск парольную защиту, зашифровать несколько секторов, внести вирусы или…

Структура команд INTEL 80х86

Дизассемблирование (тем более в уме) невозможно без понимания того, как процессор интерпретирует команды. Конечно, можно просто запомнить все… Для начала разберемся с форматом инструкций архитектуры Intel: Префикс | Опкод | ModR / М | SIB | Смещение | Непосредств, операнд

Маленькие хитрости

Хорошо, если в вашем распоряжении окажутся шестнадцатиричный и двоич­ный калькуляторы. Но в некоторых ситуациях и они недоступны. Конечно, это… Но хакер должен рассчитывать на самое худшее и привыкать полагаться только на… Разумеется, в столбик. При этом можно легко оперировать и шестнадцатирич- j ными числами (при вычислении в столбик это…

Ассемблирование в уме

Мы уже проделали титаническую работу, дизассемблировав в уме крохотный файл в пару десятков байт. При этом трудозатраты выглядели весьма… Другими словами, и нужно ли хоть кому-нибудь то, чем мы тут занимаемся? И если… Кстати, это типичный случай — когда необходимо удостовериться в наличии вируса в полученном файле. Достаточно…

HIEW

"Ничто не может, возникнуть из ничего" Ф. Херберт. "Дюна".

Сказанное ниже является моим личным мнением о HIEW 6.03. Оно не во всем совпадает с мнением автора HIEW. После попытки настоять на исправлении ряда моментов я пришел к выводу, что легче написать собственный *view с нуля, чем вступать в перепалку с автором.

Говоря конкретно, он наотрез отказался поддержать хотя бы интерпретируе­мый язык скриптов или предоставить мне API (компилятор я и сам мог бы написать), добавить поддержку двоичного ввода в калькулятор, поддержать редактирование заголовков РЕLЕLХ-файлов.

HIEW — это замечательный и необыкновенно мощный инструмент, предназ­наченный для анализа и редактирования программ непосредственно в исполняе­мом коде.

Десятилетиями в этих целях традиционно использовались hex-редакторы, которые концептуально мало отличались друг от друга. Менялся интерфейс и предоставляемый сервис — только и всего. HexWorkShop под Windows 95 и hexed под Агат-9 (может быть, кто-нибудь помнит такую машину) имеют больше сходств, чем различий. Евгений Сусликов был первым, кто догадался прикрутить в шестнадцатиричный редактор дизассемблер. Это породило продукт с совершен­но новыми качествами. Вы пробовали когда-нибудь загружать в IDA или SOUR-CER исполняемый файл мегабайт эдак под двадцать? Десятки часов жужжания винта и сотни метров свопа — явление, хорошо знакомое каждому хакеру. А сам дизассемблер? Сколько дискет потребуется, чтобы его разместить, если предстоит работа "на выезде"?

Всех этих недостатков лишен HIEW. Шустрый, компактный, проворный, в умелых руках он способен творить чудеса, при этом ограничиваясь чисто "фор­мальными" требованиями к аппаратуре.

По прошествии нескольких лет возможности этой утилиты заметно возросли. Конкретно: скачивая версию 6.03 (последнюю на момент написания данного руководства), вы приобретаете в одном флаконе:

• шестнадцатиричный редактор файлов неограниченной длины;

• уникальное средство поиска ассемблерных команд по маске;

• встроенный ассемблер (Pentiun Pro);

• встроенный дизассемблер (Pentiun Pro);

• интерпретируемая крипт-система (Virtual CPU).

Иными словами, это готовый инструментарий на все случаи жизни. Не хватает только интерпретируемого языка и интеграции с отладчиками.

Перечисленные возможности позволяют полностью отказаться от остальных инструментов и проводить анализ программ не используя ничего кроме HIEW. При этом задача взломщика ненамного усложнится, а то и наоборот. HIEW относится кинтерактивным дизассемблерам, и его мощь в некотором отноше­нии сравнима лишь с мощью IDA.

Т.е. процесс дизассемблирования тесно связан с пользователем, который должен сам определить, где код, а где данные, как интерпретируется та или иная инструкция. Последнее особенно актуально с самомодифицирующимся и шифро­ванным кодом.

Заметим, что IDA или Sourcer дизассемблируют весь файл целиком, что требует длительного времени, HIEW же показывает единовременно только не­большой фрагмент размером с экран. Конечно, если требуется получить хорошо документированный листинг программы, то это покажется крайне неудачным вариантом: однако в работе хакера последнего обычно не требуется. Любопытно, что HIEW незаменим при анализе программ как в пару килобайт (когда расточи­тельно запускать ради них IDA), так и в пару мегабайт (когда IDA дольше будет дизассемблировать, чем хакер сносить защиту с помощью HIEW).

Кроме того, HIEW позволяет с легкостью и комфортом прогуляться по LE/PE/NE/LX/NLM-фaйлaм, исследовать формат и перекроить, к примеру, таблицы импорта на свой вкус.

Не правда ли, потрясающие возможности для шестнадцатиричного редактора? HIEW можно считать полноценным Win32DosOs/2 дизассемблером, поддер­живающим не только 32-битные инструкции, но и форматы исполняемых файлов популярных операционных систем.

Заметим, что не так уж много популярных дизассемблеров поддерживают LE-формат. Но HIEW — поддерживает, оставаясь незаменимым помощником при путешествиях в дебрях VxD. Использовать для этой цели IDA не всегда удобно — часто заранее неизвестно, в какой именно файл разработчик поместил защитный механизм и требуется окинуть беглым взглядом далеко не один драйвер виртуаль­ного устройства. IDA тратит больше времени на загрузку, чем хакер на анализ. Самое обидное, что анализ-то в большинстве случаев и не требуется- например, в этом случае сразу видно, что защита тут и не ночевала:

.00000007: В800000000 ltlOV еах,000000000 ;

.0000000C: B94AOOOOOO mov есх,00000004A ;

.00000011: 07400400000000 mov d,[eax] [00004],000000000

.00000018: CD2014000A00VxDcall VDD.Get_DISPLAYIHFO

.0000001E: 66F705020000000009 test W, [000000002], 00800 ;

.00000027: OF85790DOOOO jne .000000DAб ------- (1)

HIEW позволит сэкономить немало драгоценного времени хакера, которое можно потратить на нечто более полезное, чем утомительное ожидание окончания загрузки файла.

Сказанное не должно восприниматься как наезд или повод для отказа от IDA. Это уникальный в своей категории инструмент, аналогов которому не существует и в обозримом будущем не предвидится. Но IDA — это все же тяжелое стратегическое оружие, а общение с hiew-om больше напоминает работу развед­чика.

Бытует мнение, что анализ программ непосредственно в HIEW-e более сло­жен, чем в отладчике или полноценном дизассемблере. Некоторые это считают "высшим пилотажем". Однако, это лишь распространенное заблуждение. За исключением, может быть IDA, HIEW обеспечивает весь сервис, предоставляе­мый другими "полноценными" дизассемблерами, при этом обладая и присущими IDA возможностями — например интерактивностью. Когда SOURCER может быть легко сбит с толку хитрым приемом разработчика защиты, с hiew-om такого не произойдет, поскольку он работает в тесной связке с человеком. Нетрудно обмануть машину, но человек человека перехитрить не может (разве что ввести во временное заблуждение).

К сожалению, автор HIEW-a не позаботился о некоторых мелочах, которые делают жизнь хакера более приятной и экономят его время. Например, ближай­ший конкурент QVIEW позволяет создавать в файлах комментарии, а HIEW — нет. Впрочем, это не вызывает особых проблем, и, надеюсь, такая возможность будет реализована в последующих версиях.

Не будем больше заниматься бессмысленным сравнением конкурирующих утилит, а перейдем к описанию пакета поставки.

В версию 6.03 входят следующие файлы:


FILESLST файл описания (увы, плохо совместим с DN и др. оболочками)

HEW.EXE собственно сам HIEW (одновременно для DOS и OS2)

HIEW.INI конфигурационный файл

HIEW.HLP файл помощи

HIEW.ORD символьная информация ординалов распространенных файлов

HIEW.VMM VMMcaU/VxDcall для LE-файлов

HIEW.XLT файл перекодировок (Windows-1251 KOI-8R)

HIEWR.NNN краткое описание на русском языке

HIEWE.NNN краткое описание на английском языке

NEDUMP.EXE утилита для исследования NE-файлов (не актуальна сегодня)

LXDUMP.EXE утилита для исследования LXLE-фaйлoв

DEXEM.EXE утилита для работы с Duat-EXE (NE/LE/LX/PE) файлами

SEN.ASC публичный PGP ключ автора________________________________

HIEW.EXE очень тяжел. Целых 284,855 байт, что отнимает много места, например, на спасательной дискете (он у многих всегда на ней: мало ли с какими вирусами воевать придется). На самом деле это DUAL-exe файл, т.е. два файла для MS-DOS и OS2 одновременно. Это оригинально, но слишком расточительно (заметим, что такие программы могут существовать и под Windows).

Первое, что необходимо сделать, — "разрезать" файл на две половинки и взять "родной" для вашей операционной системы. Для этого предназначена утилита dexem.exe.

Подробнее она будет рассмотрена ниже, а пока просто запустим ее следующим образом: dexem.exe /S hiew.exe. При этом DUAL-exe будет расщеплен на два файла hiew.mz (MS-DOS) и hiew.ne (OS2) по 102 н 183 килобайта соответствен­но. Отметим, что 102 много меньше 285, и, учитывая, что OS2 в жизни многих пользователей, может быть, никогда и не встретится, хорошим решением будет удалить оригинальный hiew.exe н переименовать в последний hiew.mz.

Независимо от того, сделали вы это или нет, попробуем запустить hiew.exe без параметров. Кто знаком с ранними версиями HIEW, тот помнит, что при этом протрамма просто не запускалась, ссылаясь на отсутствие файла в командной строке. Версия 6.03 поддерживает встроенную систему навигации по файлам и каталогам, которая активируется всякий раз, когда HIEW запускается без явного указания файла в командной строке. Логично было бы предположить, что то же произойдет при задании маски (например hiew.exe *ехе). Но автор мыслил иначе. При этом HIEW просто найдет первый попавшийся файл, а если таковых не окажется, то с грустью сообщит "File(s) not found" и закончит работу. Печально. Но вернемся к навигатору.

-D:KPNCHIEU-

  >UP— DIR< Attr —Date—- —Time—
PROHACK >SUB-DIB< 15-03-1999 14:06:06
CRACKME.EXE .a. 15-03-1999 14:07:18
DЕХЕM.ЕХЕ .a. 22-10-1998 11:32:26

маска отображения файлов —*

Вообще навигатор очень напоминает Norton Commander, и общение с ним проблем вызвать не должно. На всякий случай я все же опишу назначение клавиш управления:

Alt-FI (Drive) — смена текущего дисковода. Замечу, что HIEW не совсем корректно обрабатывает список существующих устройств. Так, например, у меня он обнаружил 'В', хотя 'В' отродясь не было. Попытка чтения с него привела к переадресации на 'А', что прошло не без "возмущений" со стороны Windows.

F2 (Hidden) — отображение скрытых и системных файлов. Кнопка действу­ет как триггер.

F3 (Name) — сортировка по именам файлов.

F4 (Exten) — сортировка по расширениям.

F5 (Time) — сортировка по времени создания.

F6 (Size) — сортировка по размерам.

F7 (Unsort) — располагать файлы в том порядке, в каком их находит FindNextFile.

F8 (Revers) — обратить условные сортировки. Т.е. по умолчанию (за исключением даты) принята сортировка по возрастанию параметра. Реверс при­водит к сортировке по убыванию. Действует как триггер.

FIO (Filter) — задать маску отображаемых файлов. К сожалению, не позволяет задавать более одной маски, что может вызвать неудобства. Маленький баг — если удалить маску, то HIEW ее не восстановит по умолчанию. Для этого необходимо будет задать явно '*.*', что просто неудобно.

При этом существует возможность быстрого поиска необходимого файла. HIEW вобрал в себя все лучшие решения от DN и NC и реализовал очень неплохие для простого встроенного менеджера возможности.

Нажатие любой символьной клавиши приводит к появлению консольной строки, в которой можно ввести имя файла (при этом курсор будет перемещаться по списку синхронно с вводом).

Есть и чисто юниксовская возможность дополнения введенного имени до полного, при условии что последнее однозначно определяет файл. Возможно, что это определение покажется витиеватым, поэтому приведу пример. Допустим, нам нужно найти файл crackme.exe. Если в текущей директории на 'с' есть тоЛко один файл, то логично, что он может однозначно быть определен заданием всего одной буквы. Вводим 'с' и нажимаем <tab>. Hiew, догадываясь, что мы хотим открыть crackruc.exe, выводит его имя (между прочим, без расширения). А что будет, если у пас есть два файла crackmel и crackme2? Тогда HIEW, сердито пискнув, напишет только 'crackme' и остановится, ожидая уточнения — какой именно из двух файлов нам требуется открыть.

Кому-то это может показаться неудобным. В этом случае можно воспользо­ваться '*' — непосредственным аналогом Ctrl-Enter в DN и NC — последователь­ному перебору подходящих файлов.

Имеется и очень ценная недокументированная возможность заданий списка в квадратных скобках. Например, [cr,h]ack.exe найдет все crack и hack. Если запятую опустить, то HIEW будет интерпретировать строку как lc,r,h]. Т.е. *.[chl он найдет все файлы с, срр, h и др. Это очень полезная и вообще уникальная для платформы MS-DOS возможность, которая не существует ни в одной другой аналогичной программе.

Жаль, конечно, что эти возможности большей частью остаются невостребо­ванными — HIEW все же не файловая оболочка и чаще всего редактируемый файл непосредственно задается в строке, хотя бы по чистой привычке, оставшей. ся от старых версий. (Думается, что если бы автор предусмотрел еще и запуск из Файлового Навигатора, то многие использовали бы его как оболочку, которая была бы особенно удобной на "спасательных" дискетах.)

Если HIEW запущен с именем несуществующего файла, то он предложит создать его. Альтернативным вариантом является клавиша <lns> в Навигаторе. Последняя возможность просто незаменима, когда новые файлы приходится создавать и открывать непосредственно во время работы. К примеру, может потребоваться сделать некоторые заметки по ходу работы, скопировать фрагмент в новый файл и при этом тут же открыть его и, скажем, расшифровать (отметим, что Навигатор можно вызвать в любой момент работы клавишей F9).

Ctrl-'' обеспечивает быстрый переход в корневую директорию текущего диска, а FIO — в материнскую директорию (ту, из которой был запущен HIEW).

При этом существует полезная возможность быстрого переключения между четырьмя произвольно выбранными директориями. Для этого существуют клави­ши Ctrl-FI, Ctrl-F3, Ctrl-F5, Ctrl-F7, которые запоминают текущую директорию и Ctr3-F2, Ctrl-F4, Ctrl-F6, Ctrl-F8, которые, соответственно переходят в записанную. При этом есть возможность сохранения текущего состояния в файл и его последующего использования во всех сеансах. Впрочем, эта возможность реали­зована не самым лучшим образом. Нет никакой возможности сохранить состояние непосредственно из Навигатора, поэтому приходится открывать файл только для того, чтобы получить доступ к клавише 'Ctrl-FlO' — 'SaveSatus'. К ней мы еще вернемся, а пока отметим такую приятную особенность, как ведение истории просматриваемых файлов (F9).

Mode Offset Name

Hex 0000163С |D:KPNCHIEWHIEWR.602

Text 00000452 |D:KPNCHIEWDEXEM.EXE

Перейдем теперь к рассмотрению командной строки. Большинство ею пользу­ется все же гораздо чаще, чем непривычным Навигатором. В командной строке можно задавать более одного файла, но при этом будет открыт… Параметр /SAV задает имя SAV-файла, который автоматически будет загру­жен. По умолчанию принимается hiew.sav, но…

Ассемблер

Ф. Херберт. "Дюна". Перейдем к непосредственному описанию возможностей HIEW-a. Автор этой книги… тогда начинающие прекратят задавать глупые вопросы: "я знаю, какие байтики подправить, а в HIEW-e их найти никак…

Дизассемблер

К сожалению (и, признаться, еще большему удивлению), автор не считает HIEW дизассемблером и не хочет улучшать некоторые моменты чисто из… Ничего не поделаешь: как говорится хозяин — барин, тем более что автор пишет… Но это когда еще будет (и будет ли вообще), а HIEW уже есть и поддерживает инструкции вплоть до Pentium Pro. А точнее,…

Поиск

К полной луне призывы... Шап-Хулуд поднялся, чтобы ее увидеть; Красная ночь, сумеречное небо, Кровавая смерть — ты погиб. Возносим молитвы луне: она круглая... Счастье всегда будет с нами, Потому, что мы нашли то, что искали, В стране с твердой землей. Ф. Херберт. "Дюна".

HIEW обладает развитым средством поиска, не имеющим аналогов. С его помощью можно искать как целые команды, так и любые вхождения. В качестве маски используется символ '?', означающий любую последовательность символов, включая пустую. Иначе говоря, этот символ является полным аналогом dos-сим-вола '*'.

Это позволяет искать любые команды и их сочетания в ассемблерном тексте. Мощность и возможности этого механизма не имеют равных ни среди отечест­венных, ни среди зарубежных утилит. Даже IDA не предоставляет такого сервиса.

SEN в очередной раз продемонстрировал свои способности и оставил всех конкурентов далеко позади. Заметим, что эта возможность впервые появилась еще в версии 4.0, когда подражатели находились еще в зачаточном состоянии.

Как известно, наипервейшая задача хакера — локализовать защитный меха­низм в сотнях килобайт исполняемого кода. Это не так просто, как может показаться на первый взгляд (при условии что полный анализ программы просто нереален ввиду огромных трудозатрат на дизассемблированне и изучение).

Поэтому взломщики используют различные хитрости, которые при всем их разнообразии сводятся к одному: поиску уникальной последовательности команд, которая предположительно присутствует в защитном механизме. Например, типичной будет конструкция:

if [UsValidUser())

abort ();

ИЛИ

if (lsVaiidUser())

// нормальное выполнение программы

}

else

abort();

Достаточно много вариантов, не правда ли? Перебирать их вручную было бы крайне утомительно. Используем поиск по шаблону. Для этого в режиме дизас­семблера два раза нажмем F7 и введем следующую последовательность:

Hiew найдет приблизительно следующий код:

.0001140С: 9ДЗЕ172114 call 001:0173Е -------- 141

.00011411; ОВСО or ax,ax

.00011413; 7405 je .00001141Л-------- (51

Разумеется, возможно, что calд 001:0173Е на самом деле не имеет никакого отношения к защите (так скорее всего и будет), но тем не менее ожидается, что в программе не так уж много вышеприведенных комбинаций, и в любом случае это сужает поиск.

Однако для файла мегабайт в десять длиной такое заявление может вызвать лишь легкую улыбку. Возможно, HIEW найдет несколько сотен подходящих вариантов: легче заплатить пару долларов и приобрести легальную версию, чем их все анализировать. Но не будем спешить (хотя хакерство не повод работать на ворованном программном обеспечении). Все, что нам нужно, — собрать доступную информацию о защите и правильно задать команду поиска. Допустим, мы знаем, что в случае неудачи защита выводит сообщение с известным смеще­нием, предположим, что 0х406666. Тогда, быть может, нам поможет следующая комбинация:


При этом ';;' интерпретируется как любое множество произвольных команд, включая пустое. При этом шансы, что найденный фрагмент окажется именно тем защитным механизмом, который мы ищем, очень велик. Если же нет, то не отчаивайтесь, а попробуйте еще один раз.

Очень приятно, что HIEW продолжает поиск не с текущей позиции курсора, а с места последнего найденного вхождения. Это дает нам некоторую мобильность в перемещении по файлу.

FindNext сбрасывается при перемещении курсора в начало файла по Ctrl-Home, (или в конец по Ctrl-End). Так же разумеется FindFirst (F7) и непонятно откуда взявшееся Goto (F5). Последнее иногда вынуждает на неприятные "путе­шествия" по файлу "вручную" (кирпич на Page Down).

При этом искать можно как во всем файле (по умолчанию), так и в выделенном блоке. Конечно, это полезная возможность, позволяющая работать с фрагментом файла, например, с защитной процедурой,

К сожалению, в строке поиска нельзя задавать логические конструкции типа 'AND', 'OR' и другие. Между тем эта возможность очень полезна и в последнее время поддерживается многими популярными системами.

Манипуляции с блоками

Ф. Херберт. "Дюна". Выше мы затронули способность HIEW-a работать с выделенными фрагмента­ми… Для того чтобы выделить фрагмент, необходимо однократно нажать Grey-'*'. Теперь перемещения по файлу с помощью…

Поддержка LE/PE/NE/LX/NLM-ФОРМАТОB

Вообще-то шестнадцатиричный редактор идеологически должен быть плат­форменно-независимым. Введением в него дизассемблера SEN нарушил эту традицию,… Десяток лет назад особо поддерживать было еще нечего. В то время… С другой стороны, сегментами кода и данных управляло само приложение непосредственно. Файл все еще оставался простым…

Заглянув в помощь, просто поражаешься возможностям навигации. Можно переходить к LE-заголовку, точке входа, таблице объектов и импорта, DDB-секции, таблице страниц и ресурсов, кроме того, резидентных и нерезидентных имен, да всего и не перечислишь!

Немного печально, однако, что Hiew показывает все вышеперечисленное "AS IS" и не делает никаких попыток улучшить читабельность. Можно, конечно, воспользоваться для этой цели соответствующими утилитами, но в однозадачной MS-DOS это крайне неудобно. Легче уж смириться с тем, что есть, и разбирать все структуры вручную, надеясь, что автор все же пойдет когда-нибудь навстречу своим клиентам и реализует недостающий сервис.

Между тем HIEW все же отображает по крайней мере флаги заголовка, а это уже не мало. Во всяком случае не придется копаться в битовых полях, что ускорит работу.

Также HIEW правильно дизассемблирует все вызовы VMM, что, между прочим, является не такой уж тривиальной задачей. Qview, например, это делает совершенно неправильно, чем и вводит пользователя в заблуждение.

Сравните, как дизассемблировали HIEW и QVIEW один и тот же фрагмент.

Hiew:

.000002ЕЗ: CD208DOOOIOO VMMcall Save_Client_State

•000002Е9: 5F pop edi


Qview;

000046E3: CD20
000046E5: 8DOO
000046E7: 0100
000046E9: 5F


К сожалению, SEN допустил досадную ошибку (с каким программистом этого не случается!), и его творение спотыкается при попытке ассемблирования VMM-вызова. Взгляните на экран, показанный ниже, — он наглядно иллюстрирует это. Hiew "съедает" аргумент и отказывается анализировать любой введенный вруч­ную. Как символьный, так и цифровой.Печально, конечно, но тут речь идет не более чем о программной ошибке, которая, вероятно, будет устранена в ближайших версиях. Пока это не сделано, ассемблировать придется "вручную". А для этого придется познакомиться с форматом вызова VMM.

Заглянем в MSDN: там по этому поводу содержится много полезных статей и информации. Но для начала обратим внимание на базовую функцию VMMCall:

VMMCall Service, Parameters

Она ассемблируется следующим образом:

INT 0х20

DW Parameters

DW Service

Рассмотрим это на примере, показанном ниже. Все настолько просто, что никаких проблем вызвать не должно. Если вы чего-то не понимаете, то обрати­тесь к MSDN. Там есть множество примеров, подробно комментирующих выше­сказанное.

Заслуга автора HIEW в том, что его продукт представляет это в удобочитае­мом виде. Откуда же он берет символьную информацию? Ведь ее явным образом не содержится в файле! Верно, не содержится, поэтому-то автор и создал файл hiew.vrnm приблизительно следующего содержания:

[048B.VCACHE]

Get Version

Register

GetSize

Формат его очевиден и не требует особых комментариев, достаточно взгля­нуть на расположенную ниже строку:

.00002665: CD2000008B04 VxDcall VCACHE.Get_Version

Разумеется, этот файл можно как угодно перекраивать под свой вкус и потребности. В частности, вносить поддержку новых vxd, используемых, скажем, защитой, или написанных вами. При этом vxd с ординалом сервиса 0х01 иначе еще называется (в терминологии архитектуры Win32) — VMM "Virtual-Memory Manager". На самом деле это все тот же vxd, и вызов его происходит аналогично:

.00012161: CD2001000100 VMMeall Get_Cur_VM_Handle

.00002665: CD2000008B04 VxDcall VCACHE.Get_Version

Доказательством этого служит следующая строка из hiew.vmm "[0001. VMM)". Вообще-то с названием файла, автор, похоже, допустил еще одну досадную ошибку, немного сбивающую с толку. Все же это не 'hiew.vmm', a 'hiew.vxd'. Надеюсь, что в последующих версиях это будет исправлено.

Мы еще не упомянули о таком понятии, как VxDjnnp. Он вызывается аналогично, с маленьким исключением — старший бит параметра в этом случае равен единице, а не нулю.

Вот, взгляните сами:

.00005040: CD201C801700 VxDjmp SHELL.Update_User_Activity

.00005048: CD2048810100 VMMjmp RegOpenKey

HIEW правильно интерпретирует значение этого бита, в противном случае он неверно дизассемблировал бы вызов и не смог определить функцию. Это еще раз подчеркивает, что автор проделал большую работу, и в благодарность ему можно простить мелкие ошибки. Любопытно, что вместо этого их склонны упорно не замечать, — иначе трудно объяснить, почему они продержались вплоть до 6.03 версии. Пассивный нынче народ стал, однако...

Калькулятор

Необходимость встроенного калькулятора сегодня сомнений ни у кого не вызывает. Хакеру настолько часто приходится возиться с разными системами… Впервые полноценный калькулятор, насколько помнится, появился в QVIEW, намного… отказа от HIEW-a, у которого такой калькулятор появился относительно недавно и, к сожалению, сильно проигрывает…

Quot;' Битовая операция XOR (т.е. ИЛИ-исключающее-И). '&' Битовая операция AND (т.е. И). '1' Битовая операция OR (т.е. ИЛИ).

'»' Циклический сдвиг вправо. Имеет самый низший приоритет, поэтому OxFF»l+l == Ox3F == OxFF»2. Не забывайте расставлять скобки. (Заметим, что А »-х…

Циклический сдвиг влево.

'>'Логическое "больше". А> В == 1, если А>ВиА>В == 0, если это условие ложно. Например, (1>2)+3 == 3: (10>0)+1 == 2, но 1>2+3 == 0. Обратите внимание на последний баг. Он может служить источником трудноуло­вимых ошибок.

Lt;' Логическое "меньше".

Окно калькулятора можно перемещать стрелочками вверх и вниз. Довольно полезная возможность, когда последний закрывает собой экран с необходимой в…

Крипт-система

Ф. Херберт. "Дюна". Уникальность HIEW-a прежде всего в том, что SEN впервые в мире реализо­вал в… С появлением HIEW все изменилось. Стало возможным расшифровывать программы "на лету", не отрываясь от…

Описание файла HIEW.INI

HIEW хранит часть настроек в ini-файле, который немного напоминает одноименные Windows-файлы. Их легко редактировать вручную, структура доста­точно… Первая строка непременно должна быть [Hiewini 5.03] независимо от текущей… Пустые строки и строки, начинающиеся с ';', игнорируются. Последнее, как нетрудно догадаться, предназначено для…

– Конец работы –

Используемые теги: nag, screen0.045

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: NAG SCREEN

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

NAG SCREEN
Каждому предоставлена полная свобода выбора — или терпи Nag Screen...

0.023
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам