Удаленная отладка с помощью SoftICE

wrong turn isaidub new

Юрий "yurembo" Язев

независимый игродел

Wrong Turn Isaidub New -

Near the edge of the fairground, someone had painted a small mural: a winding road that looped, crossed itself, and then opened into a field of doors. Each door was a different color and had a label: Regret, Repair, Return, Rewrite, Rest. Beneath the mural, someone had added one more word in small, careful letters: Wrong turn: isaidub new.

Night arrived unceremoniously, and the fairground lights blinked on as if someone had finally noticed it was evening. The group dispersed along different tracks: some returned to the highway with a lighter chest; others stayed to make new maps of the periphery. Mara realized she didn't have directions back to the interstate—only the image of the willow, the sink of the river and the crooked fence. She walked the way the town had sent her and found, improbably, her car where she'd left it, engine warm as if it had been waiting.

A child—maybe twelve, maybe ageless—sat on a rusted ride and twirled a coin. Her eyes were too sharp for her age. "It's a way to make a wrong turn honest," she said. "You admit the wrong, you name the detour, then you find out whether you want to keep walking that direction." wrong turn isaidub new

A bell chimed as she pushed into the cafe. The patrons glanced up and then back down, as if interrupted by a courtesy rather than a stranger. The barista slid a coffee across the counter and pronounced the price as if she were sealing a small compact with a secret: "Fifteen for the cup, five for the story." Mara touched the paper money she no longer trusted and asked what the story was.

"Not a thing you can hold," Mara answered. "But I found that wrong turns are part of the road, not the end of it." Near the edge of the fairground, someone had

"Sometimes," said the man with the thin hair. "Other times it's a sentence you say when you can't find any other way to ask for mercy."

On a bench beneath the willow, Mara met the child with the sharp eyes again. She offered a coin and the child accepted it with a gravity that made the exchange feel like a treaty. "Did you find anything?" the child asked. She walked the way the town had sent

The road snapped off the interstate like a thought abandoning its sentence: narrow, cracked, and suspiciously warm in the late-afternoon heat. Mara's rental hummed as she took the turn, GPS recalculating in a voice she no longer trusted. Her destination pin flickered some miles back, swallowed by a maze of unnamed lanes. A banner of thought unfurled in her mind—wrong turn—and then a second, stranger phrase: isaidub new. It arrived like a memory misfiled, a sequence of sounds that might be a password, a place, or a reprimand.

Mara listened and then, as was expected and unexpected at once, she told her own wrong turn: the safe choice she had made at twenty-six that sealed her next decade into a neat box. The act of saying it aloud felt like setting a name to a knot. When she finished there was no thunderbolt, no miraculous unmaking. But a pocket of the sky above the fairground cleared, as if permission had been granted to believe in possibility again.

There was a town ahead—not on any map she'd studied, not on the app still stuttering on her phone. The main street was a ribbon of asphalt flanked by storefronts that looked as if they’d been last redecorated in a decade she couldn't place. A cafe with mismatched chairs. A pawnshop window crowded with objects that winked at her with intimate histories. The past exhaled here in puffs of dust.

Trees swallowed her and then spat her out into a glade where an abandoned fairground crouched under vines. Rides stood like time-stiffened sea creatures; a carousel horse wore a crown of rust. A sign near the entrance read isaidub new in letters once bright and now collapsing inward. Beneath the banner someone had scratched, in a hand that trembled as if from laughter or cold, the words: Take the wrong turn and say it aloud.

  • с помощью null-модемного кабеля;
  • с помощью Dial-up модема;
  • через сетевые платы;

Второй способ сразу же отметается: зачем использовать старые 56-ти килобитные модемы для подключения двух компьютеров? Скорости для пересылки отладочных данных вполне достаточно, однако неудобство использования такой связи на лицо. Этот способ подходит для отладки на удаленном в пространстве компьютере, да и то, модемная связь уже давно канула в лету.
Третий способ вполне хорошо: можно отлаживать программу на находящемся рядом компе, подключенном к локальной сети. Но в таком случае надо установить дополнительные драйвера, предназначенные для SoftICE. Последний поддерживает ограниченное число сетевых плат. К тому же, поскольку драйвера выполняются на 0-й уровне, их установка - это дополнительная дыра в безопасности. В Minix драйвера работаю в пользовательском режиме, и ему норм, правда, все тормозит не по-детски. Но это тема отдельного разговора, относящегося даже не столько к кодокопанию, сколько к проектированию и реализации операционных систем.
Я выбираю первый способ, потому что при его использовании не надо ничего доустанавливать, а скорости вполне достаточно. На современных компах нет COM-портов. Но мы же используем старые машинки, а на них они есть 100%.
Для исследования и удаленной отладки программного обеспечения я использую 2 машинки:

  • хостовая машина на базе процессора Athlon XP 1800 Mhz
  • целевая машина на базе Pentium 4 2800 Mhz

Оба представляют истинные 32-х разрядные процессоры.
На целевом компьютере запускается подопытное приложение, игра, драйвер, etc. Он выступает в роли загона, колбы с химикатами, лаборатории, аэродинамической трубы для обката новых крыльев. На нем, в моем случае, установлена Windows 2000 SP4. Кстати, девушки - хакеры от нее в восторге. Но, как говорится, сложней найти такую девушку, чем соблазнить ее. Хостовая машинка выступает в роли неинтеллектуального терминала, который посылает команды и принимает текстовый вывод от целевой части Айса, отлаживающей приложение на удаленном компе. На ней у меня установлена Windows XP SP3. Внимание: целевая часть Айса намертво завешивает последнюю, поскольку SP3 не поддерживается, однако хостовая часть работает норм, поскольку не лезет в дебри операционной системы, а только предоставляет управление удаленной отладкой.
После подключения null-модемного кабеля к обоим компам надо проверить соединение. Это можно сделать с помощью любого COM-сниффера. Его так же можно написать самому, но, чтобы не тратить время скачаем первый попавшийся.
Я скачал 14-ти дневную демо-версию Serial Port Monitor от Eltima Software. Для проверки этого срока мне хватит. Устанавливаем, запускаем. Внимание, приложение не работает под Windows 2000. Создадим новую сессию. Появится окошко New Monitoring Session. В нем надо выбрать порт, который хотим мониторить, способ отображения данных и то, какие данные мы хотим видеть. Стоп! У нас же на машине один порт. А в списке их 2: COM1 и COM3. Какой-то из них наверняка виртуальный, создан Айсом для своих нужд. С помощью сниффера проверим их оба. После выбора порта отметим способ отображения данных: Dump view. Остальные параметры оставим по умолчанию - Start Monitoring.

Mobirise

Откроется окно Dump view. Ниже него будет присутствовать панель для отправки данных. В ниспадающем списке Port выбираем соответствующий порт. Лучше оставить по умолчанию, так как идет прослушка того порта, который был выбран при создании сессии. В списке Baudrate задается скорость передачи в бодах. Рекомендуется выбрать: 57600. Остальные настройки можно оставить без изменений. Для открытия порта жмем кнопку Open. В активирующееся ниже поле ввода введем любое значение и нажмем кнопку Send справа. Содержимое строки будет отправлено. В списке выше отобразится время отправки данных и само отправленное значение. В случае, если порт виртуальный, тогда в этот же момент добавится строка о прочитанных тех же самых данных.

Mobirise

Таким образом, мы можем проверить соединение, отправку и получение данных между двумя компьютерами.
После того, как соединение будет установлено, можно переходить к настройке Айса. Для этого запускаем SoftICE Symbol Loader, в нем открываем меню настроек: Edit -> SoftICE Initialization Settings…

Mobirise

В ниспадающем списке Serial Connection выбираем порт, к которому подключен кабель (мы протестировали его с помощью сниффера), из списка Serial Connection Speed выбираем скорость: 57600. На целевой системе вдобавок поставим флажок Auto Connect (via null modem). После этого надо перезагрузить целевую систему. После чего не забыть, запустить Айс.
Затем на хостовом компьютере из домашней директории SoftICE запустим утилиту siremote со следующими параметрами:
> siremote com1 57600
Заместо com1 должен стоять открытый порт, через который идет соединение.
Если все настройки произведенены верно, на хостовой машине всплывет текстовое окно Айса, и, о чудо, можно переключаться на другие приложения, свободно бегает мышь и клава пишет в любое окно. При этом целевая машина будет заморожена, равно как и должно быть под влиянием Айса.

Mobirise

“Разморозить” целевую систему можно, как с хостовой, так и целевой, нажав Ctrl+D. Теперь, можешь отлаживать любое приложение, в том числе, игры, на целевой машине, отдавая команды с хостовой.

© 2016 - 2026 yurembo

wrong turn isaidub new

AI Website Builder