76
Time
Date
Stamp
Дастур компиляция қилинган вақти
Sections
Файлдаги бўлим номи, унинг хотирадаги ва дискдаги ўлчами
Subsystem
Дастурни буйруқлар сатри шаклида ёки фойдаланувчи
интерфейси шаклида ишлашини кўрсатади
Resources
Файлда мавжуд иконкалар, менюлар, қаторлар ва бошқа
малумотлар.
Мураккаб статик таҳлил.
Содда статик ва динамик таҳлиллаш усуллари
фойдаланишда қулай саналсада, зараркунандан дастурлар ҳақида тўлиқ
маълумот олишга имкон бермайди. Шунинг
учун амалда бу усулларнинг
кенгайтирилган шакли кенг фойдаланилади. Мураккаб статик таҳлилнинг
моҳияти тескари инжинерлик хоссасидан фойдаланган ҳолда, ЗД ни
дисассембрлаш амали орқали таҳлил қилишга асосланган. Лабаратория ишининг
назарий қисмида х86 архитектураси ва унда дизассембрлаш амали билан
танишилиб чиқилади.
7
ЗД яратишда юқорида дастурлаш тилидан
фойдаланилади ва машина
кодини ҳосил қилишда компиляторлардан фойдаланилади. Дизассембрлашда
машина кодидан ассемблер код ҳосил қилинади ва уни таҳлиллаш орқали ЗД
ҳақида
хулоса чиқарилади. Қуйида ушбу жараён келтирилган:
Расмда келтирилган соддалаштирилган
модел қуйида
келтирилган олти
турли даражалардан иборат:
7
Michael Sikorski, Andrew Honig. Practical malware analysis. 65 – с.
77
Қурилма
(Hardware).
Қурилма
даражаси физик сатҳ бўлиб, электрик
схемалардан иборат ва бу қурилмаларда мантиқий амаллар, XOR, AND, OR ва
NOT бажарилади. Сабаби, физик жихоз ёки қурилмани
дастурий томондан
бошқариш жуда қийин.
Микрокодлар (Microcode).
Микрокодлар сатҳи прошивка (firmware) сатҳи
деб ҳам аталади. Микрокодлар маълум аниқланган жихозларги мўлжалланган
бўлади. Уларнинг асосий вазифаси юқори машина тилида ёзилган
кодларни
қурилмага
мослаштириб бериш.
Машина коди (Machine code
).
Машина коди ўн олтилик саноқ тизимида
ёзилган рақамлардан иборат бўлиб, процессорни нима иш бажаришини
белгилайди. Машина коди юқори дастурлаш тилида ёзилган кодларни
компиляция қилиш жараёнида ҳосил қилинади.
Қуйи
даражали дастурлаш тиллари (Low
-level languages).
Қуйи
даражали
дастурлаш тиллари инсон ўқий оладиган компьютер архитектураси кетма
-
кетлиги ҳолати бўлиб, кенг тарқалган қуйи даражали дастурлаш тили бу –
ассемблер тилидир. ЗДларни машина коди орқали таҳлил этиш инсон учун
мураккаб
саналгинлиги сабабли, ассемблер тилида ёзилган кодларни таҳлил
этиш орқали ЗД ҳақидамаълумотлар олинади.
Юқори даражали дастурлаш тиллари (High
-level languages).
Кўплаб
дастурчилар юқори даражали дастурлаш тилларидан фойдаланган ҳолда ўз
иловаларини яратадилар. Юқори даражали дастурлаш тиллари машина тилидан
узоқ бўлиб, инсон тушиниши учун анча осондир. Юқори дастурлаш тилларига
С,С++ ва бошқаларни олиш мумкин. Бу дастурлаш тилида ёзилган кодлар
компиляторлар орқали машина кодига айлантирилади.
Изоҳлаш тиллари (Interpreted languages).
Изоҳлаш тиллари энг юқори
даражали тиллар ҳисобланади. Кўплаб дастурчилар айнан шу тиллардан, С#, Perl,
.Net ва Javaфойдаланадилар. Бу тиллардан ёзилган
кодлар машина тилига
компиляция этилмайди, балки
байткодларда ўтказилади. Байткодлар дастурий
кодларни оралиқ ифодаланиши бўлиб, интерпритаторлар орқали машина кодига
айлантирилади.
ЗД доимий хотирада машина тилининг бинар шаклида сақланади. 4.1
-
расмда келтирилган схемага асосан, ЗД дизассембрланганда,
бинар ҳолатдаги ЗД
кодини чиқишда ассемблер тилига ўтказиш амалга оширилади.
Ассемблер тили бир нечта тиллар тўплами бўлиб, ҳар бир тил айнан бир
микропроцессор (x86, x64, SPARC, PowerPC, MIPS, ва ARM) учун мўлжалланган
бўлади.
Ҳозирда
кенг тарқалган шахсий компьютерлардаги архитектура бу х86
бўлиб, кейинчалик яратилган AMD64 ёки Intel 64 архитектуралари ҳам х86 ни