СофтICE
Тон или стиль этой статьи могут не отражать энциклопедический тон , используемый в Википедии . ( январь 2009 г. ) |
Оригинальный автор(ы) | Номега |
---|---|
Разработчик(и) | Компьютерное программное обеспечение |
Первоначальный выпуск | 1987 год | (DOS)
Финальный выпуск | v4.05
/ 2000 [1] |
Операционная система | Microsoft Windows |
Тип | Отладчик |
Лицензия | Собственный |
SoftICE — режима ядра отладчик для DOS и Windows вплоть до Windows XP . Он предназначен для работы под Windows, поэтому операционная система не знает о его присутствии. В отличие от отладчика приложений, SoftICE способен приостанавливать все операции в Windows по соответствующему указанию. Благодаря своим низкоуровневым возможностям SoftICE также популярен как инструмент для взлома программного обеспечения .
Microsoft предлагает два отладчика режима ядра, WinDbg и KD, бесплатно. Однако полные возможности WinDbg и KD доступны только при использовании двух взаимосвязанных компьютеров. Таким образом, SoftICE является исключительно полезным инструментом для сложной разработки, связанной с драйверами. Последняя выпущенная версия была для Windows XP.
Существуют более старые версии для DOS и совместимых операционных систем. Первоначально SoftICE был произведен компанией NuMega и впоследствии был приобретен Compuware в 1997 году, которая, в свою очередь, продала собственность Micro Focus в 2009 году. В настоящее время Micro Focus владеет исходным кодом и патентами, но не занимается активной поддержкой SoftICE.
Мы
[ редактировать ]«Soft» относится к программному обеспечению, а «ICE» — это намек на внутрисхемный эмулятор .
История
[ редактировать ]Оригинальный SoftICE для DOS был написан в 1987 году основателями NuMega Фрэнком Гроссманом и Джимом Москуном. Программа, написанная на 80386 языке ассемблера , играла роль операционной системы и запускала программное обеспечение в виртуальном режиме 8086 . Он был продан за 386 долларов.
SoftICE/W (для Windows) был разработан в 1990-х годах и сыграл важную роль в написании «Недокументированной Windows» Эндрю Шульманом, Дэвидом Макси и Мэттом Питреком . SoftICE/W был создан на основе более раннего, менее известного продукта SoftICE для NetWare (32-битный защищенный режим ). Одним из ключевых преимуществ, которые он имел по сравнению с отладчиками Microsoft, было то, что он позволял отладку на одной машине, а не требовал подключения второй машины через последовательный порт.
Основными разработчиками SoftICE были Дом Базиле («Мистер SoftICE»), Том Гюнтер (Kitchen Sink, Symbol Engine), Джеральд Рикман (Видеодрайверы и Kitchen Sink ), Рэй Сюй (Видеодрайверы для Windows 95 ) и Дэн Бэбкок (Видеодрайверы для Windows 95). SoftICE/NT 3.1/3.5: универсальный видеодрайвер, символьный движок), при участии различных разработчиков NuMega, включая Фрэнка Гроссмана, Джима Москуна и Мэтта Питрека.
В 1998 году база кодовая SoftICE/95 была портирована для работы на платформе Windows NT .
Новые версии SoftICE вносят глубокие исправления в Microsoft Windows. Таким образом, старые версии SoftICE редко совместимы с новыми версиями Windows. Поэтому Compuware предложила SoftICE в качестве подписки, чтобы его можно было поддерживать в актуальном состоянии и синхронизировать с последней версией Microsoft Windows.
SoftICE ранее предлагался как часть пакета Compuware DriverStudio, но его поддержка была прекращена в апреле 2006 года.
Прекращение действия
[ редактировать ]По состоянию на 3 апреля 2006 г. производство семейства продуктов DriverStudio было прекращено из-за «множества технических и деловых проблем, а также общих рыночных условий». Техническая поддержка предлагалась до 31 марта 2007 г.
Меры против SoftICE
[ редактировать ]Поставщики программного обеспечения внедрили широкий спектр контрмер, чтобы защитить себя от людей, использующих SoftICE в качестве инструмента для анализа программного обеспечения.
Например, вот код, который некоторые поставщики используют для обнаружения присутствия SoftICE, работающего на той же машине, в качестве ранней контрмеры:
mov eax, dword ptr [pIDT+2]; eax -> IDT
add eax, 8 ; eax -> int 1 vector
mov ebx, [eax] ; ebx == int 1 vector
add eax, 16 ; eax -> int 3 vector
mov eax, [eax] ; eax == int 3 vector
and eax, 0FFFFh ; strip the selector
and ebx, 0FFFFh ; part of it
sub eax, ebx ; find displacement
cmp eax, 10h
jne HackedVector ; not equal, then chances are
; SoftICE had tampered with these vectors
С тех пор такие меры стали развиваться все лучше и лучше. Хотя большинство из них могут сдерживать только менее опытных и решительных хакеров, SoftICE больше не является предпочтительным инструментом для новичков в анализе программного обеспечения.
Современные методы программного антианализа основаны на более сложных упаковщиках/защитниках, например Themida, Armadillo или ASProtect, которые упаковывают программный код и изменяют адреса точек входа, поэтому трудно найти исходную точку входа программы ( OEP ). программы Это также верно для таблицы адресов импорта (IAT). Однако также доступны инструменты для сокрытия SoftICE, такие как IceStealth и IceExt для Windows NT или Icedump и IcePatch для Windows 9x . [2]
Прием
[ редактировать ]В 1989 году компания BYTE включила Soft-ICE в число победителей премии BYTE Awards «За выдающиеся достижения», заявив, что «если вы разрабатываете приложения на базе 8086 на машине 80386, это важный и доступный инструмент». [3]
Альтернативы
[ редактировать ]Коммерческий отладчик уровня ядра под названием Syser утверждает, что продолжает работу с того места, где остановился SoftICE.
Условно -бесплатный , но бесплатный отладчик OllyDbg — это 32-битный отладчик уровня ассемблера от Олега Ющука. Однако его можно использовать только для отладки в пользовательском режиме.
отладчик ядра с открытым исходным кодом, аналогичный SoftICE, под названием Rasta Ring 0 Debugger (RR0D). Доступен [4] [5] Он обеспечивает низкоуровневую отладку для Microsoft Windows , Linux , OpenBSD , NetBSD и FreeBSD . Этот проект, похоже, не поддерживается активно. По состоянию на июнь 2016 г. [update], последнее изменение в GitHub репозитории исходного кода произошло в декабре 2008 года. [6]
Отладчик под названием BugChecker — это 32-разрядный однохостовый отладчик ядра для Windows 2000 и XP, разработанный и доступный как открытый исходный код для образовательных целей. BugChecker позволяет пользователям отслеживать как пользовательский код, так и код ядра как в однопроцессорных, так и в многопроцессорных версиях Windows 2000 и XP. [7]
Современный преемник SoftICE под названием BugChecker (не имеющий отношения к упомянутому выше) был выпущен Вито Плантамурой в 2023 году. В отличие от других локальных отладчиков ядра, он поддерживает как 32-битные, так и 64-битные версии от Windows XP до Windows 11. Для этого отладчик имитирует машину как отлаживаемую второй системой, перехватывая последовательную кабельную связь, а затем отображает ее изображение непосредственно в кадровом буфере . Этот метод значительно улучшает стабильность и совместимость по сравнению с предыдущими подходами, включая сам SoftICE. [8]
Многие гипервизоры позволяют отлаживать ядро, работающее на виртуальной машине , предоставляя некоторый интерфейс отладчика, который может напрямую управлять виртуализированным процессором. Это позволяет выполнять отладку, даже если ядро не имеет встроенных средств отладки.
Ссылки
[ редактировать ]- ^ «Примечания к выпуску NuMega SoftICE 4.05» . Архивировано из оригинала 01 января 2018 г. Проверено 4 июня 2012 г.
- ^ «Категория: Расширения SoftICE — Совместная библиотека инструментов RCE» . Вудманн.com. Архивировано из оригинала 31 июля 2014 г. Проверено 24 апреля 2014 г.
- ^ «Награды BYTE» . БАЙТ . Январь 1989 г. с. 327.
- ^ «RR0D/Презентация» . Wiki.droids-corp.org. Архивировано из оригинала 24 апреля 2014 г. Проверено 24 апреля 2014 г.
- ^ «Отладчик Rasta Ring 0 (RR0D) — совместная библиотека инструментов RCE» . Вудманн.com. 18 октября 2007 г. Архивировано из оригинала 4 марта 2016 г. Проверено 24 апреля 2014 г.
- ^ Джо. "ice799/rr0d" . Гитхаб.com. Архивировано из оригинала 22 декабря 2018 г. Проверено 5 июня 2016 г.
- ^ «Багчекер» . БагЧекер. Архивировано из оригинала 29 октября 2011 г. Проверено 24 апреля 2014 г.
- ^ «Багчекер» . Гитхаб.com . Проверено 28 апреля 2024 г.
Внешние ссылки
[ редактировать ]- Коллекция расширений SoftICE
- Пьетрек, Мэтт (11 апреля 2006 г.). «Подробнее о SoftIce от одного из его родителей» . Архивировано из оригинала 10 октября 2017 г. Проверено 10 октября 2017 г.
- Использование Visual SoftICE Release 1.3.0 для Windows NT/Windows 2000/Windows XP (PDF) . Корпорация Компьювер . 19 мая 2003 г. Док. 11581. Архивировано (PDF) из оригинала 9 октября 2017 г. Проверено 9 октября 2017 г.
- Официальная документация SoftICE от NuMega