Звездный отряд

крис касперски ака мыщъх

Хакер, номер #080, стр. 080-062-1

Принцип работы, узкие места и методы взлома StarForce

На Землю надвигается Тьма. Звездная Сила наступает по всем направлениям и грозит лишить скромного заработка российских пиратов: все больше и больше производителей компьютерных игр защищают свои новики силой звезд. StarForce сводит с ума тамбовских пиратов: они начинают биться головой о кафельный пол своих лабораторий, пить метиловый спирт, подавать петиции о защите их прав и организовывать профсоюзы. Однако не все так уж плохо, приятель. Сегодня мы научимся бороться со звездами и разберемся с тем, как же взламывается легендарная защита.

[что такое StarForce?]

StarForce — это технология, предназначенная для защиты CD от копирования, основная идея которой заключается в привязке к физической структуре спиральной дорожки и использовании целого набора низкоуровневых противохакерских средств. Вместо тупой проверки по схеме «свой — чужой» (которая элементарно отламывается заменой одного jmp'а), топологические характеристики диска преобразуется в число, используемое для расшифровки основного тела программы, причем специальные защитные компоненты следят за тем, чтобы после расшифровки никто не снял дамп.

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

[как это работает]

Привязка к диску основана на измерении угла между секторами. Похожая техника использовалась еще во времена 8-битных компьютеров и дискет. Аналогичным образом работают CD-Cops, SecureROM и многие другие защитные механизмы, так что назвать идею разработчиков sf «революционной» очень трудно. Но это не помешало разработчикам запатентовать ее или, по крайней мере, объявить, что она запатентована. Впрочем, не будем углубляться в юридические дебри, а лучше перейдем к техническим деталям.

Спиральная дорожка лазерных дисков очень похожа на грампластинку, только начинается не снаружи, а изнутри, то есть наматывается от центра к краю. Лазерная головка, удерживаемая в магнитном поле (примерно так же как удерживается звуковая катушка в акустических системах) движется на салазках поперек спиральной дорожки. Сама дорожка состоит из секторов с данными и каналов подкода. Номера секторов находятся как в заголовках самих секторов, так и в каналах подкода, "размазанных" вдоль спиральной дорожки. Для грубой наводки на требуемый сектор используются салазки и каналы подкода, а для точной — отклонение в магнитном поле и секторные заголовки.

Просто взять и измерить структуру спиральной дорожки нельзя, но можно сделать вот что. Допустим, головка считывает сектор X, а следом за ним сектор Y. Если угол XOY, образованный центром (O) диска и секторами X, Y составляет ~15 град, а сами сектора расположены в соседних витках спиральной дорожки, то приводу будет достаточно всего лишь немного отклонить головку и через мгновение сектор Y сам упадет в его руки, как перезревшее яблоко — диск ведь вращается! Если же угол составляет менее 15 град, тогда за время перемещения головки, сектор Y уже «уплывет» и приводу придется ждать целый оборот лазерного диска.

Содержание  Вперед на стр. 080-062-2
ttfb: 122.91598320007 ms