Сайт о телевидении

Сайт о телевидении

» » Лучшие инструменты пентестера: отладчики и дизассемблеры. Отладка и тестирование программ

Лучшие инструменты пентестера: отладчики и дизассемблеры. Отладка и тестирование программ

Эта документация перемещена в архив и не поддерживается.

WinPE: отладка приложений

Для отладки приложений, а также ядра в среде предустановки Windows вы можете применить отладчики Windows, например Ntsd.exe, Cdb.exe, Windbg.exe, и вспомогательные средства. Средства отладки включены в Windows 10 SDK . Чтобы открыть доступ к средствам отладки на компьютере, где запускается среда предустановки Windows, их нужно скопировать на локальный диск или предоставить общий доступ.

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

wpeutil disablefirewall

Отладка в пользовательском режиме

Чтобы выполнить отладку в пользовательском режиме, проще всего запустить на компьютере, где выполняется среда предустановки Windows, внутрипроцессный сервер и подключиться к нему, используя отладчик на другом компьютере. Сервер процессов входит в набор средств отладки в Windows 10 SDK .

Запуск внутрипроцессного сервера в пользовательском режиме

    Скопируйте средство сервера процессов отладки Windows dbgsrv.exe из папки средств отладки Windows 10 SDK (например, C \Windows Kits\10.0\Debuggers\x64 файлов \Program (x86) на компьютер c Windows PE.

    В командной строке среды предустановки Windows отключите брандмауэр.

    wpeutil disablefirewall

    Запустите внутрипроцессный сервер отладки Windows, указав способ подключения к компьютеру, например TCP-порт:

    dbgsrv.exe –t tcp:port=1234

    Активация сервера процессов (отладчики Windows) .

    На удаленном компьютере используйте внутрипроцессный сервер для подключения или запуска процессов в среде предустановки Windows на конечном компьютере:

    windbg -premote tcp:server=Server, port=1234

    Дополнительные сведения см. в разделе Активация интеллектуального клиента (отладчики Windows) .

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

Эту процедуру можно применить, если вы хотите обойти startnet.cmd или setup.exe и перейти для отладки непосредственно из командной строки. При этом полностью исключается инициализация, в том числе установка, и не выполняются команды, например Wpeinit.exe. Процедуру нужно выполнять в сети на подключенной операционной системе.

Включение отладки в пользовательском режиме до инициализации

    Удалите файл winpeshl.ini, если он есть. Если файла winpeshl.ini не существует, отладка в пользовательском режиме доступна по умолчанию.

    Во время загрузки удерживайте клавишу CTRL, пока не появится командная строка. На экране появляется командная строка.

    Приступайте к отладке.

Отладка в режиме ядра

Чтобы выполнить отладку в режиме ядра, ее следует включить до загрузки системы. В файле конфигурации загрузки есть параметр отладки в режиме ядра, который можно включить при помощи программы командной строки bcdedit.exe для изменения хранилища данных конфигурации загрузки. Отладка в режиме ядра выполняется только с помощью bcdedit.exe. Bcdedit.exe находится разделе Windows в каталоге \Windows\System32.

Параметры отладчика по умолчанию выглядят так:

Identifier {dbgsettings} debugtype Serial debugport 1 baudrate 115200

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

Сведения об изменении хранилища данных конфигурации загрузки по умолчанию (default.bcd) см. в разделе Как изменить хранилище данных конфигурации загрузки с помощью Bcdedit .

Включение отладки в режиме ядра

    Найдите хранилище данных конфигурации загрузки, которое находится в файле с именем bcd . Этот файл находится в загрузочном каталоге в корне носителя, на котором записан образ среды предустановки Windows.

    В командной строке введите следующую команду bcdedit, чтобы установить флаг отладки хранилища данных конфигурации загрузки, используемого для загрузки образа, на debug on.

2. Средства активной отладки

2.1. Архитектура средств активной отладки

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

Имеет ли система встроенные средства отладки (в этом случае агенту достаточно осуществлять вызов соответствующих функций и пересылать результаты менеджеру);

Какие она предоставляет возможности по созданию обработчиков (для контроля за происходящими событиями агенту может потребоваться собственный обработчик);

Вызовы каких функций дозволено делать агенту.

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

Общая структура активного кросс-отладчика приведена на рис. 2.

Рис. 2. Активный кросс-отладчик

Рассмотрим протокол «менеджер-агент» на примере отладчика VxGDB (Wind River Systems, целевая система - VxWorks). Этот протокол базируется на RPC (Remote Procedure Call). Запросы менеджера можно классифицировать следующим образом:

Сюда относятся запрос на загрузку модуля, запрос на получении информации о загрузочном файле и запрос на получение информации о символе.

Это запросы на запуск, остановку и удаление задачи, на присоединение и отсоединение от запущенной задачи, на установку и удаление точки прерывания, на продолжение выполнения остановленной задачи.

3. ptrace-запросы

Агент отладки эмулирует функцию ptrace и передает ей соответствующие запросы на чтение и запись.

Из книги Отладка систем реального времени [Обзор] автора Костюхин К А

2.1. Архитектура средств активной отладки В общем случае кросс-отладчик состоит из 2 основных модулей: менеджера на инструментальной платформе и агента отладки на целевой стороне. Менеджер служит для обеспечения пользовательского интерфейса, то есть для приема команд, их

Из книги Информатика и информационные технологии: конспект лекций автора Цветкова А В

4. Регистры отладки Это очень интересная группа регистров, предназначенных для аппаратной отладки. Средства аппаратной отладки впервые появились в микропроцессоре i486. Аппаратно микропроцессор содержит восемь регистров отладки, но реально из них используются только

Из книги Информатика и информационные технологии автора Цветкова А В

46. Регистры отладки Это очень интересная группа регистров, предназначенных для аппаратной отладки. Средства аппаратной отладки впервые появились в микропроцессоре i486. Аппаратно микропроцессор содержит восемь регистров отладки, но реально из них используются только

Из книги Office 2007. Мультимедийный курс автора Мединов Олег

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

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

Приложение 3 Средства разработки и отладки сценариев В принципе, можно создавать сценарии в Блокноте Windows или в текстовых редакторах файловых оболочек типа Far Manager, а отлаживать их с помощью вывода в нужных местах сценария значений переменных на экран (метод Echo объекта

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Глава 7 Средства отладки использования памяти Несмотря на то что С бесспорно является стандартным языком программирования в системах Linux, он имеет ряд особенностей, не дающих программистам возможности писать код, не содержащий тонких ошибок, которые впоследствии очень

Из книги VBA для чайников автора Каммингс Стив

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

Из книги Программирование КПК и смартфонов на.NET Compact Framework автора Климов Александр П.

Программы для отладки приложений В этой главе речь пойдет об утилитах, необходимых для успешного программирования приложений для мобильных устройств. Пожалуй, самой главной из этих утилит является программный эмулятор Device Emulator. Кроме того, в состав Visual Studio 2005 входит

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

21.1.7. Опции отладки Если вы хотите использовать отладчик, например gdb, для отладки своей программы, укажите опцию -g при вызове компилятора. Эта опция помещает в откомпилированный файл отладочную информацию, вследствие чего существенно увеличивается объем файла. Поэтому

Из книги Linux программирование в примерах автора Роббинс Арнольд

15.2. Компиляция для отладки Для использования отладчика исходного кода, отлаживаемый исполняемый файл должен быть откомпилирован с опцией компилятора -g. Эта опция заставляет компилятор внедрять в объектный код дополнительные отладочные идентификаторы; то есть

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

15.4. Программирование для отладки Имеется множество методик для упрощения отладки исходного кода, от простых до сложных. В данном разделе мы рассмотрим ряд из

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

15.7. Правила отладки Отладка не является «черной магией». Ее принципы и методики могут быть изучены и последовательно применены каждым. С этой целью мы рекомендуем книгу Debugging Дэвида Эганса (David J. Agans; ISBN: 0-8144-7168-4). У книги есть веб-сайт, на котором обобщены правила и

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

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

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.

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

Из книги автора

Раздел отладки В версии 4.9 задачника Programming Taskbook появились средства, позволяющие выводить отладочную информацию непосредственно в окно задачника (в специальный раздел отладки). Необходимость в подобных дополнительных средствах возникает, прежде всего, при работе с

Из книги автора

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

Отла́дка - этап разработки компьютерной программы , на котором обнаруживают, локализуют и устраняют ошибки. Чтобы понять, где возникла ошибка, приходится:

  • узнавать текущие значения переменных ;
  • выяснять, по какому пути выполнялась программа.

Существуют две взаимодополняющие технологии отладки.

  • Использование отладчиков - программ, которые включают в себя пользовательский интерфейс для пошагового выполнения программы: оператор за оператором, функция за функцией, с остановками на некоторых строках исходного кода или при достижении определённого условия.
  • Вывод текущего состояния программы с помощью расположенных в критических точках программы операторов вывода - на экран , принтер , громкоговоритель или в файл. Вывод отладочных сведений в файл называется журналированием .

Энциклопедичный YouTube

    1 / 3

    Без этого вы не станете программистом! Найти ошибку в коде. Отладка. Как пользоваться отладчиком #23

    Основы Java. Урок 16: Отладка программы в Eclipse

    Основы программирования - создание и отладка первой программы. Урок 2.

    Субтитры

Место отладки в цикле разработки программы

Типичный цикл разработки, за время жизни программы многократно повторяющийся, выглядит примерно так:

  1. Программирование - внесение в программу новой функциональности, исправление существующих ошибок .
  2. Тестирование (ручное или автоматизированное; программистом, тестером или пользователем; «дымовое », в режиме чёрного ящика или модульное …) - обнаружение факта ошибки.
  3. Воспроизведение ошибки - выяснение условий, при которых ошибка случается. Это может оказаться непростой задачей при программировании параллельных процессов и при некоторых необычных ошибках, известных как гейзенбаги .
  4. Отладка - обнаружение причины ошибки.

Инструменты

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

Инструменты отладки

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

Также полезными инструментами в руках программиста могут оказаться:

  • Профилировщики . Они позволят определить, сколько времени выполняется тот или иной участок кода. Анализ покрытия позволяет выявить неисполняемые участки кода.
  • API логгеры позволяют отследить взаимодействие программы и Windows API при помощи записи сообщений Windows в лог.
  • Дизассемблеры позволяют посмотреть ассемблерный код исполняемого файла
  • Снифферы помогут отследить сетевой трафик, генерируемый программой
  • Снифферы аппаратных интерфейсов позволяют увидеть данные, которыми обмениваются система и устройство.
  • Логи системы.

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

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

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

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

«Отладка сложна и может занимать непредсказуемо долгое время, поэтому цель в том, чтобы миновать большую её часть. Технические приёмы, которые помогут уменьшить время отладки, включают хороший дизайн, хороший стиль , проверку граничных условий, проверку правильности исходных утверждений и разумности кода, защитное программирование, хорошо разработанные интерфейсы, ограниченное использование глобальных переменных, автоматические средства контроля и проверки. Грамм профилактики стоит тонны лечения.»

Инструменты, снижающие потребность в отладке

Другое направление - сделать, чтобы отладка нужна была как можно реже. Для этого применяются:

  • Контрактное программирование - чтобы программист подтверждал другим путём, что ему на выходе нужно именно такое поведение программы. В языках, в которых контрактного программирования нет, используется самопроверка программы в ключевых точках.
  • Безопасность программного кода и отладка

    В программном коде может быть так называемое недокументированное поведение - серьёзные ошибки, которые не проявляются при нормальном ходе выполнения программы, однако весьма опасны для безопасности всей системы в случае целенаправленной атаки. Чаще всего это результат ошибок программиста. Наиболее известные примеры - это SQL-инъекция и переполнение буфера . В данном случае задача отладки это:

    • Выявление недокументированного поведения системы
    • Устранение небезопасного кода

    Выделяют такие методы:

    • статический анализ кода. На этой фазе программа сканер ищет последовательности в исходном тексте, соответствующие небезопасным вызовам функций и т. д. Фактически идет сканирование исходного текста программы на основе специальной базы правил, которая содержит описание небезопасных образцов кода.
    • фаззинг. Это процесс подачи на вход программы случайных или некорректных данных и анализ реакции программы.
    • Reverse engineering (Обратная инженерия). Этот случай возникает, когда независимые исследователи ищут уязвимости и недокументированные возможности программы.

У каждого из команды ][ - свои предпочтения по части софта и утилит для
пентеста. Посовещавшись, выяснилось, что выбор так разнится, что можно составить
настоящий джентльменский набор из проверенных программ. На том и решили. Чтобы
не делать сборную солянку, весь список мы разбили на темы. Сегодня мы разберем
отладчики и дизасемблеры — все, что понадобится для реверсинга приложений.

OllyDbg

Если ты хоть раз читал статьи о крякинге или, например, смотрел видеоуроки от
нашего реверсера Cr@wler’а, то имя "Ольки" тебе должны быть знакомо. Это
32-битный отладчик работающий на ring-3 с продуманным интерфейсом и полезными
функциями, которые существенным образом облегчают процесс отладки. В OllyDBG
встроен специальный анализатор, которые распознает и визуально обозначает
процедуры, циклы, константы и строки, внедренные в код, обращение к функциям API,
параметры этих функции и т.п. Для новичка (и не только) — это именно то, что
надо! В ходу до сих пор находится версия 1.10, а бета-версия второй ветки еще с
марта не претерпела изменений, однако уже сейчас можно оценить многочисленные
нововведения дебаггера. Работа ведется уже давно, и поэтому разработчику уже
есть что показать (прежде всего новый движок). Бету едва ли можно рассматривать
как основной инструмент для серьезных дел, поэтому спешу предупредить: о
стабильности нового движка пока приходится только мечтать, поэтому используй "бетку"
на свой страх и риск.

Тут надо сказать, что стал OllyDbg стандартным user-land отладчиком, взятым
на вооружение хакерами и они тут же захотели его улучшить. Появилось множество
нестандартных сборок: одни фиксят ошибки Ольги, другие расширяют функционал,
третьи – скрывают ее от протекторов. Недостаток - "движок" отладчика работает
через MS Debugging API, страдающий кучей врожденных ограничений, оставляющий за
собой множество трудноудаляемых следов и представляющий легкую мишень для
антиотладочных технологий.

Immunity Debugger

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

В Immunity Debugger входит множество библиотек, написанных на Питоне и
заточенных под хакерские нужды. Библиотеки вызываются из Питоновых программ,
среди которых значится и searchcrypt.py – отличное средство идентификации
следующих криптографических алгоритмов: AES, BLOWFISH, CAMELLIA, CAST, MD5, RC2,
RC5, RIPEMD160, SHA1, SHA256, SHA512.

Immunity Debugger используют многие специалисты по безопасности,
выкладывающие proof-of-concept expolit’ы, написанные на Питоне и предназначенные
для работы исключительно в среде данного отладчика. И хотя хакер с головой
разберется в алгоритме работы exploit’а и без Immunity Debugger’а, портируя
exploit на любой другой язык, рано или поздно отладчик оказывается на
компьютере, зачастую становясь основным инструментом, вытесняющим Ольгу.

YDbg

Популярный и очень мощный мод, основанный на Ольге 1.10 и собравший в своем
дистрибутиве огромное количество плагинов, скриптов, а также кучу других
полезных инструментов. В отличие от Immunity Debugger’а, ориентированного на
специалистов по безопасности, YDbg писался хакерами и для хакеров, ломающих
защиты с протекторами (те активно сопротивляются такому положению дел и
напичканы анти-отладочными приемами, распознающими присутствие Ольги по главному
окну с ее именем и пунктам меню). Поэтому первое, что бросается в глаза при
запуске YDbg (исполняемый файл которого переименован из OLLYDBG.EXE в SND.exe),
это "покореженные" пункты меню. В частности, "Memory" превратилось в "M3m0ry", "SEH
chain" в "S3H chain", "Breakpoints" в "Br3akp01nts" и т. д. Словом, все
"хакерские" пункты изменены – попробуй их найти (естественно, в новых версиях
протекторов наверняка появится детекция YDbg, но пока он успешно скрывается от
кучи защит, палящих Ольгу). В состав дистрибутива YDbg входит 36 популярных
плагинов (и не нужно теперь рыскать по Сети в их поисках). Среди них затесался
настоящий бриллиант – IDA Sigs, название которого говорит само за себя. Да-да!
Это плагин, поддерживающий IDA-сигнатуры и отображающий их в виде комментариев к
вызываемым функциям в Ольге или в YDbg. Другой полезный плагин – red-hawk
("красный ястреб") представляет собой панельку инструментов, позволяющую, в
частности, одним движением мыши установить точки останова на нужные функции
(например, в Visual Basic’е это что-то типа __vbaStrCmp или __vbaStrCopy,
используемые для сравнения и копирования строк, соответственно). Начинающие
хакеры просто визжат от восторга, поскольку красный ястреб фактически является
учебником по взлому, а так попробуй догадаться, что нужно делать! Каталог \SCRIPT
содержит 637 скриптов, главным образом предназначенных для снятия различных
протекторов/упаковщиков исполняемых файлов и автоматизации всяких рутинных дел.

SoftICE

Всем известный (даже тем, кто к крякингу даже близко не подходил) отладчик
для Windows, работающий дна уровне ядра. В отличие от прикладного отладчика, как
например OllyDbg, SoftICE способен приостановить все операции в Windows, что
очень важно для отладки драйверов. Работает в обход MS Debugging API, что
значительно усложняет антиотладку, однако, учитывая, что для разработчиков защит
soft-ice – враг номер один, практически все протекторы легко распознают его
присутствие в системе. Поэтому никак не обойтись без специальных расширений
(которые упомянем дальше). SoftICE был первоначально разработан компанией NuMega,
которая включала его в пакет программ для быстрой разработки
высокопроизводительных драйверов под названием Driver Studio, который
впоследствии был приобретён Compuware. Помнишь, сколько всевозможных мануалов
было по поводу установки Soft-Ice’а под Windows XP? Увы, начиная с висты,
отладчик не работает. Разработчики приостановили разработку в апреле 2006 года.
На официальном сайте его не найти и доступен только на торрентах.

Microsoft Debugger

Входит в состав WDK (Windows Driver Kit - бывший Driver Development Kit или
DDK), а также в комплект Debugging Tools. Оба они бесплатны, но WDK намного
больше по объему и требует предварительной регистрации для получения Windows
Live ID, в то время как Debugging Tools раздается без регистрации вместе с SDK,
в которую входит документация, заголовочные файлы, библиотеки и несколько
примеров, как надо писать плагины.

Microsoft Debugger может работать как на прикладном уровне (ring-3), так и на
уровне ядра. Вплоть до XP ядерная отладка требовала, как минимум, двух машин,
соединенных COM-шнурком, но теперь достаточно и одной.

Поставляется в двух редакциях: windbg.exe – графический интерфейс и cdb.exe -
интерфейс командой строки. И та и другая являются лишь тонкими обертками вокруг
dbgeng.dll, в которой, собственно, и реализован основной отладочный "движок",
документированный протокол обмена. Поэтому, чтобы в очередной раз не писать
трассер с нуля, dbgeng.dll можно использовать в качестве "фундамента" при
написании универсальных распаковщиков исполняемых файлов.

Syser Kernel Debugger

Достойных отладчиков ядра всего три: SoftICE, Syser и Microsoft Kernel
Debugger, но SoftICE не работает на Висте и Server 2008, а Microsoft Kernel
Debugger – для хакерских целей не самый лучший вариант. Остается Syser , который
хакеры взяли на вооружение и весьма активно используют. Написан он двумя
предприимчивыми китайскими реверсерами Wu YanFeng и Chen JunHao. По сути, Syser
— отладчик уровня ядра с графическим оконным интерфейсом. Позволяет отлаживать
как приложения, так и драйвера. Сочетает в себе функции IDA Pro, Softice и
Ollydbg. Поддерживает подсветку листинга дизассеблера, динамическую загрузку и
выгрузку, все команды отладчика SoftICE, полноценную работу с юникодом и
многопроцессорными системами. Проработаны многие мелочи: например корректно
работает буфер обмена, позволяющий копировать данные из уровня Ring 3 в уровень
Ring 0. Многие из операций можно автоматизировать с помощью скриптов. Надо
сказать, что Syser — преемник SoftICE, из которого, как говорят, были дернуты
целые модули. У него масса преимуществ, как, впрочем, масса недостатков, поэтому
реально его приходится юзать совместно с Microsoft Kernel Debugger.

GDB

GNU Debugger – основной отладчик под UNIX, ориентированный на совершенно иной
тип мышления, чем все вышеперечисленные отладчики. Это не просто интерактивный
отладчик, скорее это станок с программным управлением, гибким и мощным
интерфейсом. Отлаживать с его помощью "честные" программы - одно удовольствие,
но в плане антиотладки дела обстоят плохо. GDB даже не пытается сопротивляться и
работает через библиотеку ptrace (которая на самом деле никакая не библиотека, а
системный вызов). GDB принципиально неспособен отлаживать программы, которые не
хотят, чтобы их отлаживали. А такие программы мало-помалу начинают появляться.

Естественно, помимо GDB существуют и другие отладчики для никсов, например,
Lin-Ice, но поскольку антиотладочные технологии под UNIX только-только начинают
развиваться, в большинстве случаев вполне сгодиться и GDB.

IDA Pro

IDA Pro — это одновременно интерактивный дизассемблер и отладчик. Она
позволяет превратить бинарный код программы в ассемблерный текст, который может
быть применен для анализа работы программы. Правда, стоит сказать, что
встроенный ring-3 отладчик довольно примитивен. Он работает через MS Debugging
API (в NT) и через библиотеку ptrace (в UNIX), что делает его легкой добычей для
защитных механизмов. Но зато IDA Pro - интерактивный дизассемблер более чем с
десятилетней историей, первая версия которой увидела свет 6 мая 1991 года. Юрий
Харон вместе с Ильфаком начали работать в том направлении, куда еще никто не
вкладывал деньги. До этого дизассемблеры писались исключительно на пионерском
энтузиазме параллельно с изучением ассемблера и довольно быстро забрасывались.
Стоит ли удивляться, что парням удалось решить практически все фундаментальные
проблемы дизассемблирования, над которыми просто не хотели работать остальные
разработчики, зная, что быстрой отдачи не будет и проект потребует десятилетий
упорного труда. К пятой версии IDA Pro имела в своем арсенале все необходимое
для автоматической декомпиляции, причем не просто декомпиляции, а очень
качественной декомпиляции. На текущй момент последний резиз 5.5 от 12 июня.
Влюбленные в продукт пользователи генерят немало полезных плагинов, в том числе
поддерживающих разные скриптовые языки для написания сценариев в дополнение к
встроенному IDC. Например,
IdaRUB
добавляет поддержку Ruby, а
IDAPython — Python.
Тут надо сказать, что начиная с версии 5.4 IDAPython идет предустановленной в
дистрибутивы ИДЫ.

Hex-Rays

Дальше разработчики подумали и решили, что уж раз смогли получить
человеческий код на ассемблере, то неплохо дописать еще одну фичу, переводящую
китайскую ассемблерную грамоту в доступный и понятный листинг на языке Си.
Закипела напряженная работа, по ходу которой выявлялись все новые и новые
подводные камни, обход которых требовал времени, усилий и мозговой активности. В
итоге на свет появился , требующий обязательно установленную на компьютеру
ИДУ. Декомпилятору подается на вход бинарник, указывается ряд параметров, после
чего Hex-Rays выплевывает исходник на чистом C — в большинстве своем понятный и
доступный. Правда, спешить компилировать его обратно в бинарник не стоит, потому
как в большинстве случаев в момент компиляции ты увидишь столько ошибок, сколько
еще не видывал. Одна из причин — отсутствие поддержки в Hex-Rays ресурсов.

W32DASM

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

DeDe

PEiD

Любой коммерческий продукт должен быть достаточно хорошо защищен.
Разработчики намеренно использует разного рода упаковщики и так называемые
протекторы, которые применяют разного рода антиотладочные средства, максимально
препятствующие взлому программы. Обойти их можно, но для этого нужно четко
представлять, что использовалось для защиты программы, какой плагин для
отладчика использовать — и от этого "крутиться". Изящно определить название и
версию упаковщик способна небольшая утилита PEiD . Собственно, для этого она и
нужна.

PE Explorer

Программа для просмотра и редактирования PE-файлов — начиная с EXE, DLL и
ActiveX контролов, и заканчивая скринсейвверами SCR (Screensavers), апплетами
панели управления CPL, SYS и бинарниками для платформы Windows Mobile. По сути,
это не одна утилита, а целый набор тулз для того, чтобы посмотреть изнутри, как
работает программа или библиотека. Включает в себя просмотрщик заголовков,
экспорт вызовов API-функций, редактор ресурсов, дизассемблер.

Windows 7 мраморный век империи из Редмонда

«Я принял Рим кирпичным, а оставляю мраморным» сказал в последние годы жизни известнейший римский император Октавиан Август. Что ж, если бы в 2009 году Майкрософт прекратила свое существования, что-то похожее можно было бы сказать с уверенностью.

Вспомните Windows 3.11, если вам приходилось ей пользоваться. Напоминающая тетрис в современном понимании она все же была фурором своего времени.

Времена изменились. Сегодня к ОС применяются куда более высокие требования. Анонсированная 22 октября 2009 года Windows 7 оказалась неким «мраморным веком» компании Майкрософт. Хотя с момента запуска системы прошло уже более 6 лет и сменилось еще два поклонения ОС, почти 60% от общего числа пользователей Windows пользуются именно «семеркой».

Почему Windows 7?

Пришедшая на смену неудачной Vista, красивым и правильным в которой пользователи считали только название, «семерка» уверено пришла «жить» на ПК и там осталась на долгие годы. Одним из факторов, который посодействовал ее успеху, было время появления. Можно сказать, что Vista приняла на себя весь удар по внедрению нового внешнего вида, дизайна и подходов в интерфейсе.

Кроме того, Майкрософт потренировались, отшлифовали все косяки и теперь, вот встречайте Windows 7.

Отличительные черты Windows 7

Официальную Windows 7 отличает отличная стабильность. Если вы пользовались , наверное, помните, что стабильной тогда была только необходимость переустанавливать систему примерно раз в полгода для хорошей работы ПК. Windows 7 же у пользователей стояла 2-3 года, а при уходе за ПК — даже дольше.

Новый, приятный интерфейс стали еще одним важным отличием. После квадратных форм XP, 7-ка была действительно красивой. Режим Aero также придавал свою изюминку.

Настройка Windows 7

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

Стоит ли удалить Windows 7?

Если ли смысл сейчас менять то, что уже устоялось, оставлять «мрамор»? Или хороша пословица: «Лучше синица в руках, чем журавль в небе». Каждый примет свое решение. В этом разделе PCgu.ru можно найти статьи и видео о том, как установить Windows 7 и о восстановлении этой ОС.