Эх,
когда то юзал этот дебагер.
Не скажу зачем
Потом дорога пошла в другом направлении и забыл.
Но было весело.
Разработана для управления процессами на низком уровне Windows, причём таким образом, чтобы операционная система не распознавала работу отладчика. В отличие от прикладного отладчика, SoftICE способен приостановить все операции в Windows, что очень важно для отладки драйверов.
Сейчас с учетом объёма кода и кучи интерпретируемого кода,
уже сомнительна его полезность.
Но просто для само развития:
Есть современные аналоги?
И да, в мире linux есть современные аналоги?
Здравствуйте, opfor, Вы писали:
O>Здравствуйте, wl., Вы писали:
wl.>>Ghidra. от NSA wl.>>https://hexrays.su/ida92/ida92.torrent — вот там можно скачать
O>вы бы погуглили отличие дизассемблера от дебаггера...
opfor, ну куда ты лезешь со своими никчемными советами и Гидра,и IDA идут в комплекте со своими отладчиками. Ну изучи матчасть
Здравствуйте, yoyozhik, Вы писали:
Y>Есть современные аналоги?
Нет, и не планируется. SoftICE был придуман "от бедности", когда дополнительный компьютер считался роскошью, а с ограниченными возможностями отладки соглашались мириться. Уже в начале 2000-х нормой стала удаленная отладка — сперва по UART, потом по FireWire/Ethernet, потом еще и по USB. Виртуальные машины так и вовсе удобно отлаживать — хоть с хоста, хоть из другой VM.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Нет, и не планируется. SoftICE был придуман "от бедности", когда дополнительный компьютер считался роскошью, а с ограниченными возможностями отладки соглашались мириться. Уже в начале 2000-х нормой стала удаленная отладка — сперва по UART, потом по FireWire/Ethernet, потом еще и по USB. Виртуальные машины так и вовсе удобно отлаживать — хоть с хоста, хоть из другой VM.
Здравствуйте, yoyozhik, Вы писали:
Y>Есть современные аналоги?
Да, есть. Сыроватые, правда. Например, HyperDbg.
Как уже отметил Евгений, то можно отлаживать и через VM + WinDbg. В IDA были заявления по поводу поддержки ядреной отладки, но в рабочем виде я никогда таковой не видел.
Y>И да, в мире linux есть современные аналоги?
Для юзермода я использовал IDA+Remote. Вполне себе работало. А вот для ядра я аналогов не знаю.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, пассажир, Вы писали:
П>>прям в режиме ядра?
ЕМ>Что именно "прям"?
это значит что отладчик работает на голом железе до загрузки ОС и может отлаживать ОС в режиме ядра
обычным отладчиком вглубину можно отлаживать только до системного вызова ОС
Здравствуйте, pva, Вы писали:
pva>Сыроватые, правда.
У них нет шансов выйти из разряда сыроватых, ибо это все чисто любительские поделки.
pva>можно отлаживать и через VM + WinDbg.
Это единственно правильный технически способ отладки ядерного кода. Все остальное — костыли и полумеры, в том числе SoftICE.
pva>В IDA были заявления по поводу поддержки ядреной отладки, но в рабочем виде я никогда таковой не видел.
И не надо, ибо незачем и неудобно, а старый/подержанный компьютер/ноутбук стоит копейки.
Здравствуйте, пассажир, Вы писали:
П>отладчик работает на голом железе до загрузки ОС и может отлаживать ОС в режиме ядра
Второе верно, первое — нет. Отладочный модуль ядра в винде (kdXXX.dll) загружается на раннем этапе загрузки системы, так что самые первые этапы загрузки он отлаживать не может, для этого применяются специальные аппаратные модули, подключаемые к системной плате. SoftICE вроде бы умел отлаживать загрузку Win9x, поскольку она грузилась из-под DOS, а вот загрузку NT, насколько я знаю, он отлаживать не умел (да и не надо это никому, кроме разработчиков NT и малвари под нее).
Здравствуйте, Евгений Музыченко, Вы писали:
pva>>Сыроватые, правда. ЕМ>У них нет шансов выйти из разряда сыроватых, ибо это все чисто любительские поделки.
Оно работает и поддается кастомизации. Этого достаточно.
pva>>можно отлаживать и через VM + WinDbg. ЕМ>Это единственно правильный технически способ отладки ядерного кода. Все остальное — костыли и полумеры, в том числе SoftICE.
Евгений, оставь свой снобизм. Можно, конечно, везде использовать молоток, но зачем? Некоторая малварь использует специальную антиотладку, которая блокирует возможность предлагаемого тобой "единственно правильного".
pva>>В IDA были заявления по поводу поддержки ядреной отладки, но в рабочем виде я никогда таковой не видел. ЕМ>И не надо, ибо незачем и неудобно, а старый/подержанный компьютер/ноутбук стоит копейки.
Тебе неудобно. IDA по юзабилити один из лучших инструментов как для статического анализа, так и для отладки (если нет доступа к исходникам). В том числе мультиплатформенной.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Второе верно, первое — нет. Отладочный модуль ядра в винде (kdXXX.dll) загружается на раннем этапе загрузки системы, так что самые первые этапы загрузки он отлаживать не может,
Здравствуйте, pva, Вы писали:
pva>Некоторая малварь использует специальную антиотладку, которая блокирует возможность предлагаемого тобой "единственно правильного".
Такая малварь без труда заблокирует и любой отладчик-надстройку (и SoftICE не был исключением). Если не блокирует — это всего лишь везение. Для таких случаев единственно правильный вариант — аппаратный отладчик. Все остальное — баловство и лотерея по определению.
pva>IDA по юзабилити один из лучших инструментов как для статического анализа, так и для отладки
Именно поэтому IDA, по понятным причинам, никогда не будет работать так же, как SoftICE, а исключительно через модуль удаленной отладки, и один из возможных интерфейсов.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Нет, и не планируется. SoftICE был придуман "от бедности", когда дополнительный компьютер считался роскошью, а с ограниченными возможностями отладки соглашались мириться. Уже в начале 2000-х нормой стала удаленная отладка — сперва по UART, потом по FireWire/Ethernet, потом еще и по USB. Виртуальные машины так и вовсе удобно отлаживать — хоть с хоста, хоть из другой VM.
кстати, а насколько в таком режиме удобно (и вообще возможно?) отлаживать юзермодные процессы? Там можно шагать по запущенному юзермодному потоку так, чтоб те не догадались об отладке?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, wl., Вы писали:
wl.>>куда ты лезешь со своими никчемными советами
ЕМ>К сожалению, как раз Ваши советы в данной теме совершенно никчемны, ибо Вы абсолютно не понимаете, в чем состоит уникальность SoftICE.
не понял, отлаживать виртуальную машину с виндой можно уже давно, и инструменты те же самые
Здравствуйте, opfor, Вы писали:
O>насколько в таком режиме удобно (и вообще возможно?) отлаживать юзермодные процессы?
Возможно (такому отладчику без разницы, какой код отлаживать), но чертовски неудобно. В режиме прерывания он не сможет загрузить символьную информацию (нужно озаботиться этим заранее), не даст открыть страницу в интернете или локальный файл (например, с документацией), запустить параллельный процесс и т.п.
Поэтому такие отладчики востребованы исключительно на безрыбье.
Здравствуйте, wl., Вы писали:
wl.>отлаживать виртуальную машину с виндой можно уже давно
Что значит "давно"? Ее всегда можно было отлаживать, с момента появления первого полноценного виртуализатора (вроде как VirtualPC).
wl.>инструменты те же самые
Чем, по-Вашему, "те же самые инструменты" отличаются от SoftICE?