Softice для windows 10

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Уровень сложностиСредний

Время на прочтение5 мин

Количество просмотров8.3K

На видео выше я записал наглядную реализацию процесса, описанного в разделе «Сборка и установка».

Эта статья посвящена запуску SoftICE, популярного отладчика для DOS и Windows, в эмулированной среде MS-DOS, а также обходу недостатка Bochs, эмулятора IA-32 (x86) PC.
Весь процесс выполнялся из-под Linux. Не знаю, получится ли проделать то же самое в MacOS, не говоря уже о Windows.

Эмуляция SoftICE

Отладчик SoftICE был разработан компанией NuMega в 1987 году и стал самым используемым инструментом для отладки DOS, а позднее и Windows. Последней его версией стала 2.80, которая вышла в 1997 году исключительно для DOS. У того, кто захочет использовать динамическую отладку для реверс-инжиниринга старого ПО сегодня, есть несколько вариантов:

  • DOSBox-X — форк DOSBox, оснащённый отладчиком, имеющим сходство с SoftICE.
  • IDA — хоть и является в первую очередь дизассемблером, также имеет режим отладки; плюс есть плагин dsbxida, используемый в качестве связки между IDA и DOSBox-X при отладке программ DOS.
  • Собственные инструменты, которые можно создать с помощью эмулятора процессора Unicorn. Также есть UniDOS — (пока что ограниченный) эмулятор DOS на базе Unicorn.

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

SoftICE не работает в DOSBox-X. Этот отладчик работает в Bochs, который, в отличие от DOSBox, основан на полной эмуляции x86 процессоров. А в этом случае придётся чуть повозиться с настройкой Bochs, но есть и другая проблема.

Предположим, мы установили MS-DOS и SoftICE в среде Bochs. Запустить SoftICE можно комбинацией Ctrl+d, и всё будет в порядке, если не пытаться проделать это в процессе выполнения программы, использующей VGA-режим – игры, например. В этом случае выполнение приостанавливается, и SoftICE по факту оказывается на первом плане, но мы его не видим из-за некорректного возобновления текстового режима. Окно Bochs просто уменьшается до высоты интерфейса отладчика.

На аппаратном уровне решением будет подключение дополнительного монитора ко второму графическому адаптеру, обеспечивающему вывод с контроллера дисплея MC6845, то есть карты MDA/Hercules. После этого выполнение ALTSCR ON в SoftICE позволит переключить дисплей отладчика на второй монитор.

К сожалению, Bochs не эмулирует ни MDA (Monochrome Display Adapter), ни второй дисплей. Хотя сэмулировать текстовый режим MDA нетрудно, в конечном итоге я так и сделал. Я откопал старую тему на SourceForge, где обсуждали добавление эмуляции MDA в Bochs. Полноценной реализации нигде не приводилось, поэтому я создал форк Bochs с необходимыми изменениями.

Детали реализации можно найти в файле readme репозитория. Самое важное, пожалуй, то, что текстовый экран MDA в самом Bochs не отображается. Он записывается в именованный канал передачи (pipe) в виде кодовых точек формата UTF-8 вместе с управляющими последовательностями ANSI для отрисовки атрибутов символов MC6845. Затем этот канал опрашивается внешней программой, выводящей из него текст в терминал (образец такой программы был добавлен в репозиторий).

На скриншоте ниже в Bochs выполняется игра при одновременном отображении SoftICE в окне терминала:

Сборка и установка

▍ Сборка Bochs

Клонируйте мой форк Bochs и скомпилируйте его с опцией cpu-level-3, то есть под 386-процессор. Подробнее о компиляции Bochs сказано здесь. Вот пример:

$ ./configure --with-sdl2 --enable-cpu-level=3
$ make

Создайте образ жёсткого диска с помощью bximage (часть сборки Bochs). Вполне сойдут предустановленные значения (hd / flat / 512) и размер в 30 МБ. Я назвал его hdd.img.

Нам потребуется файл .bochsrc, который мы инициализируем, запустив Bochs и выбрав 4. Save options to.... Затем мы его отредактируем, внеся следующие изменения (YMMV):

romimage: file="/usr/local/share/bochs/BIOS-bochs-legacy", address=0x00000000, options=fastboot
floppya: 1_44=dos622_d1.img, status=inserted
ata0-master: type=disk, mode=flat, path=hdd.img
#port_e9_hack_all_rings: enabled=0

Мне пришлось закомментировать port_e9_hack_all_rings, потому что иначе Bochs выбрасывал ошибку. dos622_d1.img – это первый из установочных дисков MS-DOS 6.22. Все диски вы найдёте в разделе «Загрузки» ниже.

▍ Установка DOS

В других версиях Bochs есть один неприятный момент – после выбора 6. Begin simulation Bochs переходит сразу к отладчику, требуя ввода c <newline> для продолжения выполнения. Чтобы это исправить, нужно создать файл (здесь я его назвал bochs_init), содержащий c и перевод строки, и передавать его в виде аргумента опции -rc. Также можно пропустить стартовое меню, передав -q. Объединяя эти два момента, следующая команда обеспечит быстрый запуск Bochs:

$ bochs -q -rc bochs_init

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

Запустите Bochs и перейдите к установке MS-DOS. Когда система запросит очередной диск, кликните CONFIG и измените файл образа для Floppy disk 0. После завершения установки измените опцию boot в .bochsrc с floppy на disk. При очередном запуске Bochs он должен загрузиться сразу в DOS.

▍ Установка драйвера CD-ROM

Далее снова используйте bximage, но теперь для создания образа дискеты (опции: fd / 1.44M). Я назову его floppy.img. Вставьте этот диск в Bochs (CONFIG / 1. Floppy disk 0) и отформатируйте командой format a: в DOS. Также можно изменить в .bochsrc опцию floppya, чтобы этот образ использовался по умолчанию. После форматирования мы монтируем его в хост-систему и копируем oakcdrom.sys, драйвер Oak CD-ROM (тоже лежит в разделе «Загрузки»):

$ sudo mount floppy.img /mnt/tmp
$ sudo cp oakcdrom.sys /mnt/tmp
$ sudo umount /mnt/tmp

Устанавливаем драйвер в DOS.

C:\> copy a:\oakcdrom.sys c:\dosC:\> edit config.sys

Добавьте в CONFIG.SYS эту строку:

DEVICEHIGH=C:\DOS\OAKCDROM.SYS /D:MSCD001

А в AUTOEXEC.BAT эту:

LH C:\DOS\MSCDEX.EXE /D:MSCD001

▍ Установка SoftICE

Теперь, когда мы можем использовать CD-образ, давайте создадим его в хост-системе. Предполагая, что файлы SoftICE 2.80 (лежат в S-ICE280.ZIP внутри sice280_and_extras.zip в разделе «Загрузки») находятся в каталоге sice, эта команда создаст из него образ ISO:

$ mkisofs -o cdrom.iso -V CDROM sice

Для вставки CD измените опцию ata1-master в .bochsrc:

ata1-master: type=cdrom, path=cdrom.iso, status=inserted

После очередной загрузки DOS можно продолжать установку SoftICE.

C:\> mkdir sice
C:\> xcopy /e/s d: c:\sice

В файле AUTOEXEC.BAT добавьте C:\SICE к переменной пути PATH. Обратите внимание, в DOS, в отличие от Bash, в качестве разделителя в путях используется точка с запятой:

SET PATH=%PATH%;C:\SICE

В CONFIG.SYS пропишите загрузку SoftICE до всех остальных драйверов:

DEVICE=C:\SICE\S_ICE.EXE

На этом всё. После перезагрузки вы сможете вызывать SoftICE нажатием Ctrl+d.

Отображение SoftICE через MDA

Для получения возможности отладки игр и аналогичных графических программ осталось проделать один шаг. Эмуляция MDA в моём форке Bochs активируется, когда Bochs находит переменную среды MDA_PIPE, содержащую путь к именованному каналу передачи. Создайте этот канал в хост-системе:

$ mkfifo /tmp/mda_pipe

Обратите внимание, что после включения MDA при отсутствии работающей программы, использующей канал передачи, выполнение будет заблокировано. Поэтому далее мы такую программу запустим – это будет образец mda_viewer из репозитория.

$ cd ~/bochs-dual-monitor/mda_viewer/
$ MDA_PIPE=/tmp/mda_pipe python .

Запустите Bochs, дополнительно указав MDA_PIPE:

$ MDA_PIPE=/tmp/mda_pipe ~/bochs-dual-monitor/bochs/bochs -q

Подтверждение того, что MDA запущен, можно найти в выводе Bochs в виде следующей строки:

[MDA] Using named pipe "/tmp/mda_pipe".

Запустите игру или иную программу, использующую режим VGA. Нажмите Ctrl+d. Графический дисплей исчезнет. Но с уверенностью, что SoftICE сейчас находится на переднем плане (и с выбранным окном Bochs), введите следующую команду SoftICE:

altscr on

Графический дисплей возвращается, и окно терминала, где выполняется mda_viewer, теперь показывает SoftICE. Потребуется привыкнуть набирать команды не в окне терминала, а в окне Bochs. Зато теперь с помощью этой конфигурации можно реверс-инженерить программы DOS так, будто вы снова в 1990 году.

Загрузки

Всё это ПО давно не поддерживается, так как самое молодое датируется 1997 годом.

MS-DOS 6.22 ↪
SoftICE 2.80 and extras ↪
OAKCDROM.SYS ↪

Скидки, итоги розыгрышей и новости о спутнике RUVDS — в нашем Telegram-канале 🚀

Ask the publishers to restore access to 500,000+ books.

Internet Archive Audio

Live Music Archive

Librivox Free Audio

Featured

  • All Audio
  • Grateful Dead
  • Netlabels
  • Old Time Radio
  • 78 RPMs and Cylinder Recordings

Top

  • Audio Books & Poetry
  • Computers, Technology and Science
  • Music, Arts & Culture
  • News & Public Affairs
  • Spirituality & Religion
  • Podcasts
  • Radio News Archive

Images

Metropolitan Museum

Cleveland Museum of Art

Featured

  • All Images
  • Flickr Commons
  • Occupy Wall Street Flickr
  • Cover Art
  • USGS Maps

Top

  • NASA Images
  • Solar System Collection
  • Ames Research Center

Software

Internet Arcade

Console Living Room

Featured

  • All Software
  • Old School Emulation
  • MS-DOS Games
  • Historical Software
  • Classic PC Games
  • Software Library

Top

  • Kodi Archive and Support File
  • Vintage Software
  • APK
  • MS-DOS
  • CD-ROM Software
  • CD-ROM Software Library
  • Software Sites
  • Tucows Software Library
  • Shareware CD-ROMs
  • Software Capsules Compilation
  • CD-ROM Images
  • ZX Spectrum
  • DOOM Level CD

Texts

Open Library

American Libraries

Featured

  • All Texts
  • Smithsonian Libraries
  • FEDLINK (US)
  • Genealogy
  • Lincoln Collection

Top

  • American Libraries
  • Canadian Libraries
  • Universal Library
  • Project Gutenberg
  • Children’s Library
  • Biodiversity Heritage Library
  • Books by Language
  • Additional Collections

Video

TV News

Understanding 9/11

Featured

  • All Video
  • Prelinger Archives
  • Democracy Now!
  • Occupy Wall Street
  • TV NSA Clip Library

Top

  • Animation & Cartoons
  • Arts & Music
  • Computers & Technology
  • Cultural & Academic Films
  • Ephemeral Films
  • Movies
  • News & Public Affairs
  • Spirituality & Religion
  • Sports Videos
  • Television
  • Videogame Videos
  • Vlogs
  • Youth Media

Search the history of over 928 billion
web pages
on the Internet.

Search the Wayback Machine

Search icon
An illustration of a magnifying glass.

Mobile Apps

  • Wayback Machine (iOS)
  • Wayback Machine (Android)

Browser Extensions

  • Chrome
  • Firefox
  • Safari
  • Edge

Archive-It Subscription

  • Explore the Collections
  • Learn More
  • Build Collections

Save Page Now

Capture a web page as it appears now for use as a trusted citation in the future.

Please enter a valid web address

  • About
  • Blog
  • Projects
  • Help
  • Donate
  • Contact
  • Jobs
  • Volunteer
  • People

  • About
  • Blog
  • Projects
  • Help
  • Donate

    Donate icon
    An illustration of a heart shape

  • Contact
  • Jobs
  • Volunteer
  • People

Item Preview

item image #1

NuMega_SoftIce_Windows_3.2_2.jpg

Flag this item for

  • Graphic Violence

  • Explicit Sexual Content

  • Hate Speech

  • Misinformation/Disinformation

  • Marketing/Phishing/Advertising

  • Misleading/Inaccurate/Missing Metadata

software

NuMega SoftIce Windows 3.2 2

Language
English
Item Size
66.1M

NuMega SoftIce Windows 3.2 2

Addeddate
2018-05-01 19:47:26
Identifier
NuMega_SoftIce_Windows_3.2_2
Scanner
Internet Archive Python library 1.7.4

plus-circle Add Review

comment

Reviews

There are no reviews yet. Be the first one to
write a review.

1,700

Views

1
Favorite

DOWNLOAD OPTIONS


download 1 file

TIFF download


download 1 file

TORRENT download

download 8 Files

download 6 Original

SHOW ALL

IN COLLECTIONS

CD-ROM Software Library

CD-ROM Software Collection

The Vintage Software Collection

Uploaded by

CD-ROM Preservation Project

on

SIMILAR ITEMS (based on metadata)

Terms of Service (last updated 12/31/2014)

Распределенное обучение с TensorFlow и Python

AI_Generated 05.05.2025

В машинном обучении размер имеет значение. С ростом сложности моделей и объема данных одиночный процессор или даже мощная видеокарта уже не справляются с задачей обучения за разумное время. Когда. . .

CRUD API на C# и GraphQL

stackOverflow 05.05.2025

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

Распознавание голоса и речи на C#

UnmanagedCoder 05.05.2025

Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .

Реализация своих итераторов в C++

NullReferenced 05.05.2025

Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .

Разработка собственного фреймворка для тестирования в C#

UnmanagedCoder 04.05.2025

C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .

Распределенная трассировка в Java с помощью OpenTelemetry

Javaican 04.05.2025

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

Шаблоны обнаружения сервисов в Kubernetes

Mr. Docker 04.05.2025

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

Создаем SPA на C# и Blazor

stackOverflow 04.05.2025

Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .

Реализация шаблонов проектирования GoF на C++

NullReferenced 04.05.2025

«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .

C# и сети: Сокеты, gRPC и SignalR

UnmanagedCoder 04.05.2025

Сетевые технологии не стоят на месте, а вместе с ними эволюционируют и инструменты разработки. В . NET появилось множество решений — от низкоуровневых сокетов, позволяющих управлять каждым байтом. . .

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Настройка сетевого принтера в windows xp
  • Windows home server wallpaper
  • Как узнать из за чего был синий экран windows 10
  • Как почистить виртуальную память компьютера windows 10
  • До какого времени будет поддерживаться windows 10