Кіріспе

Біт-нибблер немесе нибблер – дискеттен деректерді бір-бір битке көшіруге арналған компьютерлік бағдарлама. Ол дискінің аппараттық құралдарымен тікелей байланыса отырып, дискеттегі деректер сақталған кезде қолданылатын көшірмеден қорғау жүйесін жоңғыштау үшін өте төменгі деңгейде жұмыс істейді. Көбінесе нибблер бағдарламалық жасақтамасы деректерді байт деңгейінде талдайды, бірақ синхрондау белгілері (синхрондар), нөлдік кескіндер және басқа секторлар мен жолдардың бас жазбаларымен жұмыс істегенде ғана бит деңгейіне көшеді. Мүмкіндігі болған жағдайда, нибблерлер дискілік жүйеде қолданылатын төменгі деңгейдегі деректерді кодтау форматымен жұмыс істейді, мысалы, топтық кодталған жазу (GCR – Apple, Commodore), жиілік модуляциясы (FM – Atari) немесе өзгертілген жиілік модуляциясы (MFM – Amiga, Atari, IBM PC).

Шолу

Бағдарламалық жасақтаманы пираттық көшіру дискеталар кең таралған кезде алаңдаушылық тудырды. Көшірудің қарапайымдылығы жүйеге байланысты болды; Джерри Пурнелл 1983 жылы BYTE журналында «CP/M көшірмеден қорғауға жарамсыз» деп жазды, сондықтан оның қолданушылары «осыған көп алаңдамады», ал «Apple қолданушылары болса, үнемі қиындыққа тап болды. TRS DOS қолданғандар да солай, және MS DOS-тың көшірмеден қорғау мүмкіндіктері бар екенін түсінемін». Apple және Commodore 64 көшірмеден қорғау схемалары өте әртүрлі және шығармашылық болды, себебі дискетадан мәліметтерді оқу және жазу процесін бағдарламалық қамтамасыз ету (немесе микрокод) бақылап отырды, аппараттық құралдар емес. Пурнелл көшірмеден қорғауды ұнатпады және ойындардан басқа, оны қолданатын бағдарламаларды шолудан бас тартты. Ол оның тиімді екеніне сенбеді, «Кез келген көшірмеден қорғау схемасына қарсы оны бұзуға дайын хакер табылады. Көбінесе, бастапқы дискіні талдап, содан кейін көшірме жасауға тырысатын, «ниббл-көшіргіштер» деп аталатын құрылғылар қолданылады» деп жазды. 1980 жылы Apple II үшін Locksmith атты алғашқы «ниббл» көшіргіші пайда болды. Бұл көшіргіштер көшірмеден қорғалған дискеталарды секторларды қалай белгіленгенін ескермей, бірден толық жол бойынша көшіретін. Бұл күткеннен қиын болды, себебі екі мәселе бар еді: біріншіден, Apple дискілері жолдың басын белгілеу үшін индекс тесігін пайдаланбады; олардың дискілері тіпті индекс тесігін де анықтай алмады. Демек, жол кез келген жерден басталуы мүмкін еді, бірақ көшірілген жолда осы «жазу тігісі» болуы керек, ол жылдамдық өзгеруіне байланысты кейбір биттердің жоғалуына немесе дубликатталуына себеп болар еді, бұл әдетте пайдалы жүктеме деректері үшін пайдаланбайтын орында орналасқан, әйтпесе жұмыс істемейтін еді. Екіншіден, Apple дискінің контроллері мен компьютер арасында байттың қайда аяқталатынын және келесі байттың қайда басталатынын анықтау үшін арнайы «өзін-өзі синхрондау» байттарын қолданды. Бұл байттар қалыпты дерек байттары ретінде жазылып, содан кейін қалыптыдан сәл ұзақ үзіліс жасалды, оны кері оқу кезінде анықтау қиын болды; алайда, өзін-өзі синхрондау байттарын шамамен дұрыс анықтау қажет болды, өйткені олар дұрыс орындарда болмаса, көшірме жұмыс істемейтін еді, ал олар тым көп орындарда болса, жол мақсатты дискіге сыймайтын еді.

Apple II

Locksmith Apple II дискілерін секторлар арасындағы синхрондау өрістерінің көбінесе FF байттарының (барлық "1" биттері гексадық форматта) ұзын тізбегінен тұратынын пайдаланып көшірді. Ол FF-тің ең ұзын тізбесін тапты, ол әдетте әрбір жолдың соңғы және бірінші секторлары арасында кездесетін, және жолды сол тізбегінің ортасынан жаза бастады; сондай-ақ, ол FF байттарының кез келген ұзын тізбегін синхрондау тізбегі деп есептеді және көшірмеге жазғаннан кейін қажетті қысқа үзілістерді қосты. Қызығы, Locksmith өзін-өзі көшірмелемеді. Бірінші Locksmith әрбір жолдың 1-ші секторы арасындағы қашықтықты өлшеді. Көшіруден қорғау инженерлері Locksmith-тің не істеп жатқанын тез түсініп, оны жеңу үшін сол әдісті қолдана бастады. Locksmith жолдардың туралануын қайта жасау мүмкіндігін қосты және егер табылса, көшіру процесін тоқтататын арнайы тізбекті енгізу арқылы көшірілуден қорғалды. Генри Робертс (Nalpeiron компаниясының CTO-сы), Оңтүстік Каролина университетінің компьютерлік ғылымдар магистранты, Locksmith-ті кері инженерлікпен зерттеді, тізбекті тауып, сол кезде көшіруден қорғаумен айналысатын 7-8 адамға ақпаратты таратты. Біраз уақыт бойы Locksmith барлық қолданыстағы көшіруден қорғау жүйелерін жеңуді жалғастырды. Келесі жетістік Генри Робертстің бағдарламалық қамтамасты көшіруден қорғау жөніндегі диссертациясынан туды, ол Apple-дің FF синхрондау өрісін байттардың кездейсоқ үлгілерімен алмастырудың жолын ұсынды. Бітіруші студент Apple компаниясының көшіруден қорғау инженерімен жиі әңгімелескендіктен, Apple осы әдісті пайдаланатын көшіруден қорғау жүйесін жасады. Генри Робертс содан кейін Locksmith-ке қарсы бағдарлама жазды – Back It UP. Ол оны жеңу үшін бірнеше әдіс ойлап тапты, және ақырында, олардың құрамында қандай кішкене бөліктер болса да, өздігінен синхрондалатын өрістерді тікелей оқу әдісі табылды. Көшіруден қорғау инженерлері мен көшірушілер арасындағы күрес Apple II ескіргенге дейін, оның орнына IBM PC және оның клондары келгенге дейін жалғасты.

Комодор 64

Fast Hack'em диск көшірме бағдарламалық жасақтамасының бір бөлігі – көшірме қорғалған Commodore 64 коммерциялық бағдарламалық жасақтамасының көшірмелерін жасауға арналған нибблер болды. Нибблерді қолданғанда, дискіні көшіру стандартты Commodore DOS командаларын пайдаланбастан, өте төмен деңгейде, біттеме-біттеме жасалатын. Бұл қасақана жасалған дискілік қателердің, стандартты емес тректердің орналасуының және көшірмелерді болдырмаудың басқа да түрлерінің тиімділігін жойды. Қорғалған дискіні көшіру басқа дискіге тікелей көшіргенде шамамен 60 секунд, ал бір дискіні пайдаланып көшіргенде 3 минут (плюс бірнеше дискіні ауыстыру) уақыт алатын. Super Kit/1541 бағдарламасын 1986 жыл шамасында Prism Software компаниясы сатты. Оны Джо Питер жазған, ол Wrap Speed және VMax көшірмеден қорғауын да жасаған. Ол Normal Copier, Nibbler, File Copier, Super Nibbler, Disk Surgeon және дискіні өңдеу құралдары сияқты көптеген көшіргіштерді қамтыды. B жағында параметрлер де болды (төмендегі тізімді қараңыз). Екі дискіні де тізбектей жалғауға болады және бағдарламаланғаннан кейін компьютерді ажыратып, дискілер дискіні енгізу кілтін тексеру арқылы көшіруді 20 секунд ішінде өздігінен жасауға болады. Қызығы, бағдарлама өзін-өзі көшіре алады, бірақ көшірмені көшіре алмайды, себебі түпнұсқаның синхрондау ұзындығы көшірмеден қысқа болды және жүктеуші осы ұзындықты тексерді, ал көшірмеде синхрондау ұзағырақ болар еді. Кейін V3 нұсқасын автор PD-ге (Public Domain) шығарды. NIBtools – бұл 2006 жыл шамасындағы ашық кодты бағдарламалық қамтамасыз ету, ол негізінен авторлық құқықпен қорғалған немесе зақымдалған ескі дискеттерден деректерді архивтеу үшін жасалған. Биттеме-біттеме оқудың орнына, 1,25 КБ көлеміндегі көптеген бөлімдерді оқып, содан кейін оларды саптамалық тізбектеуге ұқсас әдіспен біріктіруге болады, бұл Commodore 1541 құрылғысында баяу байланыстарды пайдалану үшін қажетті тәсіл. Rapidlok – көптеген компаниялар кеңінен қолданған көшірмеден қорғау схемасы болды және оның ешбір нұсқасы сәтті көшірілген жоқ. Олар секторлар арасында $00 мәнін пайдаланды, бұл көшіргіштердің жұмысын бұзуға себеп болды, өйткені бұл заңсыз GCR мәні еді.