SoftICE - SoftICE

SoftICE
Оригинальный автор (ы)NuMega
Разработчики)Compuware
изначальный выпуск1987; 33 года назад (1987) (DOS)
Окончательный релиз
Версия 4.05 / 2000; 20 лет спустя (2000)[1]
Операционная системаМайкрософт Виндоус
ТипОтладчик
ЛицензияПроприетарный

SoftICE это режим ядра отладчик за ДОС и Windows вплоть до Windows XP. Что особенно важно, он разработан для работы под Windows, поэтому Операционная система не подозревает о его присутствии. В отличие от отладчика приложений, SoftICE может приостанавливать все операции в Windows по команде. Для отладки драйверов это очень важно из-за того, как осуществляется доступ к оборудованию и функционирует ядро ​​операционной системы. Из-за своих низкоуровневых возможностей SoftICE также популярен как взлом программного обеспечения инструмент.

Microsoft предлагает два ядро -режимные отладчики, WinDbg и KD, бесплатно. Однако все возможности WinDbg и KD доступны только при использовании двух взаимосвязанных компьютеров. Таким образом, SoftICE является исключительно полезным инструментом для разработки сложных драйверов. Последняя выпущенная версия была для Windows XP.

Более старые версии существуют для ДОС и совместимые операционные системы. SoftICE изначально производился компанией под названием NuMega, и впоследствии был приобретен Compuware в 1997 году, который, в свою очередь, продал недвижимость Микро Фокус в 2009 году. В настоящее время Micro Focus владеет исходным кодом и патентами, но не занимается активной поддержкой SoftICE.

Именование

«Софт» относится к программному обеспечению, а часть имени «ICE» является намек к внутрисхемный эмулятор.

История

Оригинал SoftICE для DOS был написан в 1987 году основателями NuMega Фрэнк Гроссман и Джим Москун. Программа, написанная на 80386 язык ассемблера, играл роль операционной системы и запускал программное обеспечение в виртуальный режим 8086. Его продали за 386 долларов.

SoftICE / W (для Windows) был разработан в 1990-х годах и сыграл важную роль в написании "Недокументированных окон" Эндрю Шульман, Дэвид Макси и Мэтт Пьетрек. SoftICE / W был создан на основе более раннего, менее известного продукта, SoftICE для NetWare (32-битный защищенный режим). Одним из ключевых преимуществ, которые он имел перед отладчиками Microsoft, было то, что он позволял отладку на одной машине, вместо того, чтобы требовать подключения второй машины через последовательный порт.

Основными разработчиками SoftICE были Дом Базиль (Mr. SoftICE), Том Гинтер (кухонная мойка, Symbol Engine), Джеральд Рикман (видеодрайверы и Кухонная мойка), Рэй Хсу (видеодрайверы для Windows 95) и Дэн Бэбкок (SoftICE / NT 3.1 / 3.5: универсальный видеодрайвер, движок символов) при участии различных разработчиков NuMega, включая Фрэнка Гроссмана, Джима Москуна и Мэтта Питрека.

В 1998 году кодовая база для SoftICE / 95 был перенесен для работы на платформе Windows NT.

Новые версии SoftICE исправляют глубоко в Microsoft Windows. Таким образом, старые версии SoftICE редко совместимы с новыми версиями Windows. Поэтому Compuware предлагала SoftICE в качестве подписки, чтобы ее можно было обновлять и синхронизировать с последней версией Microsoft Windows.

Раньше он предлагался как часть Compuware's DriverStudio пакет, но был прекращен в апреле 2006 года.

Прекращение

По состоянию на 3 апреля 2006 года семейство продуктов DriverStudio было прекращено из-за «множества технических и деловых проблем, а также общих рыночных условий». Техническая поддержка была предложена до 31 марта 2007 г.

Меры Anti-SoftICE

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

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

 mov eax, dword ptr [pIDT+2]; eax -> IDT Добавить eax, 8                 ; eax -> int 1 вектор mov ebx, [eax]             ; ebx == int 1 вектор Добавить eax, 16                ; eax -> int 3 вектор mov eax, [eax]             ; eax == int 3 вектор и eax, 0FFFFh            ; убрать селектор и ebx, 0FFFFh            ; Часть этого суб eax, ebx               ; найти смещение cmp eax, 10часjne  ВзломанныйВектор           ; не равны, тогда шансы                            ; SoftICE подделал эти векторы

С тех пор появилось все больше и больше таких мер. Хотя большинство из них могут отпугнуть только менее опытных и решительных хакеров, SoftICE больше не является предпочтительным инструментом для тех, кто плохо знаком с анализом программного обеспечения.

Сегодня защита поставщиков основана на более сложных упаковщиках / протекторах, например Фемида, Армадилло или же ASProtect которые упаковывают программный код и подделывают адреса точек входа, поэтому трудно найти исходную точку входа программы (OEP ). Это также верно для программы таблица адресов импорта (IAT). Однако также доступны инструменты для сокрытия SoftICE, такие как IceStealth и IceExt для Windows NT или Icedump и IcePatch для Windows 9x.[2]

Прием

БАЙТ в 1989 году Soft-ICE был назван одним из лауреатов премии BYTE Awards «Отличие», заявив, что «если вы разрабатываете приложения на базе 8086 на машине 80386, это важный и доступный инструмент».[3]

Альтернативы

Коммерческий отладчик уровня ядра под названием Syser утверждает, что продолжает с того места, на котором остановился SoftICE.

Условно-бесплатный отладчик, но бесплатный OllyDbg это 32-битный отладчик уровня ассемблера от Олега Ющука. Однако его можно использовать только для отладки в пользовательском режиме.

Отладчик ядра с открытым исходным кодом, похожий на SoftICE, названный Rasta Ring 0 Отладчик (RR0D) есть в наличии.[4][5] Он обеспечивает низкоуровневую отладку для Майкрософт Виндоус, Linux, OpenBSD, NetBSD, и FreeBSD. Этот проект, похоже, не поддерживается активно. По состоянию на июнь 2016 г., последнее изменение в его GitHub Репозиторий исходного кода произошел в декабре 2008 года.[6]

LinICE - еще один отладчик уровня ядра с внешним видом SoftICE. По состоянию на 2015 год, он тоже несколько лет не обновлялся.[7]

HyperDBG - это отладчик уровня ядра, использующий аппаратную виртуализацию. По состоянию на 2011 г., последний раз он обновлялся в мае 2010 г.[8]

Отладчик называется BugChecker это 32-битный отладчик ядра с одним хостом для Windows 2000 и XP, разработанный и доступный как открытый исходный код для образовательных целей. BugChecker позволяет пользователям отслеживать как пользовательский код, так и код ядра, как в однопроцессорных, так и в многопроцессорных версиях Windows 2000 и XP.[9]

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

Рекомендации

  1. ^ Примечания к выпуску NuMega SoftICE 4.05
  2. ^ «Категория: Расширения SoftICE - Совместная библиотека инструментов RCE». Woodmann.com. Получено 2014-04-24.
  3. ^ "The BYTE Awards". БАЙТ. Январь 1989 г. с. 327.
  4. ^ «RR0D / Презентация». Wiki.droids-corp.org. Получено 2014-04-24.
  5. ^ «Отладчик Rasta Ring 0 (RR0D) - Совместная библиотека инструментов RCE». Woodmann.com. 2007-10-18. Получено 2014-04-24.
  6. ^ Джо. "ice799 / rr0d". Github.com. Получено 2016-06-05.
  7. ^ «Отладчик LinICE». sites.google.com. Получено 2015-07-31.
  8. ^ "hyperdbg - отладчик ядра, использующий аппаратную виртуализацию". Code.google.com. Получено 2014-04-24.
  9. ^ "BugChecker". BugChecker. Получено 2014-04-24.

внешняя ссылка