Часто задаваемые вопросы по отладчику Soft-Ice.
Версия 1.01 9.12.1998 (с) Andy Malyshev,
2:5020/904.2, 2:5020/362.55, andy_m@iname.com
Q: Расскажите вкратце что такое Soft-Ice, и как его можно использовать для
взлома программ ?
А: Soft-Ice - самый мощный на данный момент отладчик программного кода. Он
позволяет смотреть программный код в процессе его исполнения, анализировать
значения регистров, снимать дамп памяти. Для взлома программ это лучший
инструмент на этапе анализа кода и поиска нужного фрагмента.
Q: Какая последняя версия Soft-Ice и какие у нее возможности ?
А: Это все можно прочитать на сайте производителя Soft-Ice фирмы Numega. URL
сайта http://www.numega.com.
Q: Где можно взять Soft-Ice ?
А: Soft-Ice коммерческий продукт, поэтому свободно найти его невозможно. Стоит
посмотреть на варезных сайтах, на ББС и так далее. Я знаю несколько URL,
где лежит Soft-Ice, но публиковать их в FAQ нет смысла.
Q: Я устанавливаю Soft-Ice 3.2 for Windows NT, а он мне заявляет, что моя
операционка не Windows NT. Что мне делать ?
А: Hайти некривой дистрибутив Soft-Ice. Hа варезных сайтах одно время ходил
дистрибутив, который не устанавливался под HТ.
Q: А где бы мне найти документацию по Soft-Ice, да на русском ?
А: Если ты настолько плохо знаешь английский язык, что не можешь прочитать
документацию - следует сначала его выучить, а потом уже браться за изучение
сложных программных продуктов. Это относится не только к Soft-Ice. А
документация на английском языке вполне доступна из тех же источников, что
и сам Soft-Ice. Состоит она из двух книг: Soft-Ice Users Guide и Soft-Ice
Command Reference. Очень рекомендуется прочитать обе книги перед тем как
задавать вопросы. Документация занимает около 3 мегабайт, поэтому
бессмысленно требовать выслать ее "мылом" и тем более опубликовать в эхе.
Документация по Soft-Ice в формате PDF доступна на ftp.numega.com.
А вообще я бы рассмотрел коммерческое предложение по переводу на русский
язык документации по Soft-Ice :)
Q: Как изменить размер шрифта в Soft-Ice 3.22 и выше ?
А: RTFM. Это делается командой set font x, где х - размер требуемого шрифта.
Q: Я делаю bpx GetSystemTime, а он мне выдает ошибку. Что делать ?
А: Представить себя на месте Soft-Ice. Серьезно. Если бы тебе сказали
bpx GetSystemTime - что бы ты ответил ? Hе знает он такой функции. Чтобы он
ее узнал, нужно загрузить модуль, который ее экспортирует. Делается это в
файле winice.dat командой EXP=. Рекомендуется раскомментировать все строки
'EXP=', чтобы получить доступ к большинству функций WinAPI. Если сказанное
не очень понятно - рекомендуется прочитать любую книжку по программированию
под Windows.
Q: Как в Soft-Ice сделать лог обращений к портам или ячейкам памяти ?
А: Использовать конструкцию bpm[io] {...} do "{...}".
Hапример, если надо мониторить ячейку памяти с адресом ds:567fff, то
это будет иметь вид:
bpm ds:567fff do "d ds:567fff L 4"
Далее лог можно сбросить либо утилитой dlog, либо командой из Loader'а.
Q: Имеется функция FileOpen, нужно отследить момент, когда она открывает файл
с именем 'abcd.ext'. Как это сделать ?
А: Воспользоваться брейкпойнтом по условию, т.е. конструкцией вида:
bpx {...} if {...}
Если указатель на имя файла передается через стек последним параметром, то
это будет иметь вид:
bpx FileOpen if **(ss:esp+4) == 'abcd'
Значение, передаваемое Soft-Ice по умолчанию имеет тип DWORD, поэтому надо
указывать 4 символа. Можно переопределить тип, например:
bpx FileOpen if BYTE(**(ss:esp+4)) == 'a'
Если надо больше символов, можно например написать:
bpx FileOpen if ((**(ss:esp+4) == 'abcd') && (*(*(ss:esp+4)+4) == 'efgh')
Если смысл вышеприведенных выражений непонятен - изучаем C/C++, пока не
станет понятно.
Q: Как в Soft-Ice загрузить имена функций и переменных из IDA ?
A: IDA может экспортировать отладочную информацию в формате .MAP. Для
преобразования формата в .SYM, который понимает Soft-Ice существует утилита
IDASYM. Загрузить ее можно с моей страницы.
Этот FAQ доступен на WWW по адресам:
http://i.am/crk
http://www.corbina.ru/~malyshev/prot
http://andy.softclub.net
Дополнения и исправления принимаются нетмейлом и Е-Мейлом.
|