Программалық қорғанысты бұзу техникалары

Скачать


 МАЗМҰНЫ
КІРІСПЕ 9
1 Программалық қорғаныс және оның негіздері 10
1.1 Программалық қамтаманы өндірушілерінің құқықтарын қорғау түрлері 10
1.2 Программалық қамтаманы қорғаудың классификациясы 10
1.3 Қорғаныстың техникалық құралдар түрі 11
1.4 Механизмдердің, алгоритмдердің, қорғаныс әдістерінің сенімділігі 11
1.5 Көшіруден қорғанудың дәстүрлі әдістері 13
1.6 Парольдік қорғаныс 19
2 Программалық қорғанысты бұзу техникалары 25
2.1 Кілттік диск көмегімен қорғанысты айналып өту әдістері
2.2 Кілттік салыстыруға негізделген қорғанысты бұзу технологиясы 26
2.3 Қорғаныстың крипторафиялық жүйесінің осалдығы 29
2.4 Толықтай таңдау шабуылы 31
3 Программаларды зерттеуден қорғау және программалық-аппараттық қорғаныс 35
3.1 Программаларды зерттеу құралдары 35
3.2 Программалық-апараттық қорғаныстың тағайындалуы 49
3.2.1 Заңсыз қатынастан қорғау 50
3.2.2 Қолданушының идентификациясы 51
3.2.3 Қолданушының аутенфикациясы 52
3.2.4 Электрондық кілттер 53
3.2.5 Программалық – аппараттық қорғанысты бұзу және қорғау
4 Экономикалық бөлім 57
4.1 Жалпы жағдай 57
4.2 Экономикалық есептеулер 60
5 Еңбек қорғау 68
5.1 Еңбекті қорғау туралы жалпы түсініктер 68
5.2 Санитарлы талаптар және ережелер 68
5.3 Электр қауіпсіздігі 69
5.4 Өрт қауіпсіздігі 73
ҚОРЫТЫНДЫ 77
ӘДЕБИЕТТЕР ТІЗІМІ 78
А ҚОСЫМША 80
КІРІСПЕ
Бұл дипломдық жұмыста қазіргі кезде кең таралған
1 Программалық қорғаныс және оның негіздері
1.1 Программалық қамтаманы өндірушілерінің құқықтарын қорғау түрлері
Программалық өнімді шығарушылардың заңдарын қорғаудың екі түрі бар–заңды
Заңды қорғау компьютерлік программалардың авторларының құқығын заңды түрде
Заңды қорғау программалық өнімнің авторлық құқығын бұзған адамды
Техникалық қорғау бұл негізінен техникалық құралдар көмегімен
Техникалық құралдармен программалық өнімді қорғаудің бірнеше әдісі бар:
Программаны басқа дискіге көшіруге қарсы әрекет жасау
Көшіруге рұқсат беріп, ал заңсыз көшірілген көшірмесінің жүктелуіне
Программаның көшірілуіне, қолдануына қарсы әрекет жасамай, бірақ керек
Программаларды шығаратын өндіруші фирмалар өздерінің прогммалық өнімдерін қорғауда
Жаңа технологиялық қорғаныс Microsoft корпорациясының оригинальды өнімдері Windows
1.2 Программалық қамтаманы қорғаудың классификациясы
Программалық қамтаманы қорғауды келесідей классификацияларға жіктеуге болады:
Заңсыз көшіруден(бейнелеуден) қорғау;
Заңсыз қолданудан қорғау;
Программаны зерттеуден қорғау;
Программалық өнімді идентификациялау
Негізінен программалық өнімді бірмезгілде бірнеше әдіспен қорғауды қолдансақ
1.3 Қорғаныстың техникалық құралдар түрі
Техникалық құрал қорғанысын бірнешеге бөлуге болады:
Программалық;
Аппараттық;
Программа-аппараттық.
Программалық құрал қорғанысы болып программалық түрде қорғаныс.
Бұл ең қолайлы құрал.
Программалық қорғанысқа келесілерді ескеру қажет
Кез – келген программалық қорғанысты белгілі бір
Заңсыз көшіруден программалық қорғаныстың белгілі маманы А. Щербаков
Аппараттық құрал қорғанысы деп әдейленген аппараттарды қолданатын
Аппараттық қорғаныс ең сенімді, бірақ өте қымбат және
Программалық – аппараттық құрал қорғанысы бұл программалық және
Бұл оптимальды қорғаныс құралы. Олар аппараттық жағынан болсын,
1.4 Механизмдердің, алгоритмдердің, қорғаныс әдістерінің сенімділігі
Программалық қамтама аумағындағы авторлық құқықты қорғауда қолданылатын механизмдердің,
Ақпараттықтехнологиялар қауiпсiздiгiн бағалау аймағындағы негiзгi құжаттар болып:
«сенiмдi компьютерлiк жүйелердi бағалаудың критериилерi»(Trusted Computer…) [5], «оранжевая
Ақпаратты технологиялар қауiпсiздiгiн бағалаудың критериилерi (Information…) [6], «Еуропа
1992 ж. қабылданған автоматтырылған жүйелер және есептеу техникалары
Және соңғысы, ақпараттық технологиялардың қауiпсiздiгiн бағалаудың жалпы критериилерi,
Келтiрiлген нормативтi – техникалық құжаттар позициясы жағынан ақпараттық
Ескерту: бұл жерде қауiпсiздiктiң iшiнде бағалау нысанының
Ақпараттық технологиялар қауiпсiздiгiн бағалау сандық емес, сапалық трге
Қорғану механизмдерi мен әдiстерiнiң сенiмдiлiгiн бағалау үшiн қолдануы
Сенiмдiлiк. Бағалау нысанының сенiмдiлiгi осы нысанаға келтiрiлген сенiм
Кепiлдiлiк. Сенiмдiлiк өлшемi ретiнде анықталады. Мұнда нысанның қауiпсiздiк
Iшкi (бұзуға ниеттенушiлер) және сыртқы (қате эксплуатацияланғандар) қателерге
Осалдықты бағалау кезiнде iшкi қателерге қарсы тұра бiлу
Механизмнiң осал жерлерiне талдау жасау;
Механизмнiң қуаттылығын бағалау.
Осалдықты талдау кезiнде бұзышылардың қорғанысты бұзуы үшiн
Осалдыққа анализ жасау негiзiнде қорғаныс механизмдерiнiң қуаттылығы бағаланады.
Қорғаныс механизмдерiнiң қуаттылығы – қорғаныс мехенизмдерiнiң тiкелей шабуылға
Ескерту. Жалпы критерилерде қорғаныс механизмдерiнiң қуаттылығы қауiпсiздiк функциясының
Қорғаныс мехенизмiнiң қуаттылығы үшiн қуаттылықтың үш градациясы анықталған
Қорғаныс механизмiнiң қуаттылығы базалық деп бағаланады, егер талдауда
Басқа сөзбен айтқанда, егер де механизм жекелеген кездейсоқ
Қорғаныс механизмiнiң қуаттылығы орташа деп бағаланады, егер талдауда
Басқаша айтқанда, егер де механизм шектелген қорлары және
Қорғаныс механизмiнiң қуаттылығы жоғары деп бағаланады, егер талдауда
Қорғаныс механизмнiң жоғарғы қуаттылығы туралы мына жағдайда айту
Ары қарай бiз компьютерлiк программалардың авторларының құқығын қорғаудың
Бұл тараудың осы бөлімінде қарастыратын программалық қорғанудың
Тағы бір айтып кетейік кез – келген программалық
Қай программалық қорғанысты бұзу кезінде бұзушы сол
Демек, программаның қорғанысының авторының алғашқы тапсырмасы – қорғаныс
1.5 Көшіруден қорғанудың дәстүрлі әдістері
Ұзақ уақыт бойы программалық өнімдер иілгіш магнитті дискілер
Иілгіш магнитті дискілерді көшіруден қорғау әдістері келесілерге негізделген.
Құрамында кілттік белгісі бар дискіні кілттік диск деп
Егер де программаның көшірмесі бар дискіде кілт болмаса,
Іс жүзінде кілттік дискінің көмегімен қорғанысты орындау үшін
Программаны көшіруден қорғаудың басты тапсырмасы кілттік белгіні басқа
1.5.1 Кілттік дискілерді құру әдістері
Иілгіш магнитті дискілерді көшіруден қорғау үшін кілттерді құру
Көшіруден қорғау үшін кілтті құрудың екі жолы бар:
Апараттық жолмен
Программалық жолмен
Бірінші жағдайда апаратура көмегімен (көбінесе үлкен дәлдік үшін
Программалық әдістерде кілттік дискілерді құрудың бірнеше түрі бар.
Аппараттық әдіс сияқты негізгі идея құрыс оқылмайтын немесе/және
Айтата кетейік, бастапқыда қорғаныстың программалық әдістері стандартты форматы
Егер де дискеттi ерекше (стандартсыз) түрде форматтап, кiлттi
Осы идеяға негiзделген көшiруден қорғану әдiстерi мынандай жалпы
Дискетаны стандартсыз түрде форматтаудың көптеген әдiстерi мен
Иiлгiш магниттi дискте ақпараттар,мәлiметтер дисктiң екi бетiнде де
Әрбiр секторда:
синхрондау өрiсi (жол жиек) (екi, бiр сектор тақырыбы,
маркерлер, бiреуi – сектордың басын, екiншiсi сектордың мәлiметтер
бастиек, сектор, цилиндр нөмірінен және сектор тақырыбының сектордың
сектордың деректер аймағы (DOS – стандарт үшін –
деректердің бүтіндігін бақылауға арналған сектордың деректемелер аймағындағы бақылаушы
Келтірілген өрістерден басқа әрбір секторда тағы да екі
Иілгіш дискті стандартты емес форматтау мен түйіндік белгіні
Бұл берілген қорғаныс механизмдері қорғалған программаның көшірмелерін стандартты
Кілтті арнайы форматталған қосымша жолшыққа орналастыру.
Мысалы, 1,44 Мб сыйымдылықтағы дискета үшін 80 –
Форматталған жолшықтар.
Көшірудің стандартты программалары жолашықтағыны соңғысына жеткенше немесе форматталған
Жолшықтағы стандартты емес нөмірленген секторлар.
Стандартты форматта жолшықтағы секторлар нөмірлері өсу бойынша тізбектелген.
Сектордың стандартты емес өлшемі.
Қысқа өлшемді секторлардың көбірек санын форматтауға және ақпараттарды
Бұрыс бақылаулық қосындымен сектор құру.
Стандартты программалар бұрыс бақылаулық қосындысы бар секторларды көшірмейді(сектор
Бақылаулық қосындысының өзгеруі.
Секторды оқу кезінде операциялық жүйе бақылаулық қосындысы арнайы
Иілгіш магнитті дискілерді қорғау әдістері қорғалған программаларды
1.5.2 Қатқыл дискілерде кілттерді құру әдістері
Қатқыл магнитті дискіде орналасқан, программаларды көшіруден қорғау әдістерін
Қатқыл дискілерде кілтті құру кезінде компьютердің жеке ерекшеліктеріне
Винчестрге байластыру. Кілт ретінде қолдануға болатын қатқыл дискілердің
қатқыл дисктің сериялық нөмірі (винчестрдің кейбір типтері үшін);
bad – кластердің орналасуы(бұндай кламтерлердің болмауыда мүмүкін);
BIOS – байластыру мынандай параметрлерді тексеруді білдіреді:
компьютердің типі;
BIOS құру уақыты;
BIOS жасауының сигнатурасы мен оның жадыдағы мекені;
BIOS конфигурациялық кестесі;
BIOS бақылау қосындысы;
Кейбір үзулердің BIOS-қа кіру нүктелері және т.б.
Архитектураға байланысты – компьютердің конфигурациясын тексеруді білдіреді:
Иілгіш дискілердегі жинақтауыштың саны мен типі;
Қатқыл дискілердегі жинақтауыштың саны мен типі;
Бейне адаптердің типі;
Жедел жады көлемі;
Қосымша(өлшем) немесе кеңейтілген жадының болуы;
Кейде қолданылады:
Клавиатура типі;
“тышқан” және “желілік перо” монипуляторының интерфейсі мен типі;
параллель және тізбекті порттардың саны;
Программалық қамтамаға байластыру қатқыл дисктегі немесе жедел жадыдағы
Кейде жүйелік файлдарда программалар мен командалардың іске қосылуының
Қатқыл магнитті дисктің кілтін алудың тағы бір жолы
дисковод немесе винчестрдің айналу жылдамдығы;
мегагерц бірлігіне дейінгі нақтылықтағы тактылы жилігі;
жедел жадыға қатынас жасау уақыты;
енгізу\шығару бағаныңқы жүйенің жылдамдығы және т.б.
Мұндай кілттің де сенімділігі жоғары емес.
Температураның ауытқуы, ауаның ылғалдылығы, желінің қысымдылығы, компьютер бөлігінің
Қатқыл дискіге өзіндік кілтті құру үшін:
қолданылған жолшықты стандартқа сәйкес емес форматтау.
Иілгіш дискті стандартты емес форматтау әдісіне ұқсас, бірақ
жалған bad –кластерлерді белгілеу.
Сонымен бірге пайдаланушы псевдожаңылысуды байқау ықтималдылығын төмендету үшін,
ұзын оқу\жазу операцияларын пайдалану.
Бұл операциялар ұзындығы 516 байтқа дейінгі кеңейтілген сектормен
жүйелік файлдарды тізбекті бақылауымен модификациялау.
Программаны көшіруден қорғау үшін компьютердің өзіндік параметрлерін немесе
файлды (каталогты) құру уақыты;
қолданылатын клстер нөмері;
соңғы кластердің қолданылмаған жеріндегі ақпарат.
Мұндай кілттерді пайдаланғанда, оның дискті қайта ұйымдастыруда (қайта
Кілттік дискілерді пайдалануға негізделген қорғаныс әдістемесі дәстүрлі болып
Екіншіден,желілік технологичлардың қарқымды дамуы программалық қамтаманы таратудың жаңа
1.5.3 Программалық қорғанудың базалық әдістері
Астында қарастыратын программалық қорғаныстың бұл әдістері заңсыз пайдаланушылардың
Заңсыз пайдаланудан программалық қорғаныстың базалық әдістеріне іс жүзінде
Парольдік қорғаныс
Шифрлеу
Шартты-тегін программалық қамтаманың қорғану әдістері
1.6 Парольдік қорғаныс
Ең кең тараған программалық қамтаманы қорғаудың түрі бұл
Пароль алфавит және арнайы белгілердің тізбектелген символдарынан
Бірден айтып кетейік, парольдік қорғаныс белгілі бір аз
Көңіл аударатын бір жай, парольді енгізу үрдісі кезінде
Жақсы қорғаныс жүйесі жақсы ұйымдастырылған болуы керек. Біріншіден,
Парольдің түпнұсқасын қорғалған программаға қолайлы және зиянкестерге қолжетерсіз
Ісжүзінде эталондық парольді сақтау үшін келесі әдістер қолданылады:
Эталон қорғалған программада сақталады;
Эталон арнайы арналған бөлек файлда сақталады(бұл әдіс Windows-
Эталон жүйелік аумақтарда сақталады(дискінің бос, қосалқы немесе сирек
Жаңа үйреніп келе жатқан программиста біледі, парольді ашық
Негізінен қорғаныс авторлары не парольды белгісіз немесе өзінің
Көптеген жағдайда жай парольды сақтауды немесе парольды хешифрлеуді
Өзін жақсы жағынан көрсеткен әдіс бұл – парольды
1.6.1 Шифрлеу
Шифрлеу – бұл ақпаратты авторластырмаған кісілерден оның құрамын
Авторластырған (авторластырмаған) кісілер – ақпаратқа оқуға, өзгертуге және
Дешифрлеу – ақпаратты қалпына келтіру, кері шифрлеу.
Ақпаратты шифрлеудің әдісән, алгоритмін және құралын криптография зерттейді.
Көптеген мамандар программалық қамтаманы қорғауда шифрлеу деректер қауіпсіздігінің
Криптографиялық әдістер және алгоритмдер көптеген әдебиеттерде толық айтылған,
Атап өтейік, шифрлеу үшін қорғаныс авторы өзінің криптоалгоритмін
Криптоанализ дешифрлеу әдістерін, алгоритмдерін, құралдарын, оған қоса криптожүйенің
Бұл жерде криптоалгоритмнің беріктілігі (сенімділігі) деп отырғанымыз криптоаналитикке
Бұдан бізге енді қажеттісі криптошабуылды есептеу техникасында орындаған
Ақпаратты қорғау мамандары жақсы зерттелген қасиеттері мен кемшіліктері
Тәжірибе жүзінде негізінен криптожүйенің екі түрі қолданылады:
Симметриялық
Асимметриялық
Симметриялық криптожүйелерде сол бір құпия кілтпен шифрлеуде, дешифрлеуде
Асимметриялық криптожүйелерде шифрлеу және дешифрлеу үшін әртүрлі кілттер
Қазіргі кезде біріктерілген жүйелер де қолданылады. Мысалға желі
Негізінен мамандар криптоалгоритмдердің аталған классикалық сұлбаларын өздігінен орындауға
Шифрледің қарапайым түрілеріне ауыстыру және ауыстырып қою жатады.
Бастушы программистердің сүйікті шифрлеу тәсілі XOR операциясының көмегімен
Шын мәнінде,
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
Бұндай алгоритмдердің беріктілігі өте төмен (бұндай қорғаныс механизміне
Негізінен, шифрлеуге негізделген қорғаныс механизмін орындаған кезде кілттің
шифр беріктілігі тек кілттің құпиялығымен анықталуы тиіс (Кирхгофф
Сенімдірек кілт болып қандайда бір тексерілетін параметр функциясының
Тәжірибе жүзінде шифрлеуге негізделген келесі программаны қорғау механизмі
Программа кодын шифрлеу.
Программа коды тек программа орынадалған кезде ғана шифр
Прграмма фрагментін (бөлігін) шифрлеу
Шифрлеу үшін көбінесе программаның критериялық бөлігін таңдайды.
Екі жағдайда да статикалық та, және де
Парольді шифрлеу
Бұл әдіс жоғарыда айтылған.
Деректерді шифрлеу
Шифрленген командаларды дешифрациядан кейін «түрінен тану» оңай, сондықтан
1.6.2 Шартты-тегін программалық қамтаманың қорғану әдістері
Желілік технологиялардың дамуына байланысты программалық қамтамалар жиі шартты
Кейбір қу пайдаланушылар барлық әдіс – амалмен не
Тәжірибиеде өңдірушілер қорғаныстың келесі принциптерін қолданады;
Тіркелу кодтары;
Уақыт бойынша шектеу;
Жүктелу санын шектеу;
Тітіркену экрандары(Nag Screen).
Тіркелу кодтары.
Пайдаланушыларды тіркеуге негізделіп жасалған программалығ қорғаныс әдісі өте
Өңдірушілер пайдаланушылардың қолдануына не көру режимінде жұмыс істейтін,
Бұл қорғанысты қолдану кезінде авторлар негізінен екі жолмен
Көптеген авторлар тегін программаны жұмысын шектейтін басқа да
Уақыт бойынша шектелген әдістің негізі, ол пайдаланушыларға не
Жүктелу саны бойынша шектелген әдісі кезінде белгілі
Көңіл аударатын бір жай, аталған барлық программалық қамтамаларды
Психологиялық әсер ету әдісі. Тіркелмеген пайдаланушыға экран бетіне
Жоғарыда қарастырылған қорғаныстар орындау өте оңай, сондықтан кең
2 Программалық қорғанысты бұзу техникалары
2.1 Кілттік диск көмегімен қорғанысты айналып өту әдістері
Қорғаныстың техникалық әдісін білетін программист, міндетті түрде қорғанысты
Бұл тарауда негізгі программалық қорғанысты алып тастайтын, өтіп
Кілттік диск көмегімен қорғанысты өтіп кетудің бірнеше әдістері
Кілттік дискі көмегімен қорғанысты алудың басқа әдісі -
Негізгі идея кілттік дискіні имитациялауда. Арнайыланған имитатор –
Дәстүрлі қорғаныс механизмдерін (атап өтейік негізінен DOS операциялық
2.2 Кілттік салыстыруға негізделген қорғанысты бұзу технологиясы
Практикада қолданылатын қорғаныстардың көпшілігі әсіресе түйіндік салыстыруға неігізделгенін
Бұзушыға ең алдымен бұзу үшін қорғалған программаның кодын
Тәжірибиесіз программистердің арасында қорғаныстың алгоритмін талдау -
Бұл адасушылық – ия, шындығында, мықты қорғанысты бұзу
Қорғаныс механизмін тауып алу әдістерінің идеясы қолданушыға шығаралатын
Бұзушының екінші қадамы - шартты өту тармақшасы
Call Cheek Password ; парольды тексеру
Or, ax, ax
J2 Password OK
; белгісіне өту
:
:
Password Ok:…
Программма кез-келген парольді дұрыс пароль ретінде қабылдауы үшін
Программистер арасында парольды араластыру қорғанысты күшейтеді деген ой
Парольді шифплеу көшірмемен қорғанысты жүзеге асырудың кең тарағаны
Интерактивті дисассемблердің қазіргі кездегі версиялары контексті іздеуді жүргізуге
call ? ; or ax,ax; j?
қосу хаьар жолына “Пароль қате” секілді сілтеме сонымен
Барлық айтылғандардан, қорғанысты күшейту үшін қажеттілер:
Қорғаныс механизмі программасын кодтар арасынан іздеуін қиындату;
Салыстыру командалары көмегімен параметрді эталонмен тікелей салыстыруды мүмкіндігінше
Қорғаныс механизмін іздеуді көптеген әдістермен қиындатуға болады. Кейбір
Бұзушы бірінші кезекте іздейтін “Дұрыс пароль”, “Тіркелу нөмірін
Қорғаныс механизмін бөлек модуль, процедуралар немесе функциялар түрінде
Программаның үзіндісін бақылаулық қосындыны есептеу арқылы бақылауға болады
Дұрыс жүзеге асырылатын болса, қорғаныс механизмін шифрлеу жақсы
Жөндеуіштерге қарсы әдістер қазіргі кезде жқндеушілерге қарсы әлсіз
Кодты қарапайым өсіруде қорғаныс механизмін іздеуді қиындатады. Бұзушыны
Қорғаныстың кейбір авторлары үзілуінің мекендерін алмастыруды пайдаланады. Мысалы,
Программаны талдауды қиындатудың басқа да тәсілдері бар. Олардың
Тікелей салыстыру командасын және оның шартты өткелдерді болдырмауға
есептеуде кілттен алынған мәндерді пайдалану;
жасырын өткелдерді пайдалану немесе
оригинал параметрлердің кейбір функциялары сияқты есептелген адрес бойынша
“Жасырын” салыстыруларды анық салыстырулар мен бір қатарда қолдану
Қорғаныс механизмін іздеуді командаларды стандартсыз жүзеге асыру немесе
Барлық ұсынылған тәсілдер тек программаны бұзуды қиындатады немесе
2.3 Қорғаныстың крипторафиялық жүйесінің осалдығы
Қазіргі уақытта, криптографиялық алгоритмдері пайдалануға негізделген программа жасауды
Жаңадан бастаушы авторлардың көбірек тараған қателері –
Шифрланған түрде сақталған пороль(кілт), кейбір этаптарда дешифрланады. Жөндегіштің
Блок бойынша дишифрлеу. Программаның кодын шифрлеуді этап бойынша
Код үзіндісін шифрлеу үшін орындалып жатқан кодтың бақылаулық
Мамандар қорғаныс механизмінің бір бөлігін резидентті модуль түрінде
Криптографиялық әдістерді қысу мен араластыру. Бұл жағдайда шифрланған
Shift xor key = Text
Енді ескеру керек
Shift xor Text=Key
Яғни, ашық тексті білу шифрлеу кілтін анықтауға мүмкіндік
Қорғаныстың криптографиялық жүйесінің сенімсіздігінің сұрақтарын мамандар жеткілікті түрде
1 Тұрақты криптоалгоритмдерді қолданудың мүмкін еместігі. Бұл фактты
тұрақты криптоалгоритмдердің жылдамжығының аздығы;
экспорттық шектеулер. Мысалы, АҚШ-тан ұзындығы 40 биттен асатын
жеке-дара криптоалгоримдерді пайдалану. Біз жеке-дара криптоалгоримдердің әлсіздігінің себебтерін
2 Криптоалгоритмдерді бұрыс жүзеге асыру. Бұрыс жүзеге асырудың
кілтті генерациялау кезіндегі криптотұрақтылықтың кемуі. Мұнда, қорғаныс жүйесі
осал кілттерге бақылаудың болмауы. Көптеген криптоалгоримдер үшін қолданған
осал кілттерге бақылау жасау керек;
бұзатын программалық құралдардан қорғанудың жеткіліксіздігі, яғни жасырын кілтті
кілтті жасау уақытына тәуелділіктің болуы. Криптожүйе бір қалыпты
программаны жүзеге асырудағы қателер (Мерфи заңы айтады: кез-келген
люктердің болуы. Кез-келген программадағы сияқты, қорғаныс жүйесінде де
кездейсоқ сандарды бергіштің кемшіліктері. Кілтті жасау үшін қорғаныс
Мамандар кездейсоқ сандардың жеке-дара бергішін пайдалануға кеңес бермейді.
3 Криптоалгоритмдердің бұрыс қолданылуы;
кілт ұзындығының қысқа болуы;
кілттің деректермен қатар сақталуы.
4 Адамдық фактор.
Кез-келген жүйедегі секілді қолданушы-адамның қатесі өте көп тараған.
Сонымен, қорғанысты қолданатын жүйені жобалап, жүзеге асыру
2.4 Толықтай таңдау шабуылы
Кілтті немесе парольды шифрлеуді бұзудың радикалды әдісіне тоқталамыз.
Автор жүзеге асырудың көп тараған қателерінен қашып, бұзушының
Бірнеше жылдар бұрын, компьютерлердің мықтылығы парольды/кілтті шифрлеуді толықтай
“Брюс Шнайтердің бағалауы бойынша, ұзындығы 128 биттен тұратын
АҚШ-тың атақты крипторафиялық стандарты-DES алгоритмді (Data Encryption Standart)
1997ж 29 қаңтарда RSA Labs фирмасы RC5 симметриялы
Берілген тізбекті келтірілген көптеген символдардың барлық мүмкін тізбегінен
Біріншіден, белгіленіп кеткендей, компьютерлердің қуаттылығы өсіп келеді, егер
Есептеу қауыптылығың аяқ астынан өсуіне байланысты толықтай таңдау
Екіншіден, таңдау жылдамдығын арттыру үшін тиімді алгоритмдер (формальды
Және де таңдау функциясын орындайтын арнайы аппаратура құрылған.
Парольдың хеш-функциясын сақтау толықтай таңдау мүмкіндігін жоққа шығармайды,
Парольды хештеу негізіндегі қорғаныспен байланыстағы бір жағдайға көңіл
Сөздік бойынша шабуы деп аталатын парольды толықтай таңдау
Парольді сөздік сөз негізінде таңдап алатын программалар кеңінен
Қатынас үшін қолданушыға өз бетінше парольды таңдауға рұқсат
Сөздік бойынша шабуылды іске асыратын программалары іздеу және
Қорытынды жасап және қорғанысты күшейту үшін бірнеше кеңестер
Парольмен қорғанысты мына жағдайларда мына жағдайларда қолдануға болады,
Парольдық қорғанысты күшейту үшін парольды таңдау жылдамдығын азайтатын
Программады екі (тәуелді) тексерулерді орныдай отырып, парольік қоғанысты
Егер пароль (парольдың функциясы болса, тіпті жақсы) программа
Қорғаныстың мұндай вариантында, яғни бірнеше параметрлердің біруақытта тексерілуі
3 Программаларды зерттеуден қорғау және программалық-аппараттық қорғаныс
3.1 Программаларды зерттеу құралдары
Қорғалған программларды жүктеуге немесе/және қолдануға қарсы әрекет жасау
Әдетте жақсы хакер тиімді жұмыс істеу үшін бұзуға
Жөндеуіштер. Зерттеудің динамикалық құралы. Компьютерде болып жатқан барлық
Эмулирші жөндеуіш – программа командаларын өздігінен интерпретитетін және
Дисассемблер. Зерттеудің статикалық құралы. Олар алынған кодты әрі
Интерактивті дисассемблер – дисассембрлеу үрдісі кезінде пайдаланушымен тығыз
Бұлардан басқа да көптеген қорғаныс механизмдердің логикасының жұмысын
Оналтылық;
Экспорт/импорт кестелерінің редакторы;
Файлдармен жұмыс істеу операцияларын аңдуға мүмкіндік беретін файлдық
Реестрлерге жолдау протоколын құратын реестр мониторлары;
және басқалары.
Мысалға, файлдық монитор (FileMonitor) көмегімен бұзушы қорғалған
Қазіргі бұзушылардың құралдары өте жақсы дамығаны соншалықты, тіпті
Қазіргі кездегі интерактивты дисассемблер және эмулирші жөндеуіштер
Бұзу әдістері
Кез-келген қорғаныс жүйесін белгілі бір уақыт ішінде бұзу
Егер программа тек статикалық анализ құралынан ғана қорғалса,
Бір байты өзгерту әдісі – бұл әдісте қорғаныс
Ағындағы бақылау ақпаратын қайтаратын функцияның жұмыс нәтижесін күтілетін
Адамның есімін және оған сәйкес кодты енгізуді сұрайтын
Қорғаныс жүйесі керек кодты шифрлап болғанан кейін,
Әрине профессионалды қорғаныс жүйесінде бұл әдістердің ешқайсысы өтпейді.
Бұзудан қорғану әдістері
Бүкіл бұзулардан қорғану үшін әртүрлі әдістер қолданылады.
Негізінен қорғануды екі класқа бөлуге болады. Біріншісі қорғаныс
Кодировканы өзгерту
Күрделірек әдіс ол – орындалатын операцияның сипатына байланысты
Өздігінен өзгеретін программа
Өзінің кодын әркез өзгертіп тұратын программаны талдау өте
Дегенмен, толық өзін өгертетін модульдер жиі кездеседі. Көбінесе
Эквивалентерге айырбастау
Ең қарапайымы – периодты түрде бір тізбектелген командаларды
Программа текстінде, оларға эквиваленті адрестер бөлігі көрсетілген, командалар
Оның негізгі моменттерін қарстырайық
3.1.1 Программаларды дисассембрлеуден қорғану әдістері
Сіз жөндеуіштен қорғайтын қандай болмасын мықты қорғаныс жасасаңызда
Программаны дисассембрлеуден қорғаудың әмбебап әдісі шифрлеу болып
Дисассембрлеуден қорңану үшін программалық кодқа шифрлеуді қолдану кезінде
Ашық кілтпен (RSA алгоритмі, Эль-Гамаль шифрі және басқалар)
Қорғанысты кұшейтетін динамикалық шифрлеу және көпөтілетін шифрді
Тәжірибе жүзінде өзін жақсы жағынан көрсеткен программалық кодты
Тәжірибиеде кең қолданылатын әдістердің бірі программалық кодтын орындалу
код участкілерінің орын ауыстыруы;
ақиқат кодтан (кері байланыс) бүкіл мүмкін функциялар;
немесе бір учаскінің крдын генерациялау үшін алдыңғы (немесе
Қорғаныстың қызық әдісі – ол программаның стандартты емес
Дисассембрден қорғану үшін әдейленген бірнеше әдістері қолдану қажет:
Программалық кодты өзгерту дисассемблердің белгілі бір нұсқаны немесе
Керек кодты шифрлау және қорғаныс жүйесімен, оған басқаруды
Кодтын өзгеруі программаның өзімен жүзеге асырылады;
Басқаруды беру командаларын жасыру дисассемблердің басқаруды берудің графын
Басқаруды берудің жанама әдісі;
Программа кодында өту адресінің өзгеруі. Жабатын код.
Сонымен қатар дисассемблерді жүктелетін модульдің стандартты емес форматы
Векторларды қайта орнату(int 21h – int 60h). Нәтижесінде
3.1.2 Программаларды жөндеуіштерден қорғану әдістері
Жөндеуіштермен күресу әдістерін жақсылап түсіну және бұл әдістердің
Жөндеуішті екі механизмі бар:
тоқтатылудың бақылаулық нүктесі және
программалардың трассировкасы
Бірінші механизмде, программалық кодқа тоқталудың бақылаулық нүктесі деп
Сонымен, орындалып жатқан код программасына жөндегіш көмегімен программаларды
Бұл фактыны қорғаныс авторлары табысты пайдаланып келеді: код
Модификацияланған кодты табу үшін келесі дәстүрлі әдістер қолданылды:
критикалық жерді бақылаулық қосындыларының есептелуі;
кейбір фрагменттерді расшифровкалау үшін барлық кодтардың бақылаулық қосындыларын
бақылаулық барлық кодтардың немесе критикалық жердің
бақылаулық байттың орналасу орнын анықтауға мүмкіндік беретін түзетуші
эталонды уақытпен салыстырғандағы критикалық жердің орындалу уақытына бақылау;
программа бөлігінің орындалу уақытына тиісті бақылау;
және басқалары.
Нақты режимдегі жөндеушілерге қарсы әрекеттің қызықты әдістері жөндеушіге
Стек жасағышты пайдалануға негізделген әдістердің тобы бар.
Олардың бірі болып келесі саналады. Критикалық жерді орындау
Басқа тәсіл-стекте (стекті толықтай пайдаланып) рограмма жұмысына қажет
Екінші жөндегіш механизмді – программа кодын трассировкалауды қарастарамыз.
Тарнсировкалау – бұл программаның қадам бойынша орындалуы. Траcсировкалаудың
Сонымен бірге int3 арнайы жағдайын өңдеуге аналогты түрде
Сол себебті қарапайым тексерулермен қатартранссировкалау жалауы орнатылған ба-транссировкалауға
Танссировканың жалауының орнатылуын процессордың аппараттық ерекшеліктерінен шыға отырып
Программаның қадам бойынша орындалуынан қорғауды күшейту үшін авторлар
Қазіргі заманғы операциялық жүйелер мен жөндеушілер тоқталудың аппараттық
Бірақ-та, аппаратты жөндегіштегі программаның жұмысын табуға мүмкіндік беретін
Бүгінгі аңда қорғаныс механизмдерін бұзу үшін күшті эмуляторлайтын
Бұған сән баяғыда өтіп кеткен. Жөндегішпен күресудің жалғыз
Тәжірибиелі хакер егер қорғанысты талдаудан жалықпаса, онда ол
Программаның қадамдап орындалуын болдырпайтын ең тиымды әдістердің бірі
Операциялық ортаны өзгеруін басу кезінде программа не өзі
Бақылау нүктелерін орнатуға қарсыәрекет – жөндеуіш не бақылау
Қолданушымен интерфейсті бұзу мынаған әкеледі, қолданушы программаның
Өз программа астыларына өтуді өңдеуіштер үзулерінен жүзеге асыруға
Пернетақтадан үзулерге тиым салу нақты режимде жөндеуіштердің
Периодты түрде программаның жекеленген бөліктерінің бақылау қосындысын, олардың
Үзулерді қайтатағайындауды қолдану: int 21h және int
int 08h/int 1Ch арқылы қорғалған программаның шифрін ашу.
DRx регистрлерін өзгерту жөндеуіштер үшін қайғылы нәтижелерге әкеп
Пернетақта буфері арқылы ақпаратты тасымалдау жөндеуді қиындатады.
Ұстап алынған векторлады қандайда бір мәнге тексеру.
Код участкісін трассировка жалауын көтеріп өту ұсынылады. Бұл
Программаны заңсыз көшіріп қолданудан сақтанудың дәстүрлі тәсілдерінің
Осындай түрдегі тіркеуі бар программаларды қасақан бұзған кезде
Delphi-де қарапайым мәтіндік рекдактор жасалынады да, оған программаны
3.1 сурет. Коданы енгізу терезесі
Ашылған терезеге қажетті кодты енгізу керек. Егер код
3.2 сурет. Кода жалған болса шығаты хабарлама
Ал егер дұрыс болса, онда «дұрыс код» деген
3.3 сурет. Кода дұрыс болса шығаты хабарлама
Бұл мысалда тіркеу коды программаның ішінде ашық түрде
{Программаны тіркеу}
procedure TFrameForm.MenuRegisClick(Sender: TObject);
begin
RegFrm := TRegFrm.Create(Application);
with RegFrm do
try
if ShowModal = mrOk then begin
// Кодты тексеру
if RegisKey.Text = 'NFTR-UYT-123-GTRW' then
ShowMessage('Successfully!') {дұрыс код}
else
ShowMessage('Not successfully!'); {теріс код}
end;
finally
free;
end;
end;
Ал программаны қасақана бұзушы немесе хакер осындай кодты
3.4 сурет. Кода хабарламасы
Содан программаның дизассембирленген кодының ішінде қолданылатын символдық жолдардың
3.5 сурет. Кода дұрыс болса шығаты хабарлама
Міне, программаның тіркеу кодын оп-оңай тауып алуға болады.
3.6 сурет. Кода дұрыс болса шығаты хабарлама
Осы суреттен көрініп тұрғандай, call 00404258 коды тексеру
jne 0045EC23. Енді хакер осы команданы
Келесі суретте программаның бұзылғаннан кейінгі дизассембирленген коды көрсетілген.
3.7 сурет. Кода дұрыс болса шығаты хабарлама
Мұнда көрініп тұрғандай хакер алдынғы jne 0045EC23
Бұдан шығатын қорытынды: программаның тіркеу қодын программа ішінде
Программаны тіркеу функциясын құрастыру кезінде жіберілінетін қатенің тағы
3.8 сурет. Кода дұрыс болса шығаты хабарлама
3.9 сурет. Кода дұрыс болса шығаты хабарлама
Программаны қасақана бұзу кезінде қолданылатын тәсілдердің бірі -
{Проверка на трассировку}
procedure TForm1.Button1Click(Sender: TObject);
var Flags: Word;
begin
Flags := 0;
asm
pushf
pop ax
mov Flags,ax
end;
if (Flags and $100) = 0 then
Showmessage('Нет трассировки')
else
Showmessage('Есть трассировка!')
end;
Келесі суретте антитрассировка тәсілі қолданған программаның дизассембирлік коды
Жалпы программаны қасақана бұзудан немесе зерттеуден қорғану үшін
Программаның кілттік кодын анық түрде программада сақтамау керек.
Тіркеу кодын тексерген соң тексеру нәтижесін дереу шығармау
Жалпы программаны қасақана бұзудан немесе зерттеуден қорғану үшін
3.10 сурет. Кода дұрыс болса шығаты хабарлама
Программаның кілттік кодын анық түрде программада сақтамау керек.
Тіркеу кодын тексерген соң тексеру нәтижесін дереу шығармау
Тексеру нәтижесін тек бір айнымалыға ғана меншіктемеу керек.
Тіркеу кодтарын крифтографиялық алгоритмдермен шифрлеп қолдану қажет.
Программаны заңсыз көшіруден сақтану үшін ол программаны компьютерге
{Серийный номер диска «С»}
function GetSerialNumber:String;
var
SerialNum: pdword;
a, b: Cardinal;
Buffer: array [0..MAX_PATH-1] of char;
begin
New(SerialNum);
if GetVolumeInformation('C:\', Buffer, SizeOf(Buffer), SerialNum, a, b, nil,
Result := IntToStr(SerialNum^);
Dispose(SerialNum);
end;
{Бисотың көрсеткіштерін анықтау }
procedure TForm1.Button2Click(Sender: TObject);
var
Registryv : TRegistry;
RegPath : string;
sl : TStrings;
i:integer;
begin
RegPath := '\HARDWARE\DESCRIPTION\System';
registryv:=tregistry.Create;
registryv.rootkey:=HKEY_LOCAL_MACHINE;
sl := nil;
try
registryv.Openkey(RegPath,false);
sl := ReadMultirowKey(RegistryV,'SystemBIOSVersion');
except
end;
for i := 0 to sl.Count - 1
memo1.Lines.Add(sl[i]);
Registryv.Free;
if Assigned(sl) then sl.Free;
end;
3.2 Программалық-апараттық қорғаныстың тағайындалуы
Программалық-аппараттық қорғаныс программалық қамтаманы заңсыз қатынас пен заңсыз
Аппараттық құрылғы (аппараттық бөлім);
Программалық модуль (программалық бөлім).
Сол себепті әдетте программалық-аппараттық қорғаныстың жүйесі туралы айтады.
Мұндай механизмнің құны программалық қорғаныс құнынан асып түседі
Негізінде, программалық-аппараттық қорғаныс заңсыз тарату мен қолданудан қорғайтын
Деректерге заңсыз қатынастан қорғау жүйесі программалық қамтамамен жұмыс
Қазіргі заманға аппараттық құрылғыларды (кілттерді) заңды қолданушы туралы
Ал программалық-аппараттық қорғаныстың жүйелері қолданушы аутентификациясынан бөлек, қосымшаның
Сол себепті заңсыз қатынастан қорғаудың программалық аппараттық жүйелері
Программалық-аппараттық қорғаныстың жүйелері іс жүзінде кеңінен қолданылады және
3.2.1 Заңсыз қатынастан қорғау
Ақпаратты заңсыз қатынастан қорғаудың негізгі сәттерін қарастырамыз. Жұмыс
Ақпаратқа қатынас тек рұсаты бар қолданушыда ғана болады;
Әрбір заңды қолданушы тек өзінің ақпараттарымен жұмыс ісиейді
Әрбір заңды қолданушы оған орындаауға рұқсат етілген операцияларды
Мұндай жұмыс тәртібін ұйымдастыру үшін ең алдымен заңды
Қолданушыны авторизациялау үш этаптан тұрады:
Қолданушының идентификациясы;
Қолданушының аутентификациясы;
Қолданушының тікелей авторизациялануы.
Қолданушының идентификациясы (Identification) – бұл бір жағынан, қолданушыға
Басқаша айтқанда, идентификациялау – бұл, қолданушы өзін атайтын
Қолданушының аутентификациясы (анғ autentication-орнату) – эталонды идентификатормен
Қолданушыны авторизациялау – қолданушының құқын орнату.
Авторизацияланған қолданушы (авторизацияланған адам) – ақпаратымен жұмыс істеуге
Заңды қолданушы үшін авторизациялау процесікезінде қолданушының құқығыанықталады, яғни
3.2.2 Қолданушының идентификациясы
Қолданушыны идентификациялау мыналарға негізделуі мүмкін:
Кейбір құпия ақпараттарды білуге (пароль, код);
Кейбір арнайы пәнді немесе құрылғыны иеленуге (магнитті карточка,
Биометриялық сипаттамаларға (саусақ іздері, көз торшалары, дауыстың спектралды
Кейбір құпия ақпараттарды білуге негізделген жүйелер
Мұндай жүйелерге ең алдымен жоғарыда қарастырылып кеткен
Кейбір пәнді немесе құрылғыны иеленуге негізделген жүйе.
Дәстүрлі түрде мұндай құрылғылар ретінде магнитті карточкалар қолданылады.
Қолданушының ерекше коды жіне де радио қабылдағышпен қамтылған
Смарт – картоларды қолданатын (Smart Card – интеллектуалбды
Смарт-картаны пайдалануға негізделген қорғаныс технологияларының көптеген мамандары, прогресивті
Смарт-карта технологияларының дамуына параллель бүгінгі кезде электрондық кілттерді
Биометриялық сипаттамаларға негізделген жүйелер.
Жекеліктің идентификациясы үшін жүйе адам денесі тұрғызылуының ерекше
Қазіргі уақытта, биометриялық сипаттамаларға негізделген жеклікті идентификациялауға мүмкіндік
Көз торшалары сканерлері қолданушының көзінің торшаларының қан тамырларының
Дауысты верификациялау құрылғысы сөйлеушінің вокальды диапазонының математикалық моделін
Қол геометриясын оқығыш құрылғы саусақтардың ұзындығы мен ені
Биометриялық жүйелерді іске асырудың қиын екені көрініп тұр.
3.2.3 Қолданушының аутенфикациясы
Қолданушының аутентификациясы әдетте мына екі схеманың бірі бойынша
Қарапайым PIN аутентификациясы кезінде қарапайым PIN код кілтке
Қорғалған PIN-ді аутентификациялау процесі келесі схема бойынша жүзеге
Қорғалған қосымша PIN аутентификациялауға сұранысты кілтке (смарт
Кілт 64 разрядты кездейсоқ санды қайтарады;
Қосымша бұл санды кілт иесі енгізген PIN кодпен
Кілт (смарт карта) кері түрлендіру орындайды да, нәтижені
Сәйкес болған жағдайда аутентификациялау сәтті өтті деп саналады
3.2.4 Электрондық кілттер
Электронды кілт – бұл физикалық құрылғы. Электронды кілт
Мұндай құрылғылар кең таралуына кедергі болған бір ыңғайсыз
Жаңа стандарттар мен технологиялар (көбінесе, USB universal serial
Электронды кілттің жадысында ерекше ақпарат сақталады. Қорғаныс
Электронды кілт жадысында қолданушы туралы ақпараттан бөлек (тіркеу
Программаның сериялық нөмірі;
Нөмірдің версиясы;
Шығару (сату) мерзімі және т.б.
Программаның демонстрация режимінде (немесе кейбір функцияларды блокировкалау) жұмыс
Қазіргі кездегі электрондық кілттердің тамаша қасиеті – кілт
Бүгінгі таңда құрушылардың күші программалық қамтаманың негізгі функцияларының
Қолданушы үшін программалық қамтаманы демострациялы режімнен толықтай функционалдау
Кейбір құрушылар электронды кілт жадасын қолдануды қатынас жасау
Электронды кілттер сонымен қатар желілерде лицензиялауды қамтамасыз етеді.
Лицензия – бұл программалық сатып алу кезіндегі программаны
Бұл үшін элекртонды кілт жадасында бөлек, жазудан қорғалған
Қазіргі кездегі электронды кілттер. Программалық – аппараттың қорғанысты
eToken электронды кілті қолданушының аутентефикациясының аппараттық жүйесінде тұрғызуға
Қорғанысты құрушыларға Developer’s Kit құру комплекті ұсынылады. Құру
3.2.5 Программалық – аппараттық қорғанысты бұзу және қорғау
Практикада негізінен программалық – аппараттық қорғанысты бұзудың екі
1 Қорғаныстың программалық бөлігін істеп шығару (бұзу);
2 Электронды кілтті эмулирлеу.
Бұзудың бірінші тәсілінде, қорғалған қосымшадағы қорғаныс механизмімен байланысты
Эмулятор - әдетте кейбір сыртқы құрылғылармен іске асырылатын
Электронды кілтті Эмуляциялаудан қоғау үшін ақпараттар алмасуының хаотикалық
Әдетте эмулятор қорғалған қосымша мен өзара АРІ шақыру
Драйвер жұмысын кілтпен алмастыру көмегі мен эмуляцияға қарсы
Электронды кілттің эмуляторын жүзеге асыру қиын болғандықтан тек
Микроконтролерлер қорғалған қосымшаға ақпараттық алгоритм көмегімен түрлендірілген кірісті
4 Экономикалық бөлім
4.1 Жалпы жағдай
Бүгінгі таңда программалық қамтамалар кәсіпорындарда экономикалық
Кәсіпорында программалық қамтама арқылы ақпарат көмегімен ұйымды, фирманы,
Программалық қамтаманы қолдану арқылы бәсекелестік күресте үстемдік
Бұл дипломдық жобада ақырғы бұйым программалық қамтама.
Кәсіпорынның басты мақсаты барынша жемісті нәтижеге жету. Қазіргі
Кәсіпорын қажетті нәтижеге жетуі үшін бірнеше сатылардан өтуі
Өндірісті дайындау дегеніміз-ғылыми зерртеу және тәжірибелі құрастырушы жұмыстар
Өндірістік үрдіске - қажетті сапалы мамандарды жұмысқа алу,
Өнімді өткізуге-қораптау, тиеу-түсіру, тасымалдау және қоймалау жұмыстары; тұтынушыларға
Өндірісті басқару ісі бірнеше функциялардан тұрады: ұйымдастыру; бақылау;
Бұл кәсіпорын өзгелер сияқты өзін қоршаған ортада нәтижелі
Микроқоршам элементтері болып: жүйенің құрылымдық функционалдық жіктері, басқарма,
Макроқоршам элементтеріне: экономикалық, демографиялық, жағрапиялық, саясаттық, құқықтық, қоғамдық
Өндірісті басқару кезінде түрлі саясатар: тауарлы және иновациялық,
Бұл жобадағы басқару жүйесінің құрылымы функционалдық принципке, шығарылатын
Бұлай басқару артықшылығы құрылым қарапайым болады және әрбір
Шағын кәсіпорынның экономикалық жағдайын бағалай отырып, оған талдау
Бұл жобада әртүрлі мамандар еңбегі пайдаланылады. Олар атап
Қарастырылып отырған жобада кешендік жұмыс үлгісі
Жобада кешендік жұмыс үлгісі қолданылғандықтан сменалар қолданылды, олардың
Сменалар және тағы басқа мәселелерді шешіп алған соң
- қызмет көрсететін техникалық құрал-жабдықтар құрамы;
- жұмысшыларға мамандықтарына қарай жұмыстар бөліп беру;
- жұмыстың жоспарланған және ескерілетін нормалары;
-еңбектің санитарлы-гигиеналық, физиологиялық және психологиялық жағдайлары.
Кәсіпорында жұмыс істейтін мамандар мен жұмысшыларға жұмыс әлпісін,
әрбір программалық қамтаманың тиімділігін анықтау;
жылдық жоспардың мақсаттарын іске асыруды бақылау;
маркетинг саясатын түгелдей бақылау.
Кәсіпорын өмірінде маркетингтің алатын орны ерекше. Маркетинг
Кез-келген кәсіпорын сияқты, бұл кәсіпорынның да өзінің алдына
Жоспар негіз қалаушы құжат, бұл жерде кім,
Кәсіпорында жоспардың келесідей түрлерін қолдануға болады:
фирманың орта және ұзақ мерзімді сара саясаты;
орта ұзақ мерзімді маркетингтік саясатын жоспарлау;
жеке операциялардың әрқайсысына бағдарлама жасау;
Жоғарыда аталған жоспарларды құрғанда маркетингтің келесідей элементтерін ескеріп
негізгі жеткізушілер, фирма бәсекелестері, маркетингтік табыстырушылар;
үкіметтік (қаржы, баспасөз, үкімет және заң орындары) және
сыртқы құрылымдық факторлар (мәдениет, ғылым және техника,
марктинг жүйесінің басты субьектілерінің өзара қатынасы.
Кәсіпорын жұмыстарын жоспарлай отыра біз мынандай ұтыстарға
көптеген, жұмыстар бір уақытта байланысты адамдарджың күш
уақиғалардың болашақ дамуын анықтау;
уақыты келгенде орын алатын өзгерістерге дайын болу;
күтпеген жағдайлар туғанда, тиімсіз қимылдарды минимумға келтіру;
орындаушылар арасында еңқолайлы іс-қимыл;
фирма мақсаттарын әртүрлі түсінушіліктен болатын жеке адамдар арасында
Кәсіпорынның ағымдағы жағдайына келетін болсақ, күрделі қаржы-1040,745
4.2 Экономикалық есептеулер
Жобалауға кететін шығындар
Әдебиеттік зерттеуді өткізу. Мұнда мынандай мәселелер шешіледі: қажетті
4.1 кесте.
Жүргізілген зерттеулер
Маман Жалақы, мың тг. Зерттеуге кеткен уақыт, ай
Меңгеруші 300 1 300
Бағдарламалаушы 250 1 250
ІТ маман 200 1 200
Аға инженер 120 1 120
Жүйетехник 100 1 100
Қорытынды:
970
Патенттік зерттеуді өткізу. Бұл кестеде зерттеуге қатысатын адамдар
4.2 кесте.
Патенттік зерттеуді өткізу
Маман Жалақы, мың тг. Паттенттік зерттеуге кеткен уақыт,
Меңгеруші 300 2 600
Бағдарламалаушы 250 2 500
ІТ маман 200 2 400
Аға инженер 120 2 240
Жүйетехник 100 2 200
Қорытынды: 1940
4.3 кесте.
Іс-сапарларға бару
Маман Жол ақы, мың тг. Қонақ үй
Мың тг. Мерзім, ай Жалақы мың тг.
Меңгеруші 90 70 1 300 460
Бағдарламалаушы 90 70 1 250 410
ІТ маман 90 35 1 200 325
Аға инженер 90 35 1 120 245
Жүйетехник 90 35 1 100
225
Қорытынды: 1665
Іс-сапарларға бару. Іс-сапарларға бару – ол мамандардың білімдерін
Іс-сапарларға бару үшін қажетті келесі мәселелер шешілді: қажетті
Желіні ұйымдастыру, бағдарлауыштарды және басқада құралдарды баптау. Мекемеге
4.4 кесте.
Желіні ұйымдастыруға және баптауға кеткен шығындар
Маман Жалақы, мың тг. Жасауға кеткен уақыт, ай
Меңгеруші 300 2 600
Бағдарламалаушы 250 2 500
ІТ маман 200 2 400
Аға инженер 120 2 240
Жүйетехник 100 2 200
Тестер 80 2 160
Инженер механик (құралды жасағанда) 90 2 180
Инженер электрик 100 2 200
Экономист 80 2 160
Бухгалтер 75 2 150
Компьютерші 70 2 140
Қорытынды:
2930
Ережеден артық істегені үшін жалақы.
Д=(А+Б+В+Г)*2%
мұндағы, А – әдебиеттік зерттеу үшін кеткен шығын,
Б – патенттік зерттеу үшін кеткен шығын,
В – іссапарға бару үшін кеткен шығын,
Г – жүйені жасауға кеткен шығын.
Д=(970+1940+1665+2930)*2%=150.1≈150 мың тг.
Жазғы демалыс үшін жалақы. Қазақстан Республикасының еңбек туралы
(4.2)
мұндағы А,Б,В,Г - 4.1,4.2,4.3,4.4 – кестелерінің қорытынды сомалары.
мың теңге
Сонымен жазғы демалыс үшін 637.9 мың теңге бөлінеді.
Ауырғандарға төлемдер. Ауырғандарға төлемдерді барлық кестелердің қорытынды сомаларының
(4.3)
мың теңге
Әлеуметтік салық. Алдымен (А÷Е) сомасынан жеке зейнеткерлер қорына
C =0,11*[(А+Б+В+Г+Д+Е+F)-0,1*(А+Б+В+Г+Д+Е+F)]
832мың;
Демек әлеуметтік салық 832 мың теңге болады.
Жобалау және жүйені жасау тобына жалға үй алу
70м2 - ол 120 мың
Жабдықтарды сатып алу және амортизациялық аударым шығындары.
4.5 кесте.
Жабдықтарды жалға алу
Жабдық Сан
Айлық төлем, мың тг. Пайдаланатын уақыт, ай Жалпы
Компьютер 11 15 10 1650
Телефон 3 20 10 600
Қатынас құру нүктесі 2 15 10 300
Printer 3 in 1 11 30 10 3300
Модем 3 15 10 450
Қорытынды: 6300
Амортизацияның Аа=40% дербес компьютерге белгіленген мөлшерінде амортизациялық аударымдар
Аа=0,4*6300=2520 мың тг.
Материалдар. Осы жобаға қажетті материалдар ABDI дүкендер желісінен
Электроэнергия үшін төлем. Бүгінгі күні электроэнергия үшін
Менін есептеуімше күніне шамамен 10000 Вт/сағ тұтынады екенбіз.
240 Вт * 13 теңге * 10 ай
Телефон үшін төленетін төлем. Телефон үшін төлемдер менің
Т=1500 теңге*10ай= 15 мың теңге
Интернет үшін төлем. Бүгінгі күні интернет үшін төлем
И=8000 теңге*10 ай=80 мың теңге
Коммуналдық төлемдер. Жүйенің дайын өнім ретінде болғанына дейін
а) жылуға кететін айлық шығын мына формуламен есептелінеді:
Шж=6*V*Ш*720б,
мұндағы, V – үйдің жалпы көлемі, м3,
Бөлменің биіктігі – 3м.
Ш=30ккал – текше метрге сағатына кететін жылудың мөлшері
б – жылудың бағасы; 2*10-4тг бір ккал/сағ үшін.
Шж=6*210м3*30ккал*720*2*10-4мың тг=5 мың тг
б) Офистің ыстық суға кететін шығындары:
Шыс.су=С*Б,
мұндағы, С – ыстық судың айлық қажет мөлшері,
Б – ыстық су үшін айлық бағасы.
Ыстық суды жеті ай пайдаланатындықтан жетіге көбейтеміз.
Ыстық суды 11 жұмысшының айлық қолданатын мөлшерін 25
/1м3=1000дм3=1000л/.
Шыс.су=6,25м3*7 ай*0,250 мың тг=10,937 мың тг≈11 мың тг.
в) суық суға және канализацияға кететін шығындар есебі:
СНиП бойынша әр адамға ауысымда орташа 50л немесе
Суық суды әр текше метр мөлшерінің бағасы –
Шсуық.су=С*Б+Ск*Бк,
мұндағы, С – суық судың айлық қажет мөлшері,
Б – суық су үшін айлық бағасы.
Шсуық.су=6,25м3*10 ай*0,022 мың тг+11 адам*0,01м3*25 күн*10 ай*0,0122мың тг=1,38мың
Еңбек қорғау шығындары. Берілген дипломдық жоба есептеу техниканың
Еңбек қорғау МЕСТ-тарға сәйкес болуы керек. Ол
Бағдарламаны енгізу. Бағдарламаны енгізу жұмыстары. Желіні жұмысқа қосу
4.6 кесте.
Желіні жұмысқа қосу
Маман Жалақы, мың тг. Мерзім, күн Жалпы жалақы,
Аға инженер 120 2 12 1
Жүйетехник 100 2 10 0,8
Компьютерші 75 2 7,5 0,62
Қорытынды: 2,42
4.7 кесте.
Қателерді жөндеу жұмыстары
Маман Жалақы, мың тг. Мерзім, күн Орнату саны
Аға инженер 120 4 400 10
Тестер 80 4 400 6
Қорытынды: 16
Қателерді жөндеу жұмыстары. Желіні жұмысқа қосып болғаннан кейін,
Бағдарламаны жарнамалау. Әлем тәжірибесі бойынша кейбір салаларда жарнамалауға
Барлық шығындар. Барлық шығын барлық баптардағы шығындардың
Ш=19984,4 мың теңге
Фирмалық баға:
Бф=Ш+П,
мұндағы, Ш – барлық шығындар қосындысы,
П – шығынның 20%-ы болып табылатын пайда,
П=19 984,4*20%=3 996,8
Бф=19 984,4+3 996,8=23 981,2≈23 981
Кірістер. Тура кірістер. Қызметтің құны – 1000 мың
1000 мың тг. +12%ҚҚС= 1 120 мың теңге
Қызметтің жалпы құны – 1 120 мың теңге
42- мекемеге орнаттық
1 120 мың тг.*42 көшірме=47 040 мың
Жеке кәсіпкерлік үшін кіріс салығы
Кіріс салығы = Жалпы кіріс* 10%
Кіріс салығы = (47040 мың тг)*10% = 4704
Сондықтан жалпы кіріс = 42 336мың тг
Жалпы пайда. Жылғы жалпы пайда – бұл жылғы
Жылғы жалпы пайдадан 20% заңды тұлғалар табыстық салық
Кіріс - 42 336мың тг
Шығын – 23 981мың теңге
Жалпы пайда =кіріс-шығын =42 336 мың тг.- 23
Таза пайда = 18 355 мың
Тиімділік. Бағдарламадан түскен жылғы таза пайданы барлық шығынға
, Тиімділік - 61%.
Әлем тәжірибесі бойынша тиімділік мөлшері 12% кем болмауы
Шығынды өтеу мерзімі. Өтеу мерзімі тиімділікке кері шама.
жыл
Берілген бағдарламаның шығынын 1,7 жылда өтелуі тиіс.
Техника – экономикалық көрсеткіштер.
4.10 кесте.
Техника–экономикалық көрсеткіштер
Көрсеткіштер Мәні
Жалпы шығын 21 млн. тг.
Жобаны жасаған адамдар саны 11 адам
Жобаға қажет уақыт 10 ай
Жобаның бағасы 1 млн тг.
Жобаның енгізілетін саны 42 дана
Жылғы кіріс 42 млн. тг.
Жылғы пайда 21 млн.тг.
Таза пайда 17 млн. тг.
Тиімділік 61%
Шығынның өтем мерзімі 1,7 жыл
5 Еңбек қорғау
5.1 Еңбекті қорғау туралы жалпы түсініктер
Бұл дипломдық жұмыс 2007 жылы 15 тамызында №251
Еңбекті қорғау дегеніміз тиісті заң және басқа да
Еңбектің қауіпсіздігі – жұмыс істеушілерге қауіпті және зиянды
Еңбекті қорғау МЕСТ 1.5-2001 стандарттарына сәйкес негізгі
5.2 Санитарлы талаптар және ережелер
Санитарлы талаптар ол зиянды факторлардың әсерлерін жұмыс жасаушыларға
Әдетте зиянды факторлардың жұмыскерлерге тигізген әсерінің салдары олар
Байланыс саласындағы жұмыс орнында кездесетін зиянды факторларға келесілерді
Еңбек гигиенасы ол адам ағзасына еңбек процестері мен
Бұл зерттеудің мақсаты келесідей:
- Гигиеналық нормаларды негіздеу.
- Еңбектің тиімді, қолайлы жағдайларын жасау.
- Өндірістік ортаны сауықтандыру.
- Адамның еңбек қабілетін арттыру және еңбек өнімділігін
Дипломдық жұмыста қалалық телефон желілерінде радиорелейлік байланысты орнату
Ұялы телефон байланыс жүйесінің шағылу көзі таратқыш блок,
Инженердің еңбек жұмысының үрдісі - ол ұялы телефон
Жылу әсері сипаттамасының денеге әсер ететін үрдісі-
Қозудың күшеюі естен адасу, бас ауруынан талманың ұстауы,
Электромагниттік өріс дене клеткасына әсерін тигізеді немес молекула
5.3 Электр қауіпсіздігі
Электр тогын электромагниттік өріспен қорғау, электр тогының адам
Электр тоғының адам ағзасына әсері электрмен зақымдану есебінен
Электр қауіпсіздігін сақтауға қажетті техникалық шаралар:
а) жұмыс жасау үшін арналған бөлімде құрылғыларды жұмыcтан
б) жұмыс жасалынатын электр құрылғыларының бөлімдерінде кернеудің жоқтығын
в) жылжымалы жерлендіргіштің жерлендіргіш шина сымына қосылу.
Ұйымдық шараларға:
а) жұмысты құжат арқылы немесе басқа жолмен ұйымдастыру,
б) жұмыс барысын бақылау
5.1 кесте.
Температураның нормалық шамасы
Жыл мезгілі Температура, С0 Нақты ылғалдылық, %
Жыл мезгілінің
суық ызғары 22 – 24 40 –
Жыл мезгілінің
жылы ызғары 23 - 25 40 -
Температураның нормалық шамасының ылғалдылығы және жұмыс аймағы
Әсер ету факторы электр тогымен жарақаттанғанда негізгі міндетті
5.1 сурет. Электр тогына қатысты жарақаттануы
Ұялы байланыс үлгіқалпын таңдау барысында толқын таралуының осы
Ұялы телефонның сәуле шығаруы өте күрделі модулирленген құбылыс.
5.2 кесте.
300 МГц – 300 ГГц жиілік диапазон энергиясының
Әсер уақыты
Т сағ 8,0 7,5 7,0 6,5 6,0 5,5
ЭНЫ мкВт/см2 25 27 29 31 33 36
300 МГц – 300 ГГц жиілік диапазон энергиясының
Тұрақты және айнымалы ток адам ағзасына 500 В
Зерттеулердің көрсетуі бойынша адамға ең жағымсыз ток
Егер тасушы ток бөлігі адам денесіне тисе, токтың
- бас – аяқ;
- қол – қол;
- оң қол – аяқ;
- сол қол – аяқ;
- аяқ – аяқ.
Жарақат алу дәрежесінің деңгейі ол адам ағзасының токтан
5.2 сурет. Кардоциклдың бір период ұзақтығы 0,075
Ток және кернеу арасында кернеудің сызықты емес тәуелділігі
Электродтарға тиетін және қалған дене бөлігінің ішкі кедергісі
5.4 Өрт қауіпсіздігі
Аппаратура орналасқан бөлмелердің айналасындағы артық жылу мөлшерін азайту
Құрылымдардың белгілі бір уақыт бойы өз функцияларын сақтап
T=345lg(8τ+1) стандартты температурасы
Т – қоршаған ортаның стандартты температурасы, °С.
τ – жану уақыты, мин.
Өрт сөндірудің қондырғылары стационарлы, жартылай стационарлы және жылжымалы
Өрт қауіпсіздігін есептеу бөлімі
Т=345lg(8 )=2.538(8 )=2.538
Бұл жерде мен мұнараның жану уақытын 10сағат деп
Электр қауіпсіздігін есептеу бөлімі. Электр қауіпсіздігінің алдын алудың
Мұнда электр тогынан зақымдануға қарсы қолданатын құрылғылар жоғарыда
Серверлік бөлмеде кернеуі 220В бірфазалы желіден қоректенетін жабдықтар
Ih=U/Rh=220/1000=0,22А,
мұнда Rh – адам денесінің орташа кедергісі (Ом);
Ih – ток шамасы (А).
Осы теңдеуде Rh=1000 Ом, бұл адам өміріне өте
Осылай, жерлендіру кәсіптік бөлімдердің ажырамас бөлігі және ол
Жерлендіру серверлік бөлме нұсқасы бойынша орналастырылған бұрыштардан тұрады.
Есептеу мақсаты: серверлік бөлменің жерлендіруші құрылғысы үшін өлшемі
а) ПУЭ сәйкес жерлендіретін құрылғының топырақтың салыстырмалы кедергісін
Rз = ρгр* Rэн/100 = 300*4/100 = 12
б) Тік жерлендіргіштердің санын анықтаймыз:
пв = Rв/(ηж*Rа) = 124/(0,75*12) = 13,7
Rж келесі формуладан анықтаймыз (4.2.4):
(5.4)
t/=t0+0,5(l=0,7+0,5(3=2,2 м
(ч=(гр(Кс=300(1,5=450 Ом(м.мм2
мұнда t0 – горизонталды жерлендіргіштің орналастыру тереңдігі;
l – бұрыш ұзындығы;
кс – маусымдылық коэффициенті.
Құрылғыда 14 жерлендіргіш қолданамыз.
в) Горизонталды жерлендіргіш ұзындығын анықтаймыз:
lг = 1,05пе * а = 1,05*14*4 =
d = 0,95b = 47,5мм
мұнда а – бұрыштар арасындағы арақашықтық;
b – бұрыштың сөре ені.
Rж келесі формуладан анықтаймыз:
(5.9)
г) Горизонталды жерлендіргіштің ағылуына қарсы кедергіні анықтаймыз:
(5.10)
мұнда (есеп=660 Ом(м/мм2.
Осыдан келесі есептеу шығады:
(5.11)
д) Қолдану коэффициентін ескере отырып, горизонталды жерлендіргіштің ағылуына
R’г = Rг/ηг = 22,1/0,6 = 36,9 Ом
е) Горизонталды жерлендіргіш кедергісін ескеріп, ағылуға қарсы кедергі
R’в = (R’г * R’з) * (R’г -
ж) Тік жерлендіргіштердің санын анықтаймыз:
пв = Rв / (ηв * R’в )
Соңында, орналастыруға 10 тік жерлендіргіш қолданамыз.
з) Жасанды жерлендіргіштің кедергісін анықтайық:
(5.15)
(5.16)
ҚОРЫТЫНДЫ
Бұл дипломдық жұмыста программалық қамтаманы заңсыз көшіруден (бейнелеуден),
Дипломда сонымен бірге программаны заңсыз қолданудан қорғаудың альтернативты
Айта кетейік, дипломда қозғалған тақырыптар шындығында өте кең
ӘДЕБИЕТТЕР ТІЗІМІ
Ливак Е.Н. Защита информации: Учебное пособие. В 4-х
Ливак Е.Н. Защита информации: Учебное пособие. В 4-х
Ливак Е.Н. Защита информации: Учеб. пособие: В 4
Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты
Жарков С.В. Shareware: профессиональная разработка и продвижение программ.
Домашев А.В., Грунтович М.М., Попов В.О., Правиков Д.И.,
Столлингс В. Основы защиты сетей. Приложения и стандарты:
Зима В.М., Молдовян А.А., Молдовян Н.А. Безопасность глобальных
Смит Ричард Э. Аутентификация: от паролей до открытых
Санитарные правила и нормы №1.01.004.01. Требования к шуму
Санитарные правила и нормы №1.01.004.01. Требования к микроклимату
Санитарные правила и нормы №1.01.004.01. Требования к уровням
ГОСТ 12.1.004-91. Еңбекті қорғаудың стандарттар жүйесі. Өрт
Санитарные правила и нормы №1.01.004.01. Требования к освещению
Санитарные правила и нормы №1.01.004.01. Требования к электробезопасности.
О безопасности и охраны труда от 28 февраля
Ермилов В.В.,Омаргалиева С.А., Акилбеков С. Исследование и расчет
Кустов В.Н., Джумабеков Б.Д., Калита Н.Л. Охрана труда
Торшин Г.Г., Интемиров К.Б., Калита Н.Л., Сенько Н.В.
Кобевник В.Ф. Охрана труда. – К.: Выща школа,
Справочник проектирование пром. жилых и общ. здании и
А ҚОСЫМША
Программа TextEdit
unit MDIEdit;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, ComCtrls;
type
TEditForm = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
New1: TMenuItem;
Open1: TMenuItem;
Save1: TMenuItem;
Saveas1: TMenuItem;
Print1: TMenuItem;
N2: TMenuItem;
Exit1: TMenuItem;
Edit1: TMenuItem;
Cut1: TMenuItem;
Copy1: TMenuItem;
Paste1: TMenuItem;
Delete1: TMenuItem;
N3: TMenuItem;
Selectall1: TMenuItem;
Character1: TMenuItem;
Left1: TMenuItem;
Right1: TMenuItem;
Center1: TMenuItem;
N4: TMenuItem;
Wordwrap1: TMenuItem;
N5: TMenuItem;
Font1: TMenuItem;
Editor: TRichEdit;
PopupMenu1: TPopupMenu;
Cut2: TMenuItem;
Copy2: TMenuItem;
Paste2: TMenuItem;
SaveFileDialog: TSaveDialog;
FontDialog1: TFontDialog;
Printersetup1: TMenuItem;
Close1: TMenuItem;
PrinterSetupDialog1: TPrinterSetupDialog;
PrintDialog1: TPrintDialog;
procedure Exit1Click(Sender: TObject);
procedure New1Click(Sender: TObject);
procedure AlignClick(Sender: TObject);
procedure Wordwrap1Click(Sender: TObject);
procedure Cut1Click(Sender: TObject);
procedure Copy1Click(Sender: TObject);
procedure Paste1Click(Sender: TObject);
procedure Selectall1Click(Sender: TObject);
procedure Delete1Click(Sender: TObject);
procedure Edit1Click(Sender: TObject);
procedure Saveas1Click(Sender: TObject);
procedure Save1Click(Sender: TObject);
procedure Font1Click(Sender: TObject);
procedure Close1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
procedure Printersetup1Click(Sender: TObject);
procedure Print1Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
private
{ Private declarations }
PathName: string;
public
{ Public declarations }
procedure Open(const AFileName: string);
end;
var
EditForm: TEditForm;
const
DefaultFileName = 'Untitled';
implementation
uses Clipbrd, Printers, MDIFrame;
{$R *.dfm}
procedure TEditForm.Exit1Click(Sender: TObject);
begin
FrameForm.Exit1Click(Sender);
end;
procedure TEditForm.New1Click(Sender: TObject);
begin
FrameForm.New1Click(Sender);
end;
procedure TEditForm.Open1Click(Sender: TObject);
begin
FrameForm.Open1Click(Sender);
end;
procedure TEditForm.AlignClick(Sender: TObject);
begin
Left1.Checked := False;
Right1.Checked := False;
Center1.Checked := False;
with Sender as TMenuItem do Checked := True;
with Editor.Paragraph do
if Left1.Checked then
Alignment := taLeftJustify
else if Right1.Checked then
Alignment := taRightJustify
else if Center1.Checked then
Alignment := taCenter;
end;
procedure TEditForm.Wordwrap1Click(Sender: TObject);
begin
with Editor do
begin
WordWrap := not WordWrap; { toggle word wrapping
if WordWrap then
ScrollBars := ssVertical
else
ScrollBars := ssBoth;
WordWrap1.Checked := WordWrap; { set menu item check
end;
end;
procedure TEditForm.Cut1Click(Sender: TObject);
begin
Editor.CutToClipboard;
end;
procedure TEditForm.Copy1Click(Sender: TObject);
begin
Editor.CopyToClipboard;
end;
procedure TEditForm.Paste1Click(Sender: TObject);
begin
Editor.PasteFromClipboard;
end;
procedure TEditForm.Selectall1Click(Sender: TObject);
begin
Editor.SelectAll;
end;
procedure TEditForm.Delete1Click(Sender: TObject);
begin
Editor.ClearSelection;
end;
procedure TEditForm.Edit1Click(Sender: TObject);
var
HasSelection: Boolean;
begin
Paste1.Enabled := Clipboard.HasFormat(CF_TEXT);
Paste2.Enabled := Paste1.Enabled;
HasSelection := Editor.SelLength > 0;
Cut1.Enabled := HasSelection;
Cut2.Enabled := HasSelection;
Copy1.Enabled := HasSelection;
Copy2.Enabled := HasSelection;
Delete1.Enabled := HasSelection;
end;
procedure TEditForm.Open(const AFileName: string);
begin
PathName := AFileName;
Caption := ExtractFileName(AFileName);
with Editor do
begin
Lines.LoadFromFile(PathName);
SelStart := 0;
Modified := False;
end;
end;
procedure TEditForm.Saveas1Click(Sender: TObject);
begin
SaveFileDialog.FileName := PathName;
if SaveFileDialog.Execute then
begin
PathName := SaveFileDialog.FileName;
Caption := ExtractFileName(PathName);
Save1Click(Sender);
end;
end;
procedure TEditForm.Save1Click(Sender: TObject);
begin
if PathName = DefaultFileName then
SaveAs1Click(Sender)
else
begin
Editor.Lines.SaveToFile(PathName);
Editor.Modified := False;
end;
end;
procedure TEditForm.Font1Click(Sender: TObject);
begin
FontDialog1.Font := Editor.Font;
if FontDialog1.Execute then
Editor.SelAttributes.Assign(FontDialog1.Font);
end;
procedure TEditForm.Close1Click(Sender: TObject);
begin
Close;
end;
procedure TEditForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TEditForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
const
SWarningText = 'Save changes to %s?';
begin
if Editor.Modified then
begin
case MessageDlg(Format(SWarningText, [PathName]), mtConfirmation,
[mbYes, mbNo, mbCancel], 0) of
idYes: Save1Click(Self);
idCancel: CanClose := False;
end;
end;
end;
procedure TEditForm.FormCreate(Sender: TObject);
begin
PathName := DefaultFileName;
end;
procedure TEditForm.Printersetup1Click(Sender: TObject);
begin
PrinterSetupDialog1.Execute;
end;
procedure TEditForm.Print1Click(Sender: TObject);
begin
if PrintDialog1.Execute then
Editor.Print(PathName);
end;
end.
unit MDIFrame;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,
Menus, Registry;
type
TFrameForm = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
New1: TMenuItem;
Open1: TMenuItem;
N1: TMenuItem;
Exit1: TMenuItem;
Window1: TMenuItem;
Tile1: TMenuItem;
Cascade1: TMenuItem;
Arrangeicons1: TMenuItem;
OpenFileDialog: TOpenDialog;
MenuHelp: TMenuItem;
MenuRegis: TMenuItem;
procedure Exit1Click(Sender: TObject);
procedure New1Click(Sender: TObject);
procedure Tile1Click(Sender: TObject);
procedure Cascade1Click(Sender: TObject);
procedure Arrangeicons1Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure MenuRegisClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
a1,a2,a3: string;
end;
var
FrameForm: TFrameForm;
implementation
uses MDIEdit, RegEdit, UnitTypes;
{$R *.dfm}
procedure TFrameForm.Exit1Click(Sender: TObject);
begin
Close;
end;
procedure TFrameForm.New1Click(Sender: TObject);
begin
TEditForm.Create(Self);
end;
procedure TFrameForm.Tile1Click(Sender: TObject);
begin
Tile;
end;
procedure TFrameForm.Cascade1Click(Sender: TObject);
begin
Cascade;
end;
procedure TFrameForm.Arrangeicons1Click(Sender: TObject);
begin
ArrangeIcons;
end;
procedure TFrameForm.Open1Click(Sender: TObject);
begin
if OpenFileDialog.Execute then
with TEditForm.Create(Self) do
Open(OpenFileDialog.FileName);
end;
{Регистарция программы}
procedure TFrameForm.MenuRegisClick(Sender: TObject);
var Reg: TRegistry;
begin
RegFrm := TRegFrm.Create(Application);
with RegFrm do
try
if ShowModal = mrOk then begin
// Проверка ключа
if UpperCase(Trim(RegisKey.Text)) = Codtau(a1,18) then begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\Program Errors', True) then begin
Reg.WriteString('MessageError',Codtau(Codtau(a2,18),12));
ShowMessage('Регистарция прошла успешно!');
end;
finally
Reg.CloseKey;
Reg.Free;
end;
end;
end;
finally
free;
end;
end;
procedure TFrameForm.FormCreate(Sender: TObject);
begin
{Серийный номер диска}
SerialNum := GetSerialNumber;
a1 := SerialNum;
a2 := SerialNum;
a3 := SerialNum;
// Проверка ключа
if Tekseru(Codtau(SerialNum,18)) 1 then
FrameForm.Caption := FrameForm.Caption + ' - Программа не
else
MenuRegis.Enabled := False;
end;
end.
unit RegEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TRegFrm = class(TForm)
Label1: TLabel;
RegisKey: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
private
{ Private declarations }
public
{ Public declarations }
end;
var
RegFrm: TRegFrm;
implementation
{$R *.dfm}
end.
unit UnitTypes;
interface
uses IniFiles, SysUtils, Forms, Windows, Dialogs, Registry;
const chrs: array [1..36] of char = ('0','A','K','U',
'1','B','L','V',
'2','C','M','W',
'3','D','N','X',
'4','E','O','Y',
'5','F','P','Z',
'6','G','Q',
'7','H','R',
'8','I','S',
'9','J','T');
function GetSerialNumber:String;
function FindIndex(c:string):integer;
function Codtau(s:string;k:integer):string;
function Tekseru(kilt:string):Integer;
var
SerialNum: String; // Серийный номер диска
KiltSoz: String; // Ключ
CheckProtect: Integer; // Проверка ключа, 1-есть ключ, иначе
implementation
// серийный номер диска С
function GetSerialNumber:String;
var
SerialNum: pdword;
a, b: Cardinal;
Buffer: array [0..MAX_PATH-1] of char;
begin
New(SerialNum);
if GetVolumeInformation('C:\', Buffer, SizeOf(Buffer), SerialNum, a, b, nil,
Result := IntToStr(SerialNum^);
Dispose(SerialNum);
end;
// Находим индекс ключа
function FindIndex(c:string):integer;
var i:integer;
begin
//
Result := -1;
for i := 1 to 36 do
if c[1] = chrs[i] then begin
Result := i;
Break;
end;
end;
// Кодирование
function Codtau(s:string;k:integer):string;
var i,j,z:integer;
y: char;
begin
Result := '';
for i := 1 to Length(s) do begin
if s[i] ' ' then begin
j := FindIndex(Uppercase(s[i]));
if j >= 0 then z := (j
else begin
ShowMessage('Не допустимый символ!');
Result := '';
Exit;
end;
y := chrs[z];
end
else y := '-';
Result := Result + y;
end;
Result := Trim(Result);
end;
// Проверка ключа
function Tekseru(kilt:string):Integer;
var s1:string;
Reg: TRegistry;
begin
s1 := Codtau(Kilt,12);
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\Program Errors', false) then
if Uppercase(Reg.ReadString('MessageError')) = Uppercase(s1) then Result := 1
else Result := 0;
finally
Reg.CloseKey;
Reg.Free;
end;
end;
end.
85






Скачать


zharar.kz