· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Альтернатива SoftIce

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Ноя 27, 2003 03:54:16

Нужен отладчик уровня ядра, по типу SoftIce, качество отображения структур, API, объектов не важно, главное - чтобы его нельзя было обнаружить другими программами. Или предложите вариант как скрыть SoftIce от других программ, например от StarForce 3. Да еще, поделитесь своим арсеналом, какие утилиты в используете.
С уважением PROFi.


Дата: Ноя 27, 2003 05:00:08

дык iceext разве не спасает


Дата: Ноя 27, 2003 05:00:44

Да еще, поделитесь своим арсеналом, какие утилиты в используете

для чего ???


Дата: Ноя 27, 2003 05:12:15 · Поправил: PROFi

angel_aka_ks
Для отладки, для дезасемблирования. Кроме IDA и HIEW конечно. IceExt не спасает.


Дата: Ноя 27, 2003 05:47:50

PROFi

Альтернативы SoftIce нет, а в части скрытия SoftIce нет альтернативы IceExt.


Дата: Ноя 27, 2003 05:59:23

Asterix
Хорошо, тогда почему он омнаруживается StarForce 3.
Если писать драйвер ядра под XP, и не ставить хук
на прерывание IRQ от клавиатуры, так как это делает
последний, то StasForce3 (защита CD) драйвер не обнаруживает.


Дата: Ноя 27, 2003 06:02:38

Если это твоя идея то нужно поговорить со Sten'ом глядишь что-то
да изменится ;-), мне лично Старфорс3 не попадался ещё.


Дата: Ноя 27, 2003 11:39:14

А ты попробуй перехватить первое и третье прерывание как это делает отладчик и StarForce не сможет работать - он на них тоже висит. Соответсно отладчик тут тебе не поможет.


Дата: Ноя 27, 2003 17:47:45

А что поможет? :)


Дата: Ноя 27, 2003 19:24:14

Смотрю я код этого драйвера и все больше не догоняю, как он работает. Кстати, а как айс дружит с префиксами переопределения сегментов? Слетает? Там в коде этого барахла... И еще, Dr.Golova, вот вы говорите, что он цепляет int 1/int 3. КАК? Ведь для этого нужно знать адрес IDT. Как драйвер это находит? А что с DR-регистрами? HIEW в коде не нашел НИ ОДНОЙ mov drx, x, mov x, drx инструкции 8-()


Дата: Ноя 28, 2003 02:36:14

volodya
Работает несколькими потоками, причем на разных уровнях
и на 0, и на 3 одновременно. У меня получилось получить
кусок памяти, который используется для расшифровки после
первого прочтения с защищенного диска, но крайне высокая вероятность, что будет прочитан еще один уже в процессе игры, скажем при переходе из уровня на уровень, и тогда мой подгружаемый кусок памяти (по другому я это никак назвать не могу) будет бесполезен. Если я пытаюсь вклинится в процессе чтения диска, то StarForce тут же выдает ошибку - присутствие отладчика. Да и для подгрузки куска памяти пришлось писать свой драйвер, причем обращение к винту через порты, Почему-то не могу обратится к нему в это время ч\з Native API. Наверное последний тоже блокируется StarForce. Короче говоря проблем много, но пока я играю в Корсаров II, а лицензионного диска у меня нет.


Дата: Ноя 28, 2003 04:04:16

volodya
Ведь для этого нужно знать адрес IDT. Как драйвер это находит?
У меня есть предположение что используется команда SIDT.


Дата: Ноя 28, 2003 17:36:39

Black_mirror

Предположение неверно. НЕТ там sidt. Я на него тоже грешил.

PROFi
А сколько всего файлов ответственно за защиту? Я нашел только драйвер в ресурсах dll. Есть что-то еще?


Дата: Ноя 29, 2003 03:23:38

volodya
Ты похоже решил проверить меня.
Если говорить о Win XP то драйверов как минимум 4. Их легко найти по году выпуска он будет 2003. Названия сейчас не помню, но при загрузке 3 распаковываются одинаково, а один, я так предпологаю он грузится первым, даже не запкован, во всяком случае DriverInit.

Что касается того как я обошел StarForce?

Когда-то еще на компьютере синклер(байт), была такая клавиша которая сбрасывала полный дамп памяти в файл и все текущие рекистры, это использовалось для того чтобы скопировать защищенные игры, которые грузились магнитофона на флоппик.
Суть такова я пишу драйвер, который подсчитывает контрольные суммы каждой физической страницы как в памяти, так и в файле подкачки. Потом запускаю игру, и прерываю ее в момент окончания проверки оригинального CD, для этого кстати я использовал IRQ 6 (да флоппика) поскольку клавиатура и отладочные регистры блокируются? на момент запуска защиты. Опять подсчитываем контрольные суммы для всех страниц, и которые изменились сбрасываем в память, не забыв сохранить все регистры процессора. Ну если ты понял мою мысль, то дальше объяснять не надо.
К сожалению я проделываю все операции на физическом уровне, то есть на уровне CPU и очень мало использую функции Native API (не хватает знаний) и после выхода из игры мой компьютер подвисает, кроме того я запускал игру в оконном режиме, так до сих пор и играю в нем.


Дата: Май 15, 2004 11:51:12

Здравствуйте!
Что касается драйверов prodrv06.sys prohlp02.sys, вернее, того, что там после первой распаковки (четвертая по счету команда от EP), там после нее еще ряд распаковок. А 60h байт из IDT он сохраняет себе. Код обработчика int 3 под разные ОС у него находится в prohlp02. Код затирания dr0,dr1,dr2,dr3,dr7 у него тоже в 3х вариациях, но уже в драйвере prodrv06. В итоге, после второй распаковки (в prodrv06 получается еще ~90 Кб запакованного кода).
Процедура распаковки та же, что и в начале (в IDA эта функция видна по адресу 10260h в обоих драйверах - если база 10000h). Но, что радует, там нет никакой проверки на неповрежденность кода (драйвера, с убранной первой распаковкой, т.е уже распакованные у меня грузятся на ура, причем интересно взглянуть на процедуру инициализации - драйвера хешируют таблицу экспорта ntkernel.vxd - под 9Х, а под ХР - ntoskrnl.exe и hal.dll)
Но это еще не все. В коде после второй распаковки видно активное юзание сервисов NTDLL через int 2E и еще много всякого интересного. (Всякие съемы защиты на запись в регистре cr0 через каждые 20-30 строк). В идеале я сейчас планирую создать новую, полностью распакованную секцию в каждом драйвере, чтобы код оттуда можно было править для своих нужд.

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.049