Таќырып 8 Программалыќ ќамтама

Таќырып 8 Программалыќ ќамтаманы зерттеуден ќорѓауды ђйымдастыру

Маќсаты: Программаларды бђзудан ќорѓау тѕсілдерін џйрету

Жоспар:

Жљндеуіш жђмысыныњ арнайы ерекшеліктерін ќолдану. Программаларды ќорѓау тѕсілдері.

Теориялыќ материал:

# Программаларды зерттеу ќђралдары

Ѕдетте жаќсы хакер тиімді жђмыс істеу џшін бђзуѓа арналѓан заманына сай ѕртџрлі утилиттерді пайдаланады. Сол ќђралдарды бірнеше категорияларѓа бљлуге болады.

Жљндеуіштер. Зерттеудіњ динамикалыќ ќђралы. Компьютерде болып жатќан барлыќ џрдістер жайында аќпарат береді, белгілі бір бљлікті орындаѓаннан кейін немесе программаныњ ѕрбір ќадамынан кейін, яѓни орындалатын программаныњ маќсатын тџсінуге кљмектеседі. Олар бізге алдын-ала ќойылѓан шарттарѓа ќол жеткізген кезде программаныњ орындалуын џзуге, программаныњ ќадамдап орындалуына, жады жѕне регистрлер ќђрамын љзгертуге жѕне т.б. мџмкіндік береді. Ењ кењ тараѓан, ыњѓайлы жѕне кџшті тџрі болып SoftICE жљндеуіші есептеледі. Оныњ айтарлыќтай мџмкіндіктері кљп жѕне де тђраќты жђмыс істейді.

Дисассемблер. Зерттеудіњ статикалыќ ќђралы. Олар алынѓан кодты ѕрі ќарай зерттеу џшін программаны дисассембрлейді. Тџсініксіз машиналыќ кодты оќуѓа ыњѓайлы тљмен дењгейлі тіл – Assembler- де жазылѓан текст тџрінде шыѓады. Солардыњ ењ кењ тараѓаны IDA.

Ќазіргі бђзушылардыњ ќђралдары љте жаќсы дамыѓаны соншалыќты, тіпті ќорѓаныс авторларыныњ программаларды зерттеуге ќарсы ќойѓан ѕрекетеріњін бѕрі жоѓарыдѕрежелі хакерлердіњ кљз ќарасы жаѓынан нѕтижесіз болып есептеледі.

Бђзу ѕдістері

Кез-келген ќорѓаныс жџйесін белгілі бір уаќыт ішінде бђзу болады. Жаќсы істелген ќорѓаныс жџйесін бђзу џшін кљп уаќыт кетеді, салыстырмалы тџрде сол ќорѓаныс программаны ќайта жазуѓа кететін уаќыттай. Біраќ программалардыњ бѕрін бірдей профессионалдар жаза бермей, сондыќтан программаныњ осал, ѕлсіз жерін тауып ќорѓанысты бђзуѓа немесе одан љтіп кетуге болады. Сљйтіп біз бђзу уаќытын бірнешеге ќыстартамыз. Бђл џшін келесі бірнеше ѕмбебаб ѕдістер келтіреміз.

Егер программа тек статикалыќ анализ ќђралынан ѓана ќорѓалса, онда оны динамикалыќ арќылы зерттеу оњай болады, жѕне керісінше.

Бір байты љзгерту ѕдісі – бђл ѕдісте ќорѓаныс жџйесі баќылау аќпаратын кџтілетін баќылау аќпаратымен салыстыру кезінде ќарапайым команданы љзгерту арќылы љзімізге керек жолмен жџрегізеді.

Аѓындаѓы баќылау аќпаратын ќайтаратын функцияныњ жђмыс нѕтижесін кџтілетін баќылау ќосындысыныњ мѕнімен алмастыруѓа болады(мысалы, ќажетті џзуді ђстап алу кљмегімен).

Адамныњ есімін жѕне оѓан сѕйкес кодты енгізуді сђрайтын ќорѓанысы бар программаныњ код генерациясыныњ алгоритмін талдауѓа болады жѕне адам есімін енгізген кезде дђрыс кодты генерациялайтын программа жазуѓа болады. Бђндай ѕдісті басќада жерлерде ќолдануѓа болады.

Ќорѓаныс жџйесі керек кодты шифрлап болѓанан кейін, ол оны жадыныњ басќа жеріне немесе дискіге кљшірілуі мџмкін. Кейбір жаѓдайда программа жђмысын аяќтаѓаннан кейін оныњ барлыќ кодтары шифрленген жѕне ќол жетерлік.

Программаларды дисассембрлеуден ќорѓану ѕдістері

Сіз жљндеуіштен ќорѓайтын ќандай болмасын мыќты ќорѓаныс жасасањызда ол ќорѓаныс дисассемблерді ќолданѓанда тџк пайдасы болмай ќалады. Программаны зерттейтін бђзушылардыњ кљбісініњ программаныњ толыќ кљшірмесімен жђмыс істегісі келетіні тџсінікті. Бђдан келе бђзушылардыњ кез-келген программаныњ ќорѓанысын бђзу кезінде алѓашќы ќойылатын тапсырмаларыныњ бірі программаныњ ќолданылытын кодын дисассембрлеу жѕне ассембрлік командалары бейнеленген программа листингін алу болып табылады.

Программаны дисассембрлеуден ќорѓаудыњ ѕмбебап ѕдісі шифрлеу болып табылады. Шифрлеген кодты дисассембрлеу пайдасыз.

Ѕдебиет: 1, стр. 10-40; 2, стр. 15-47

Баќылау сђраќтары:

1 Программаларды бђзудан ќорѓау дегеніміз не?

2 Программаларды бђзу ѕдістерін атањыз?

3 Программалыќ ќамтаманы зерттеуден ќорѓау тѕсілдері?

4 Жљндеуіштер мен дизассемблер ђѓымдарын ќалай тџсінесіз?