Техника защиты компакт-дисков от копирования

Защиты, основанные на "слабых" секторах


"Столкновение" с этими защитами поразило даже меня, видавшего виды хакера. Да как тут было не поразиться! Судите сами — копирование защищенного диска происходит без ошибок, но при проверке копии обнаруживается множество сбойных секторов, которые появляются даже в том случае, если содержимое оригинального диска пофайлово перегнать на винчестер и уже оттуда записать его на болванку CD-R. Что это: неисправность оборудования или результат работы хитрого драйвера, скрыто установленного защитой при первом запуске защищенной программы? Но нет, — все оборудование полностью исправно и никакие драйвера тут не причем, сбойные сектора возникают даже при копировании диска на заведомо "стерильной" машине. Руки, естественно, так же "не кривые" и голова "не дырявая".

Исследование самих копируемых файлов под отладчиком (HEX-редактором, дизассемблером) так же не выявляет ничего необычного и если "отломать" защиту от привязки к CD (при условии, что она там есть), то защищенное приложение будет успешно запускаться с жесткого диска (Zip-накопителя), но вот "закатать" его на болванку, увы, не получится. Правда, если защищенные файлы каким-либо образом "подрихтовать" (например, сжать любым архиватором), то перенос на болванку CD-R пройдет без ошибок, но… ведь это уже совсем не то, верно?

Таким образом, причина столь странного поведения защиты лежит отнюдь не на программном, а физическом уровне. Это самый "крутой" антиотладочный прием, которой мне только доводилось когда-либо встречать! Действительно, с точки зрения хакера, не обремененного сложным измерительным оборудованием, привод CD-ROM представляет собой "черный ящик", работающий приблизительно по такому же принципу, как и любой другой накопитель. Даже если снять с него крышку, мы все равно ничего не увидим кроме переплетений проводов и нагромождений микросхем. Единственное, что остается — вдумчиво перечитывать стандарты. Ведь если защита работает на всех (или хотя бы подавляющем большинстве) моделей приводов CD-ROM, то она должна обязательно опираться на те или иные стандартные свойства/особенности/характеристики!


Вот, допустим: " A regular bit pattern fed into the EFM encoder can cause large values of the Digital Sum Value in case the merging bits cannot reduce this value (see annex E). The scrambler reduces this risk

by converting the bits in byte 12 to 2 351 of a Sector in a prescribed way" ("Регулярные битовые шаблоны, "скормленные" EFM-декодеру могут вызвать большие значения DSV, неустранимые merging-битами. Скремблер сокращает риск этого путем преобразования бит с 12- по 2.351 байт сектора определенным образом")[13]. Если вы все еще продолжаете думать, что диски CD-ROM идеальные носители для хранения исполняемых файлов и баз данных, то вы глубоко заблуждаетесь. Лазерные диски изначально разрабатывались для записи музыки и лишь ценой больших инженерных "извращений" согласились хранить бинарные данные. Обратите внимание на выделенные полужирным шрифтом слова. Скремблер не гарантирует, что записанные данные смогут читаться, он лишь снижает риск образования неблагоприятных (с точки зрения привода) последовательностей до разумного минимума. Тем не менее, если постараться, то вполне можно создать пару файлов, напичканных этими самыми наиболее неблагоприятными последовательностями по самую завязку. Теоретически их можно прочесть, но с этим справятся лишь наиболее качественные модели приводов CD-ROM, а остальные дадут ошибку.

Рассмотрим следующую комбинацию: 04 B9 04 B9 04 B9… Обратившись к таблице EFM-перекодировки найдем, что 04 преобразуется в 01000100000000, а B9 — 10000000001001. Попробуем теперь их записать вместе: 01000100000000 ххх 10000000001001 yyy 01000100000000, где xxx и yyy — merging-биты. Поскольку, 04 содержит в своем "хвосте" восемь нулей, а B9 начинается с единицы, то единственной возможной комбинацией для первой партии merging-бит будет 100. Соответственно, поскольку B9 кончается на единицу, а 04 имеет в своей голове всего один нуль, то единственно подходящей комбинацией для второй партии объединяющих бит окажется 000.


А теперь изобразим это графически и вставим разработчикам CD-ROM хороший "пистон".

Смотрите (см. рис. 9.70х0024)! Значение DSV оказывается резко отрицательным! То есть, попросту говоря, питыpit'ы преобладают над лендамиland'ми и поверхность диска становится темной как "негр". Как следствие —– следящее устройство сбивается с дорожки из-за недостаточного количества света, попадающего в фотоприемник. Самое интересное, что по стандарту такие комбинации битов читаться и не обязаны (хотя некоторые модели приводов с ними все-таки справляются). Вот вам и надежное устройство для хранения данных! В силу природы своих конструктивных особенностей, лазерные диски способны хранить лишь некоторые.



Рис. 9.7. унок 29 0х024 Физическое представление последовательности 04 B9 04 при записи



Конечно, если просто создать файл, битком надбитый "\x04\xB9\x04\xB9…" его запись на болванку CD-R и последующее чтение пройдут без проблем, ведь поток записываемых данных предварительно обрабатывается скремблером! Грамотно выбранный алгоритм скремблирования не должен допускать эффективного обращения, в противном случае злоумышленник может прогнать наиболее неблагоприятные регулярные последовательности через "антискремблер" и тога при повторном скремблировании они запишутся на диск в своем исходном виде. Теперь собственно "пистон". Алгоритм скремблирования, используемый приводами CD-ROM, такое обращение как развполне допускает! Все, что понадобится дляна написания антискремблера —– это пара вечеров свободного времени и сам стандарт ECMA-1320[Y199] [n2k200] . Поскольку, алгоритм скремблирования базируется на функции XOR, то повторное скремблирование уже обработанных скремблером данных, возвращает их в исходный вид. Благодаря этому обстоятельству, мы сможем обойтись и одной функцией —– функцией скремблера.

Прогнав через скремблер защищенные файлы мы с не без удовлетворения обнаружим, что они содержат они по крайней мере одну очень неблагоприятную последовательность, значение DSV которой резко отрицательно (реже —– резко положительно).


В общем, категорически не равно нулю. Дополнив скремблер функцией подсчета DSV (подробности о ее реализации см. в ECMA-1320), мы получим автоматический сканер защит, основанныйх на "слабых" секторах. Wow! Разве не "круто"?! Если внутри защищенных файлов обнаружатся те или иные неблагоприятные последовательности, то можно и не пытаться их копировать на болванку CD-R —– все равно из этой затеи ничего не получится.

Хорошо, но как нам объяснить тот факт, что эти же самые неблагоприятные последовательности успешно читаются с оригинального диска?! Чтобы ответить на этот вопрос, нам придется забраться в самые дебри спиральных дорожек лазерного диска. Труден и опасен будет этот путь! Вас станут отговаривать и предостерегать. Вот, например, цитата из одного реферата неизвестного автора: "…на самом деле все еще интереснее, т. к. в дополнение к секторам определяются секции того же полезного размера, но с несовпадающими границами, причем часть адресов является адресами секторов, а другая —– адресами секций. Но об этом лучше сразу забыть .;)". "Смайлик" (символ с улыбочкой) на конце этих строк очень сильно возбуждает и заставляет перечитывать и перечитывать сухие строчки стандарта (поскольку, ничего более информативного под рукой, увы, нет). Так или иначе (на худой конец обратитесь посетитексм. форуму на сайте http://club.cdfreaks.com) мы выясним, что границы секторов и фреймов могут и не совпадать, —– сектор может начинаться с 0, 4, 8, 12, 16 или 20-го  байта по счету! Изменение стартовой точки неизбежно изменяет и DSV первого фрейма, —– вот тут-то и начинается самое интересное. Если количество бинарных единиц фрейма нечетно, то второй фрейм инвертируется (то есть питыpit'ы и лендыland'ы меняются местами), в противном случае последующий фрейм идет так, как он есть. Благодаря этому становится возможным подобрать такую регулярную последовательность, которая окажется вполне благоприятной для одной из точек входа, и крайне неблагоприятной для всех других.



К сожалению, пишущие приводы"писцы" все еще не позволяют выбирать произвольную точку входа и назначают ее самостоятельно по своему усмотрению. Хорошие пишущие приводыписцы (типа Plextor) выбирают точку входа так, чтобы значение DSV сектора было минимальным по модулю (и потому позволяют копировать защищенные диски без проблем). К сожалению, подавляющее большинство остальных моделей слишком "тупы" и задача минимизации DSV им оказывается "не по зубам". Они либо вовсе не пытаются вычислить правильную точку входа, либо же вычисляют ее неправильно. Как следствие —– при чтении скопированных защищенных дисков возникает ошибка!

Тем не менее, "продвинутые" копировщики (к которым, в частности, относится Clone CD) такие защиты уже давно обошли. Как они ухитряются это делать? Подготовив образ сектора для "нарезки" в "сыром" виде, они слегка уродуют его содержимое, рассыпая тем самым неблагоприятные последовательности "в пух и прах" (искажение одного бита исходных данных вызывает драматические изменение данных после скремблирования!). Корректирующие коды (ранее подготовленные для не изуродованного содержимого сектора) при этом не изменяются. В результате, чтение записанного таким образом сектора дает ошибку и приводу приходится ее исправлять по избыточной информации, содержащейся в корректирующих кодах. После исправления, сектор вновь возвращается в неискаженный вид.

Достоинство такого подхода заключается в том, что копия защищенного диска, содержит ослабленный защитный "организм", свободно дублируемый в "сыром" режиме. Штатное копирование, правда, будет приводить к ошибке, поскольку честные копировщики помещают на диск уже "исправленные" сектора. С другой стороны, копировщики, записывающие сектора "как они есть" оказываются не в состоянии отличить умышленные искажения от простых физических ошибок чтения. Запись неисправленного сектора приведет к увеличению числа ошибок, и при попытке снять копию с копии мы рискуем получить вообще не читаемый дубликат , (что есть большой недостаток!).


Какой из этого выход? Читаем сектор, исправляем его, прогоняем через сканнер и, если в нем обнаружитьсяобнаружится так или иная неблагоприятная последовательность, умышленно изменяем в нем несколько бит. Таким образом, ошибки копирования больше не будут накапливаться!

[1] ATIP (Absolute Time In Pre-Groove) — информация о реальном производителе CD-R/RW носителя, максимальной разрешенной скорости записи и максимальную емкость диска. — Ред.

[2] EDC/ECC (Error Detection Code/Error Correction Code — коды обнаружения и исправления ошибок. — Ред.

[3] Автор имеет в виду Mac OS (Macintosh Operating System) — операционную

систему фирмы Apple Computer для ПК Macintosh — Ред.

[4] в Красной Книге, соответствующей стандарту ECMA-130, данное поле именуются FRAC, а в SCSI Multimedia Commands/ATAPI DVD Devices – Frame, что создает определенные неудобства и терминологическую путаницу.

[5]

см. также техническую заметку Q137247 из MSDN "IOCTL_SCSI_MINIPORT and IOCTL_SCSI_PASS_THROUGH Limitations"

[6]

"Приблизительно" —– потому что на некоторых приводах Ahead Nero Нерон вообще ничего не выдает

[7]

"Древние" приводы были слишком простыми устройствами и на декодирование субканальной информации — — между прочим, размазанной по большой поверхности диска! — им требовалось определенное время, в течении которого оптическая головка успевала отъехать по спиральной дорожке далеко в строну, и потому при попытке позиционирования на начало трека, какое-то количество секторов оказывалось неизбежно пропущенным! Вот и пришлось добавить к началу всякого трека несколько витков "пустой" информации, чтобы компенсировать выпадения значащих секторов

[8] vs. — versus

(лат.) — против. — Ред.

[9]

Палетка (от франц. palette — пластинка, планка), начерченная на прозрачной бумаге, стекле или целлулоидной пластинке сетка линий, образующих квадраты известных размеров, при помощи которых определяется площадь участков на плане или карте. — Ред.



[10]

EAX := 1508h см. Interrupt List By Ralf Braun

[11]

Кстати, это очень хорошая функция и с ее помощью Win32-приложения могут сделать все то, что разрешается делать приложениям MS-DOS (бесконтрольный доступ к оборудованию, прерыванием и все такое).

[12]

Открытие диска в cooked-mode открытие осуществляется посредством функции CreateFile, вызываемой следующим образом: hCD = CreateFile ("\\\\.\\X:", GENERIC_READ,FILE_SHARE_READ| FILE_SHARE_WRITE,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);, где X — буква, обозначающая логический диск

[13]

Выделение полужирным шрифтом сделано автором книги. — Ред.

 [Y1]Здесь и далее, если это обозначение, то нужно привести полное написание копировщика. Хотя, на сколько я понимаю это полное название.

 [n2k2]да, это полное его название

 [Y3]Да, на названном вами сайте название приведено без пробела, т. е. как CloneCD. Наверное по всей книге следует поменять на такое написание или ваше правильное?

 [n2k4]в разных источниках CloneCD именуются по разному…

 [n2k5]заключат что?

 [n2k6]просьба убрать отсебятину и вернуть все в исходный вид. Информация на гибком магнитном диске (флоппи диске, дискете) содержится на концентрических окружностях, называемых дорожками (tracks), расположенных на обеих сторонах дискеты и обслуживаемых головками чтения - записи (heads). Нижняя сторона дискеты обслуживается головкой 0, верхняя - комбинация из двух противолежащих дорожек на разных сторонах называется цилиндром (cylinder).

 [n2k7]а чем "резец" не нравится?

 [n2k8]"сам-то понял, что сказал?" (с) анекдот.

вернуть обратно

 [Y9]Или я не врав в сноске это носитель ATIP?

 [n2k10]да сносите пожалуйста ;)

 [n2k11]тогда уж лучше дать ссылку на соответствующую главу книги, а вообще EDC/ECC это общепринятый термин.

 [Y12]Может быть следует сделать пояснение (в виде сноски, примечания или как-то иначе) что такое MS WDB?

 [n2k13]Microsoft Windows Debugger



 [n2k14]краткость – сестра таланта, речевая избыточность – саксь и маст дай.

 [n2k15]почему с "лазерных дисков", а не "дисков лазерных"? "жестких дисков", а не "дисков жестких"? "CD- ROM диски" звучит намного приятнее уху, а "с диском CD-R" это ни выговорить, ни прочитать ;(

 [n2k16]это не повтор слов, это так задумано ;)

 [n2k17]ну не говорят так! cdfs-драйвер, ndis-драйвер, видео-драйвер…

 [n2k18]нету такого сектора!

 [n2k19]замечательно! directory у вас переводится как каталог, а catalog тогда что? тоже каталог? или директория? вернуть обратно как было

 [Y20]"Ниспадающий бокс" это "Выпадающее меню" или "Раскрывающийся список" уточните что это?

 [n2k21]dropdown

 [n2k22]это они (треки) в сессии, но сессия "их".

 [Y23]Впереди поставьте уточняющее слово (поле, значение или?). Или это в смысле "сессия"? Исправьте как надо. Если это программный элемент, то следует выделить стилем "Courier".

 [n2k24]можно и курьером. session – поле, но это искажает смысл. "поле Session" никогда не бывает последним, а вот session – очень даже может быть!

 [n2k25]покажите мне "area lead-in" и я съем свою шапку. почему "выводная область", а не "область выводная"?

 [n2k26]грубая ошибка. тогда уж не области, а указателя на.

 [n2k27]здесь только полям

 [n2k28]ну вот, уже дисководом обозвали, так мы и до перфоратора доберемся

 [n2k29]оптимальный это по определению наилучший. поздравляю. вы как редактор в моих глазах очень возросли. ладно бы вы это просто пропустили, но вы исправили правильное, на заведомо ложное. короче говоря, ничем иным кроме нахальным издевательством над собой я это объяснить не могу, а потому за себя не отвечаю!

 [n2k30]это действительна та Джульета из той бессмертной пьесы.

 [Y31]На рисунке 1.8 обозначено P-FRAC и соответственно A-FRAC.


В таблице все верно?

 [n2k32] добавил сноску

 [Y33] Проверьте нумерацию битов на рисунке. На мой взгляд на рисунке ошибки. 96, указанных на рисунке бит, должно быть распределено так: 0—3, 4—7, 8—79, 80—95.

 [n2k34]рисунок выполнен в полном соответствии со стандартом ECMA-130 (см. стр. 30). 0 и 97 это не номера битов, а границы пакета, так что здесь все правильно.

 [Y35]Это фреймо-секунды, просто фреймы или у вас все верно?

 [n2k36]да, секунды здесь лишние

 [Y37]Распишите аббревиатуру MSF и LBA (сделайте пояснение).

 [n2k38]MSF – Минуты Секунды Фреймы, LBA – Logical Block Address, в тексте кстати говоря, такая расшифровка есть, только на ней не акцентируется внимание.

 [n2k39]не четыре, а четырнадцать ;) границы EFM-слом никак не размечены и данные представляют собой сплошной битовый поток…

 [n2k40]CloneCD это уже имя собственное, зачем же постоянно добавлять уточняющее существительное?

 [n2k41]если уж вы исправляете "любопытное" на "любопытная", то нужно изменить и "одно". это во-первых. теперь по вторых: скажите, пожалуйста, а каким таким образом можно отличить экспортируемую функцию от… экспортируемой таблицы например? мы имеем лишь public-имя, которое может быть всем, чем угодно, и "функция" появляется позднее, когда мы уже заглянули в дизассемблер…

 [n2k42]"Эдик пошел за пивом". обязательно что ли добавлять "человек Эдик"? ;)

 [n2k43]система или шифр Вернама, код описывает правила построения алфавита, шифры работают с отдельными битами, буквами, символами. коды оперируют

лингвистическими элементами (слоги, слова, фразы).

 [n2k44]"полученные дизассемблером из того же Clone CD". морковку с грядки вы тоже получаете? ;)

 [n2k45]"выполнение операции идет кусками" это еще более неправильно, чем "ксоренье", тогда уж "то, что скремблирование осуществляется 32-битными…"

 [n2k46]скрипит прочно вошел в программистский язык, так что можно давать его и без перевода



 [n2k47] слишком длинно. русский язык _позволяет_ создать глагол от XOR, и пренебрегать мощью великорусского языка нехорошо. "ксорит" сейчас обще употребляемый термин. язык это не застывшая статуя и не икона на стене. это весьма подвижная и непрерывно изменяющаяся сущность…

 [n2k48]может быть, тогда и 2 + 2 записывать как + 2 и 2?

 [n2k49]насколько "недавно"? ;)

 [Y50]На рис. 1.20 не обозначено "encoder C2". Есть только подпись "C1 encoder". Проверьте нет ли ошибки.

 [n2k51]да, здесь действительно была ошибка

 [Y52]Распишите аббревиатуру и поясните что это такое.

 [n2k53]program [memory] area. описана ниже

 [Y54]Распишите аббревиатуру и поясните, что такое ATIP. Во введении я привел это именно то или? "ATIP (Absolute Time In Pre-Groove) — информация о реальном производителе CD-R/RW носителя, максимальной разрешенной скорости записи и максимальную емкость диска".

 [n2k55]вы совершенно правы

 [n2k56]gnu это "Gnu Not Unix", это не стандарт. и ни каким боком не бесплатного. свободного – это да. но эта свобода очень сильно напоминает свободу тов. Сталина, лицензий в рамках GNU-сообщества куча (эта вроде GPL), но мне в лень в них разбираться, ибо я не юрист по профессии и ничерта там все равно не понимаю, к тому же на территории РФ никакой силы они не имеют.

 [Y57]Что такое GNU? Может быть следует сделать примерно такую сноску: "Слово GNU понимается как стандарт бесплатного программного продукта, а GNU лицензия — это лицензия, распространяемая с подобным программным продуктом".

 [n2k58]контр пример: "советская схема" (например, телевизора), или "схема советов"

 [n2k59]кончайте издеваться, да?!

 [Y60]Проверьте нет ли ошибки в написании названия кодов.

 [n2k61]а хрен его знает, он в разных источниках зовется по разному

 [Y62]Что это? Приведите электронный адрес.

 [n2k63]бросайте свой каменный топор и слезайте с медвежьей шкуры… оглянитесь вокруг… уже все давно знают, что слово "гуглить" обозначает "поиск в интернете"…



 [Y64] При ссылке на книгу или статью надо так и писать, указывая при этом: издательство, год и может быть количество страниц.

 [n2k65]кто вам сказал?

 [Y66]После листинга в тексте или в стиле "Замечание" поясните, что такое "стандарт ECMA-130". Возможно распишите аббревиатуру.

 [n2k67]раньше уже объяснилось. сколько можно?!

 [Y68]Проверьте запись. Нет ли ошибки? Что означает "+=" ? Кроме того, проверьте в листинге 1.17 запись "++i".

 [n2k69]ошибок нет

 [Y70]Проверьте ссылку.

 [Y71]Проверьте ссылку. Была ошибка.

 [Y72]Проверьте ссылки на рисунки был сбой в нумерации.

 [Y73]Поясните, что это такое и почему с заглавной буквы, если это название накопителя?

 [n2k74]все правильно

 [Y75]Что это за имя такое. Здесь нет ошибки?

 [n2k76]все правильно

  [Y77]Впереди поставьте определяющее, уточняющее слово. Наверное это функция, а может быть и команда?

 [n2k78]а может быть и макрос ;) вам оно надо? если GetProcAddress ведет себя как GetProcAddress – какая хрен разница что это такое…

 [Y79]Аналогично предыдущему вопросу.

 [n2k80]аналогично предыдущему ответу

 [Y81]Не очень удачное название раздела

 [n2k82]не хуже всего остального

 [n2k83]ага, сразу после главы посвященной ECC/EDC кодам дается их расшифровка. для склеротиков, не иначе…

 [Y84]Ссылка должна бать сделана, например, так: "см. раздел "Доступ посредством ASPI" главы 2". Или удалите эту ссылку в не куда.

 [n2k85]выкиньте свой англ. нахрен или не пытайтесь им щелолять. врапер по жизни был оберткой. даже на курсах английского рассказывают анекдоты про мексиканцев, которые едят сникерсы вместе с врраперами

 [Y86]Ссылка сделана не верно. Нужно указать название раздела и номер главы или удалить ссылку.

 [Y87]Выделения сделаны красным? Почему? Если надо выделить, то выделяете полужирым.

 [Y88]В тексте нет ссылки на листинг.


Допишите какой- то переходной текст перед шапкой листинга 3.4 и вставьте ссылку.

 [Y89]Что значит с нашего сервера? Наверное сервера автора? Кроме того нужно указать адрес сервера. А почему бы эту программу не поместить прямо на компакт-диск к этой книге?

 [Y90]В тексте поясните, что означает выделенная строка в листинге 3.5.

 [n2k91]очевидно это место сбоя.

 [Y92]Проверьте. Нет ли ошибки. Хорошо бы сделать уточнение в стиле "Примечание". Кроме того, если все верно внесите в индекс "Ординалы".

 [n2k93]ошибки нет.

 [Y94]Поясните что это за понятие. Или ошибка "золоченные" хотя и это тоже не понятно.

 [n2k95]все правильно

 [Y96]Желательно написать издательство, год издание и количество страниц.

 [n2k97]смысл?

 [Y98]На следующие два рисунка 3.5 и 3.6 в тексте нет ссылок. Вставьте ссылки и, возможно, переместите рисунки сразу же после ссылок.

 [n2k99]ссылок нету и не будет.

 [Y100]Все функции, команды (все что относится к программе) выделяется Courier. Здесь это что? Нужно выделять или нет?

 [Y101]Не знаю надо ли выделять курьером (Courier) значения? Если это относится к программному коду, то надо.

 [Y102]Впереди необходимо поставить поясняющее слово (оператор, функция или …). Соответственно выделять курьером или нет?

 [Y103]Как правильно пишется Sense Info? (У Вас: то "sense info", то "Sense Info", то "SENSE INFO". Надо сделать хотя бы одинаково по всей книге. Как правильно?). одинаково не получится, в разных источниках оно пишется по разному

 [Y104]В таблице некоторые ячейки выделены серым цветом. Надо пояснить, что это выделение обозначает.

 [Y105]Что такое "бряк"? Если это жаргон, то как это на нормальном языке?

 [n2k106]жаргон. как на нормальном языке не скажу, иначе вы опять возьме это в круглые скобки.

 [n2k107]это и ниже когда-то было подрисуночной надпись.


вернуть на место все как было…

 [Y108]Распишите в скобках аббревиатуру.

 [n2k109]что такое аббревиатура? моя не грамотная, моя вас не понимает.

 [n2k110]вы это… прежде чем править правильное на неправильное, вы хотя бы посмотрели как сама M$ его пишет, вот вставляю из буфера обмена " Windows Me DDK", как вы видите 'e' строчная. вернуть всю "ME" на "Me"

 [Y111]Распишите аббревиатуру. Что это? Документ или что-то другое. Напишите определяющее слово.

 [n2k112]если аббревиатуры постоянно расписывать, зачем они нужны? скажите, вы считаете, что фраза "обратитесь к Библии". что, нужно обязательно добавлять, обратитесь к книге Библии, при том, что библия это вообще-то книнга, а MSDN это Network – т.е. определяющее слово уже входит нее!

 [n2k113]нахрена расшифровывать общеупотребимые сокращения?!

 [Y114]Добавьте поясняющее, уточняющее слово. Выделять ли это Курьером?

 [n2k115]новая языковая находка! поздравляю!

 [n2k116]ну нихрена же себе! еще и расшифровка и перевод. это для особо тупых да?!

 [Y117]"В-четвертых" либо пропущено, либо этот пункт должен быть "в-четвертых".

 [Y118]Написание структур у Вас везде в верхнем регистре, а здесь нет. Это верно?

 [n2k119]все правильно

 [Y120]LU это Logical Unit или что-то другое? Поясните.

 [n2k121]там написано

 [Y122]На рисунок в тексте книги нет ссылки. Вставьте.

 [Y123]Перед этим требуется поясняющее слово (документ, каталог или …?).

 [n2k124]тут же написано "см.", т.е. "смотри", вот посмотрите и узнаете что это такое ;)

 [n2k125]интерфейс вы поставите сами в своем редакторском примечании. пусть над вами все смеются, но нехрен меня выставть идиотом. вы хоть оригинал смотрели? "…this specification describes the API…" где вы здест видите интерфейс?!

 [n2k126]я же просил вас это убрать. просьбы на вас, как видно не действуют ;(

 [Y127]Напишите уточняющее, определяющее слово.



 [n2k128] не напишу, ибо это будет слоблудие, граничащее с речевым поносом

 [Y129]Вставьте уточняющее, поясняющее слово.

 [n2k130]учите английский. он рулез. там же написано черным по белому. спецификатион. нахрена повторить это два раза?!

 [n2k131]проснулись! поздравляю!

 [n2k132]потрясающая врезка! а что "внимание" в тексте оставит была не судьба? а такое крылатое выражение как "по причинам не зависящим от", вам не говорит, что "указатель на" это не ошибка, а так задумано?

 [Y133]Добавьте уточняющее, поясняющее слово (тело файла или ?).

 [Y134]Добавьте уточняющее, поясняющее слово. Если это относится к программу коду, то нужно делать в стиле Courier.

 [n2k135]см. в словарь. оксфордовский. а потом спрашивайте.

 [Y136]Добавьте поясняющее слово.

 [n2k137]там их целых два. даже три! мало?!

 [Y138]Распишите аббревиатуру.

 [n2k139]не расшишу. нахрен мне надо чтобы надо мной смеялись? вы бы еще КПД попросили расписать.

 [Y140]Впишите поясняющее слово.

 [n2k141] рррр!

 [n2k142]"вошел в двом посредством двери". всем так и буду говорить, что одни знакомый редактор утвердал, что именно такой путь правильный, а "вошел в дом через дверь" – неверно.

 [n2k143]да… плохо не знать английский… скажите мне, а чем "Interrupt list" от "списка прерываний отличается"?

 [n2k144]позвольте мне настоять за слове "задница", это уже в конце вопрос принципа.

 [n2k145]если вы не понимаете юмора, то это не значит, что его не понимают и остальные. "оно" это то, которое не тонет.

 [Y146]Наверное не помешает написать где этот список взять.

 [n2k147]догадайтесь с трех раз ;) в гугле набить религия не позволяет, да? кроме того, что у тех, кому он нужен, он уже есть

 [Y148]Поставьте впереди уточняющее поясняющее слово (функция, команда или …).

 [n2k149]можно обойтись и без поясняющих слов, ибо и так все понятно.



 [n2k150]теперь я понял почему windows такая большая ;(

 [Y151]Почему все на русском языке? Программа рускоязычная или нет? Если нет, то нужно привести истинные названия вкладок, меню и т. д.

 [n2k152]программа поддерживает многоязычный интерфейс

 [n2k153]архиватор вообще-то это tar и от него производные. тот факт, что zip, arj и другие совмещают в себе функиции архиватора и упаковщика еще не дает право называть чистый упаковщик архиватором.

 [n2k154]вот и soft-ice архиватором обозвали ;(

 [n2k155]на кой хрен такой перевод?! вы еще в римские цифры переведите – от них больще пользы.

 [n2k156]блесяще!

 [n2k157]вообще-то 16, но все равно нахрен?!

 [Y158]Как правильно называется программа? У Вас то "Now", то "NOW", то без восклицательного знака, то с ним. Я нашел такое "Stomp RecordNow MAX" может быть это верное. Должно быть везде одинаково и желательно официальное верное название (как на сайте производителя). Это касается всех названных программных продуктов. Проверьте и где надо исправьте.

 [Y159]Хорошо бы расписать и RAW.

 [n2k160]за этим в оксфордовский словарь

 [Y161]Ссылка на что? Листинг, раздел, главу? Какие? Где?

 [Y162]Было в байтах. Судя по листингу Кбайт. В листинге верно или?

 [n2k163]Кбайт

 [Y164]Здесь пропущено слово "из строя"? или?

 [Y165]Ссылка на что?

 [Y166]Что это за запись? Если листинг, то должно быть название.

 [Y167]Название истинно? Или "прикол"?

 [n2k168]жаргон-с

 [Y169]Это программа, утилита или?

 [n2k170]чем программа отличается от утилиты?

 [n2k171]с каких это пор играются поврежденные mp3 файлы? ;)

 [n2k172]что за формат дисков с mp3? какой комитет его курирует?

 [n2k173]не надо править то, что в чем не разбираетесь или по крайней мере внимательно читайте словарь. "читающие устройство" – это cd-rom или типа того. "read engine" это компонент программного обеспечения блока микропроцессорного управления этого самого cd-rom'а ответственный за декодирование структур данных высших уровней абстракции.


на русский язык это не переводимо (во всяком случае нормативным языком).

 [Y174]Флажок верен? Проверьте.

 [n2k175]сойдет и "флажок"

 [Y176]Сюда не плохо бы вписать сообщение об ошибке вместо многоточия или вообще удалить ссылку на программу Nero.

 [Y177]Поменял X на N и Y на M чтобы не путать ранее встречающийся "X-сектор" c нынешнем "сектор Х".

 [n2k178]ок

 [Y179]В текст нужно обязательно вставить ссылку на рисунок, такую "(рис. 6.23)".

 [Y180]Уточните ссылку. Может это разд. "Защиты, основанные на "слабых" секторах" 9-й главы? Или я не прав? Вобщем уточните.

 [Y181]Может "прожига", а то получается "масло масленное".

 [n2k182]"прожигать" привод нельзя, можно "прожигать" ПЗУ, но "прожигаемые" ПЗУ в приводах не применяются. а по поводу масла – тут виноват не я, а архитекторы приводов!

 [Y183]Такого раздела нет. Может имеется в виду разд. "Защиты, основанные на "слабых" секторах" главы 9 или разд. "F1-фрейм" главы 1, где есть упоминание о слабых "секторах"?

 [Y184]Далее в скобках приведите перевод или лучше напишите по-русски, а англ. возьмите в скобки.

 [n2k185]адекватный перевод на русский отсустует.

 [Y186]Здесь было что-то пропущено или все верно?

 [n2k187]все ок

 [Y188]Проверьте название. Оно должно быть точным — вплоть до регистра (верхний или нижний) слов наименования.

 [n2k189]проверил – все ок.

 [Y190]Наверное, имеется ввиду утилита из Norton Utilities "Disk Doctor". В любом случае следует сделать пояснение в сноске.

 [n2k191]не обязательно нортон, докторов было много…

 [Y192]В названии файла видимо опечатка должно быть не "rask.iso", а "track.iso"?!

 [n2k193]да, вы правы

 [Y194]Поясните пожалуйста текст приведенный в сноске.Что там за ссылка и на что она сделана?

 [n2k195]

знаменитый Interrupt List от Ральфа Брауна – у всякого хакера он всегда под рукой. прерывание известно, функция указана – а большего и не надо

 [Y196]Что такое IOTCL? Желательно пояснить и добавить уточняющее слово.

 [n2k197]IO-ConTroL, вообще-то это коды (управляющие), а пояснения даны в главе, посвященной интерфейсам взаимодействия. если все сокращения постоянно расшифровывать то на кой они нужны?!

 [Y198]Кого ее? Напишите конкретно.

 [Y199]Исправил на 130. У Вас было 120. Верно сделал?

 [n2k200]да, вы правы


Содержание раздела