Кіріспе

Rob Northen Copylock (сонымен қатар жай ғана Copylock деп те аталады) – Amiga, Atari ST және IBM PC-ге үйлесімді машиналарда стандартты дискета жетегі арқылы дискілерді көшіруден қорғауға арналған жүйе. Оны британдық бағдарламашы Роб Нортен өзінің Copylock Software компаниясын құрғаннан кейін ойлап тапты. Ол негізінен ойындарды қарапайым пайдаланушылардың көшіруіне қарсы қолданылды.

Тарих

1984 жылы Роб Нортен Acornsoft компаниясымен өздерінің жарияланған бағдарламалық жасақтамаларын қорғау үшін, мысалы, BBC Micro үшін шыққан түпнұсқа Elite ойыны үшін жұмыс істеу үшін шақырылды. Нортен алты айдан кейін компанияны тастап, Copylock Software деген жеке компаниясын құрды, бірақ Acornsoft-та жартылай уақыт жұмыс істеуін жалғастырып, көшірмеден қорғау тәсілдерін, файлдық жүйелерді және дискілік құралдарды жазды. Copylock атымен Нортеннің алғашқы қорғалған бағдарламалық жасақтамасы 1987 жылы Atari ST платформасында пайда болды. Copylock бағдарламалық жасақтамасының алғашқы нұсқасы бірнеше рет жүктеуге мүмкіндігі жоқ және бір дискетада орналасқан алғашқы Amiga және Atari ST ойындарын қорғау үшін қолданылды. Бастапқыда, баспагерлер қорғалмаған бас дискіні Нортенге жіберетін, ол жүктеуші бағдарламаны өзінің шифрланған жүктеушісімен ауыстырып, қорғалған бас дискіні көшіру үшін жіберетін. The Bitmap Brothers сияқты ойын дамытушыларының, күрделі қорғаныс тексерулерін енгізуге ниетті болғандарының сұранысы бойынша, Нортен дамытушылар өздерінің қалауынша енгізе алатын кіші бағдарламаларды жазды. 1990 жылы ол дискіні көшіру құралын сатып алып, Copylock серийлік нөмірлері енгізілген дискеталарды жасады, оларды қорғалған бас дискілердің орнына дамытушыларға, сонымен қатар олардың ойындарына енгізуі үшін Copylock тәсілдерімен бірге жіберді. Бұл Copylock сериясы бірнеше рет жүктеуге болатын немесе бірнеше дискетаға таратылған жаңа ойындарды қолдай алды. Сондай-ақ, ойын кодын кез келген жерде тексеруге мүмкіндік берді: мысалы, Ocean Software компаниясының Hook ойынында ойын ішінде қорғаныс тексеруі болды, егер ол сәтсіз болса, маңызды зат, атап айтқанда, кружка ойыннан жоғалып кететін. 1990 жылы Copylock MS DOS негізіндегі жүйелерге де көшірілді. 1996 жылы қолданыстан шығарылғанға дейін шамамен 500 коммерциялық Amiga ойыны Copylock арқылы қорғалған деген хабар бар.

Техникалық мәліметтер

Copylock қорғалған дискетада Copylock Serial Track деп аталатын бір ұзын жол бар, оны стандартты дискета оқу құрылғысынан оқуға болады, бірақ күрделі дискіні көшіру машинасы болмаса, жазу мүмкін емес. Дискіде Copylock Serial Track-ты оқи және декодтай алатын арнайы жүктеуші бар, ол күшті шифрланған. Шифрланған код дискіде әр ойын үшін бірегей түрде жасалған дұрыс Copylock Serial Key бар екенін тексереді. Машиналық тіл деңгейінде Copylock Motorola 68000 іздеу режимін пайдалану арқылы жұмыс істейді, бұл процессордың негізгі бағдарламадағы әрбір командадан бұрын белгілі бір іздеу векторын орындауына себеп болады. Іздеу векторы машиналық кодты орындалу алдында декодтайды және орындалғаннан кейін қайта шифрлайды, сондықтан физикалық жадта бір уақытта шифрланбаған бір немесе екі командадан артық сақталмайды. Бұл іздеу векторының декодері деп аталады және бастапқыда Atari ST платформасында іске асырылды, кейіннен 68000 архитектурасына негізделген Amiga-ның алғашқы үлгілеріне көшірілді.

Бірінші серия

Бұрынғы серияда Copylock жүйесі екі түрлі болды. Ішкі түрінде, осы бағдарламалық қамтамасының Copylock сериялық кілті аппараттық тіркеуіш D0 арқылы беріліп, жад мекенжайы $24-те сақталады. Талантты бағдарламашылар бұл сериялық кілтті нақты мақсаттар үшін пайдаланып, ойынға қосымша тексерулер енгізуге тырысатын крекерді оларды жоюға мәжбүр ете алатын. Дегенмен, көптеген алғашқы ойындарда бағдарламашылар көбінесе сериялық кілтті ғана тексереді, оны бағдарламадан табу және деактивациялау оңай болды. Wrapper түрінде ойынды іске қосу коды немесе жүктеу процедурасы шифрланады, содан кейін Copylock кодымен бірге қосады. Диск жарамдылығын тексерудің барлығы Copylock коды арқылы жүзеге асырылады: сәтті аяқталған жағдайда, іздеу векторының декодиленісі шифрланған жүктеу процедурасына немесе файлына дейін созылады; деректер ойын коды күтетін орынға көшіріліп, процедура орындалады. Осы 1-ші сериялы Copylock түрі көбінесе бір рет жүктеліп, дискіге қайтадан жүктелуі қажет болмайтын ойындар үшін қолданылды. Алайда, бұл ойынды шифрлаудан кейін көшірмеден қорғаудың мәнін жойды, себебі ойынды "бір файлға" көшіруге болады, яғни жадтан толығымен төгіп алып, дискіге сақтауға және Copylock процедураларына тәуелсіз жұмыс істеуге болады.

Екінші серия

2-сериясы 1-серияның ішкі алгоритмдерінің дамуы болды, бұл ерте нұсқаларды оңай айналып өтуге мүмкіндік берді, себебі көптеген бағдарламашылар тек Copylock Serial Track-тен сериялық кілтті оқып, оның дұрыс екенін тексерген қарапайым қорғау тексеруін іске асырды. Керкерлерге кодталған Copylock процедураларын қараудың қажеті де болмады, өйткені дискінің нақтылығын тексеру олар сериялық кілтті оны тексерген кодтан анық көретіндей етіп жасалған. Сондықтан, көптеген адамдар Copylock қалай жұмыс істейтінін түсінгенмен, өте азы ғана оны қалай бұзу керектігін білуге уақыт бөлді. Бірақ, қазір Copylock орындалу алдында параметрлерді қабылдауға мүмкіндік берді, яғни Copylock енді тек сериялық кілтті ғана емес, сонымен қатар Copylock-қа берілген тіркеліштердің мазмұнына ойынға қатысты нақты мәндерді жазуға немесе ойынның дұрыс жұмыс істеуі үшін алдын ала белгіленген мекенжайлар тізіміне мәндерді жазуға болатындығын білдірді. Copylock-тан қорғалған ойынды бұзудың әдеттегі, бірақ дұрыс емес тәсілі – сериялық кілтті алу, Copylock-тың бас бөлігін өңдеу, дұрыс сериялық кілтті D0 тіркеліміне енгізу және содан кейін оқу және декодтау процесін айналып өту болып табылды. Бұл Copylock-тағы "ерекше жағдай" коды ешқашан орындалмайтынын білдіреді, демек ойын тек сериялық кілтті пайдалану арқылы жұмыс істемейтін еді.

IBM PC-ге үйлесімді нұсқасы

Copylock-ты IBM PC-ге үйлесімді компьютерлерге көшіруге болатын, себебі x86 микропроцессоры 68000 процессоры сияқты бір қадамдық үзіліс немесе INT 1 арқылы іздеу векторын қолдайды. Бұл ойынның атқарылатын кодының шифрланғаны және Copylock жүктеуішімен "оралып" қойылғаны арқылы көрінді. Жұмыс істеу кезінде жүктеуіш дискетадан 4 секторды оқып, олардан бақылау сомасын есептейтін. Бұл сомалар ойын кодын ашу үшін кілттер ретінде қолданылатын. Ашу аяқталғаннан кейін жүктеуіш басқаруды ойын бағдарламасына беретін. Ойынның бастапқы атқарылатын коды жүктеуіштің ішінде сақталғандықтан, оны айналып өту оңай болды. Дискідегі тексерулерден және шифрлау кодын асып өткеннен кейін, шифрланбаған атқарылатын файлды алу үшін екі дискіге жазу жеткілікті болды. Бірінші жазу өзгертілмеген "MZ" бас тақырыбын сақтайтын, ал екінші жазу нақты ойын кодын сақтап, жұмысты аяқтатын. "Керемет Фурлуг" құралын "Кейірімді жігіттер" жасады, ол осылай істейтін және ойынды бір минуттан да аз уақытта "бұзуға" болатын.