Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Семикаленова

.pdf
Скачиваний:
11
Добавлен:
23.03.2016
Размер:
10.56 Mб
Скачать

I l l

ленноно в вцце библиотеки (*.dU ф<ф11(Шта). С шммощыо этого срсдсты^ ш>жно протестировать работу любого С(Ж1 объекта. Про1|юмма позволяет зшружать объект в память, активиз1фовать его и просматривать p£i6oiy его от­ дельных функций. Особенно эта программа полезна при работе с программ­ ными компонентами, которые отображают инфоршщшо.

Resouroe Scrutator'^ - эта протрамма позволяет определить ресурсы программы. Она может работать сгагшшкя^ньшифа&аялт и с б|^дмотека1ш. Каждая программа содержит в огбе блок информации - ресурсы. В них вхо­ дят иконки, рисунки, формы диалогов, а тшсже информация о ^>сии про­ граммы. Под информацией о версии программы понимается: ииформамщя о версии файла, версии программного продукта, ОС, для которой спроектиро­ вана данная программа, название организации, тсфговая марка этой (^ганизации. Все этидашныеидоггифицирумэт вдаделыщ прсигршшмы, а также могут быть использованы для сравнения ц^ух программных продуктов. Особен­ ность таких данных заключается в том, что если в программе используется некий диалог, то его форма обязательно должна хранится в ресурсах ^юйла. Есть ресурсы, напртмер, иконки или (жсунки, котс^[»1е могут не присутство­ вать в фай^ прогршАмы, ио в этом слуздю ОШ1 обязателыю долярш быть размещены в одном из внешних файлов прог|Шк1мы.

Другая группа средств по исследованию объектов судебной гцкярамм- но-компьютерной экспертизы омгределяет динамические характернетки. К динамическим х^>актеристик£№1 относится:

-последовательность команд посылгюмых процессору;

~фунющи операционной системы, используемые гфограммой, а также последовательность их вызовов и значение п^ред^^емых им парамет­ ров;

~сообщения, посылаоксые прогршимой (для Windows);

109 №1юльэованы материалы сайтов: wwwjiestor.itiiii8k.by/l^;

112 - данные, посылаемые и принимаемые от периферийных уст­

ройств.

Изучение экспертной практики дало возможность выделить ряд щюipaMMHbix средств, позволяющих исследовать 1федставленные характеристи­ ки программных объектов.

Вспомогательные утилиты"^. К этим программам относятся утилиты, по:толя1екщие опредешпъ тип файхп, • тсхм ^iCJie, и :»1Ш1ЕС»ва»иых файле». Не­ которое из этих программ также позволяют преодолеть устшювленную при этом защиту. Для анализа исполняемых файлов может быть рексАюндована программа Бхе Info (by Adam Lojew^). Также заслуживает внимания про­ грамма ComparelUruismted. Это средство позволяет получ1Пъ список изме1юнных байтов при экспериментальной модификации программы.

HEX - peiKacTOf»!"*. Пр(»рамми - шестнадшгт^жчшле редшсгс^ы. Choi являются одним из основных инструментов в эксп^угиэе программных про­ дуктов. Чаще всего эти профаммы совмещают в себе возможности просмотра и ре^цактирования исследуемого файла в шестнадцатертчном (текстовом - ASCII) формате, а также ряд дополнительных функции. Для экспертных ис­ следований рекомецдуется вьхбщапъ НБХ-редактс^, по^волякиц^ декодиро­ вать байты файла в инструкции асхжъ^5лера, а также писать части 1фограмм на ассемблере и менять инструкции. Одним из режомепдуеыык инстро^ментов по­ дового рода является программа HIEW. Про1рамма прим^штеяьна шшичием большого числа возможностей, в их числе функции поиска инструкции по маске. Помимо приведенной прог^^ммы могут быть рекомендованы следую­ щие HEXредакторы: Qview by ABC Product, HEX Woifcshc^, UltraEdit, WinHex.

"° См., usnptotepy Отчет о научно пссяедршпеязьавой рвботе <^1етоаы н ер^цепжл

ренюння задач коыпькщто-таашчесюзй жсшвргшхл И Закгаочнтешшый отчет, Т«ма НИР; Усов А.И. Методы и qxecTsa рептшя задач 1а»шыоФе|як>'ТПшичес1сЫ1 ЭКСП^УТИЗЫ: Учебное пособие. -М.: ГУ ЭКЦ МВДРоссии, 2002.

''' (кяользсжались ма1Ю1шашлеай10в: www^^is»u».boom.m; l^://wa}iaidc.<M^.ftt.

113 Отладчики "^ - программы предназначены для пошагового выполнения прогршы»ш[. Многие из nap&MetpoB и характфистик, инто>есующих эксперта

при исследовании объектов судебной программно-компьютержн! эксперт- зы, могут выявлять и отслеживать эти прогршиЕМы. После зшрузки отладчик производит дизассемблирование исходного кода программы, а затем предос­ тавляет интерфейс, с помощью которого пользователь может oiar за шагом выполнять команды npoipaMitai, щюсыесгрштял щт этом все тосущне пяфй- метры (содержание регистров процессс^^ памяти).

Одной из самых известных программ,ртботающнхс отлшдчшсами, явля­ ется Soft-ICE. Прог1шмма Soft-ICE выпускается как для отладки в <^7еде DOS, так и для среды Windcm^s. Она позволяет штолнятъ следующие функции:

- определить точки остановки на чтение/запись в ОЗУ в режиме реального ^>емюви;

определить точки остановки на чтение/запись в порты и области

памяти;

определить точки остановки на чтение/запись mt пре|»|1вания; определить исто1»оо выполнения команд для обратной трасси-

рошси;

-показышпъ оюю с функщммн системы, всплывакицее в любое время, которое может вызыватьо! даже при отключенных 1ф^>ыв(аниях;

-работать в качестве автон(»1НОго атл&ячика - эта возможность полезна при отладке загружаемых драйверов устройств, обработчиков 1феРЫВШ1ИЙ, последовательностей команд, которые традиционные отладчики не могут пройти;

lrt4>://fa^x)fg.ni/softw/debi|geer/; ЬСф://стск18Ь.1Мвос1го; h№p'JfpMca3isomxs.t% www.chipmfo.ru.

114

- использовать мягкую перезагрузку, позволяющую отлаживать другие операционные системы или самозшружаюпцюся профаммы.

Эмулирующие отладчики и виртуальние машины •*'. В дополнению к обычным отладчикам существует особый клшх программ, называемых эму­ лирующие отладчики. Они не пытаются KOI^KTHO ВЫПОЛНЯТЬ трассировку работающей программы, которая, к тому же, активно этсшу сопротивляется,

а сами тггерпрепфуют и выполкюот ее ыашав№ат штггрушзвЩЁ (imapmrnp, вместо MOV АХ, 56 они присваивают переменной, соответствующей регист­

ру АХ - допустим, R^_AX - число 56). Существуют также отладчики с не­ полной эмуляцией, которые эмулируют только «опасные» команды, а ос­ тальные выполняют на реальном процессоре.

Такие отладчики нейтрализуют практически вое методы щютиводействия отладке: блокирсижу прерываний и устройств, работу с коитролл^шми ч^эез порты, подсчеты контрольных сумм для выявления контрольных точек, контроль стека, а также методы, основанные на особенностях процессора и DOS. Плюс ко всему, эти отладчики тлеют просто большие возможности для отладки: можно поставить контрольную точку на любую область пш4яти или ряд портов «зода/шгаода, и т. д. и т. п.

Как было уже отмечено выше, все базовые «федства экспертн<ях> иссле­ дования программного кода можно условно (юздеяить mt три класаи

-отладчик - динамическое средство исследования (Softlce, TD);

-дизассемблер - средство статического исследо]Юния (IDA, WinDasm, 8ошх:ег, hiew);

-эмулирующий отладчик - средство интерпретации и выполнения машинных инструкций (TRW, Сир386).

Для защиты от этих средств используются различные методы, и большинство из них базируется на том, что програмш! может шщифицировать саму себя. Этого бывает достаточно для поуцввлеиия ерелств стати-

пз Использованы материалы сайта: ht^://public.kubsu.ni/'^4isi02716/protect/

115 ческого анализа. В слзгчае защиты от дингшогаеских средств можег быть использован тот факт, что изучаемая профамма может (шспознатъ его при­ сутствие. Кратко рассмотрим у1«1занные методы.

Дизассемблеры' ^*. Программы, преоб{тзующие машинный или объект­ ный код в ассемблерный или близкий к HeitQ^ (псевдоассемблерный) исход­ ный текст, называются дизассемблеры. Дизассемблирование, как технологи­ ческая процед)^, широко используется в уксперггяж и реализуется рядкял инефументальных средств. В настоящее время различают одно- и многопро­ ходные дизacceмблq>ы. Типичными применениями дизассембл^ю в эксперт­ ных целях являются раз1бор программ, изучение используемых алгоритмов, а также как элемент отладочного монит(фа или отладочной системы. Одним из рекомендуемых дизассемблеров для эксп^ггной работы является программа ША (Inter^tive Disas^n^yler). Бе отлтительиой чертой является наличие возможности просматривать и помечать анализируемые участки nporf^u^fMного кода именами, что значительно облегчает их последующий поиск в дальнейшей работе. Программа IDA позволяет в ходе исследования писать соответствующие комментарии, а также свои процедуры анализа на встроен­ ном макроязыке. Обращает на себя внимание наличие набс^ специальных «плагинов» для автоматического распознавания языка программирования. Например, на экспертное исследование представлен код щюграммы, напи­ санной на языке Borland С-и- 5.0. После того, как iqx>q»MMa IDA установит признаки компиляции исследуемой программы на этом языке, то автомати­ чески загрузится «плагин», способный распознать и обозначить стандартные функции С-Н-. Указанная возможность IDA значительно может со1^тить время проведения экспертизы и наиболее эффективным способом получить искомый результат.

"^ ^пользовались мате1шалыч;айтов: http://iiK)s.(M^.ni/so!lw/debiieger/; http://cradd^>.iiaiod.ra; htlp://|»9cal.sottro№.ra, ЬХф://мпЛаккхщ.т.

116 INT - монитсуы"^. ПроГ{мик1мы для отслеживания и записи воех (или только указанных) прерываний, вызываемых исследуемой программой, на­ зываются INT-мониторы. Для проведения экспертных исследований в среде DOS могут быть рекомендованы такие программы как, INTControll» и INTIndikator (by M.Chiricov). Эти средства являются прохраммамирезидентами, которые «висят» на нужных прерываниях и следят за частотой

их вызова. Для среды Wiiu&yws (Win32) можно В1юш1е шетюз&аошагь щюграмму APISPY32 (Y.Kaplan). Для отслеживания какой-либо API-функции в этой программе в спещ1альном файле необходимо прописать имя этой функции и •nin ее аргументов.

Кроме непосредственно INT-мониторов, существует много программ­ ных средств, позволяющих определить динамические свойства профаммы в ходе ее экспертного нссдедовант. Одним из таких прогрюлмньк средств яв­ ляется программа Microsoft Spy++"^. Программа позволяет отслеживать все сообщения Windows. Сообщениями Windows называются команды, посы­ лаемые окнам оп^>ационной системы. В свою очередь сами окна могут также посылать сообщения. Все сообщения проходят ч^зез среду Windows и имеют определенный смысл. Если пользователь нажал кнопку иа клавиатуре, то ОС перехватывает это нажатие, обрабатывгют его и посылает сообщение гистивному о1шу. Сообщение может быть сген^жровано окном и шюяано другому окну, но при этом сообщение проходит через ОС и может быть ото^>ажено специальными программами. Одной из них и является Spy-и-. При запуске программы она отоб1^жает все активные окна. Выб1мю одно из окон, можно посмотреть какие сообщения им принимаются и посылаются. Екего сообще­ ний Windows насчитывается около 1000, поэтому программа позволяет 1фи просмотре фильтровать их. Просмотр (жуп^ествляется в режиме р^шьного

''^ Hciioj№3(»ainicb макриалы саЯтзт: ЬЩ^У/угвйшскля^ли/; ht^://publicJcirt)5UJv/~iisi02716/|»otect/.

* *^ Использованы материалы сайте»:

117 Времени, то есть при генерации ч^ообщения оно тут ж« отображается 1фограммой.

Особого внимания заслуживают специальные программные средства мониторинга процессов в системе - Шелюп и Regmon (www.sysintaiiais.com. Freeware). Обе этих программы методично следят за (вращением запускае­ мых или уже работающих профамм к дис1^ или системному реестру сте1ЗДОвого (л1^ исследуемого) компьютера и по,щю6ио сообщают обо всех собы­ тиях.

Filemon следит за обращением профамм к файловой системе компыоTq)a, а Ке§пюп - к системному реестру. Отчет о работе обеих прог^мм мож­ но сохранить на диске. В него нумеруется и записывается по порядку каждый единичный процесс, время его совершения, характер загфоса к системе, путь иа диске или в ртесфе, результат aanpooi и Д01юлнитепышя инфс^ртиация.

Для экспертной работы указанные прог1^ммы имеют большую цен­ ность, так как с их помощью можно не только обн{фужить работу неизвест­ ных (скрытых) программ, но и проследить за механизмом их дейстши.

Unpadcer*s (распаковшикиУ^. Эта средства предназначены для снятия так Н1»ываемых «навесных защит» с исполнинок прогршммных файлов (ехефайлов). В технологии разработки профаммного обеспечения шщюкое гфименение нашли так называемые щхлраммы-паковщикн ^№)cer*s). «Паков­ щик» упаковывает код программы и пишет свой «распаковщик» в на<шло профаммы. Когда программа вызывается для исполнения, то сначала отра- б о т ^ «распаковщик» (unpacker), а затем уже будет выполняться запакован­ ная программа. В результате, такую программу невозможно исследовать, не распаковывая.

В практике существуют «распакошщпж» как универсальные (CUP386[IX)S1, ProcDun^[WIN]), так и ра^>^ботанные под котцретный «паковщию>. Из вторых можно рекомендовать для использовшия в экспертной

^" Использованы материалы сайтов: ht^://visudb6Sic.bomn.ni/afticles/ciaci^; fattp'7/wahack.oiig.ni.

118 деятелыюсти - Univefsal Ui^acker Padoge (сборник <^мюшик>в1Циков» для самых популярных «паковщиков» плюс 3(1{иверсальный <фаспаковщию>).

Практически все перечисленные выше про1раммы являются средства­ ми, которые предназначены для разработки, обслуживания, администр1фования и «взлома» программного обеспечения. ИсполЕзование их в отдельности практически всегда малопригодно для проведения полного судебноэкспертного исследования програювшос qpeMsm. ПЬэгюму дяя эфф^ли^юй {^боты экспертов необходимо разрабатывать специальное 1фограммное обеспечение, которое сконцентрирует в себе функции уже существующих общеизвестных программ, а также сможет выполнять особые специалы1ые задачи СПКЭ. При этом важно четко сфсфмулировать круг этих задач и, ис­ ходя из этого, излагать требования на разработку необходимых экспертных средств и методов. Посколысу подобные ра:^»ботки являотся достаточно долгим процессом, то в нынешней ситуации наиболюе продуктивным являет­ ся совместное использование, в качестве экспертного инструмгатария, при­ численных выше программ н функций. Однако необходимо отметить, что часть из предложенных средств является «хакерской» разработкой и поэтому требует перед своим применением функционалы1сих> и ст1^гктурно{ч> иссяеДОВШ1ИЯ и эксп^тной апробации.

Аналитический этап судебной программно-компьютерной экспер­ тизы. Данный этап необходимо начинать с изучения содержания протоколов (при их наличии) осмотра, обыска, выемки и других следственных и судеб­ ных действий с целью учета в дальнейших исследованиях особенностей вы­ полнявшихся ранее действий, и только затем следует приступать к исследо­ ванию объектов судебной программно-компьютерной экспертизы.

В общем случае, при производстве судебнЫ! программнокомпьютерной экспертизы может осуществляться, как раэделшное, так и сравнительное исследование. Ирн изучении свойсга и оосгояння объекта СПКЭ, чаще всего выполняется (шздельное (ашшитическое) иссле^Еювание. В этом случае -сущность действий эксперта закликается в выявлении общих и

119 частных признаков, необходимых для решения поставленной экспфтной за­ дачи. При решении идентификационной задачи может прсюодиться также и сравнительное исследование объектов, в ходе которо1х> эксперт будет искать совпадения или различия в исследуемых программных продуктах. Примером этому может служить сравнительное исследование прснрамм на обнаружение признаков контрафактности.

Выполнеш1е аналитического эт!ша судовой щк)Г1рташ10'Котпькп№ртЫк экспо>тизы тр^ует учета не только вида исследуемого объекта <§ 1.2 даншэго дисс^ггащюнного исследования), но и способа его представления; Так, при исследовшши текстов программ представленных на бумажных носителях, не­ обходимо предварительно провести а1шлитическое исследование щзедставленного текста и лишь за тем перенести программу на стендоюий компьютер :жс11ерта для далы»йшах> ж^следованкя. В с^^аях предоставлгаия объектов в электронном виде, наоборот, всегда объект сначала переносится на стецщовый компыотер эксперта, и только затем происходит его исследование.

При исследовании различных объектов судебной программноKOMnbraTq>Hofi экспертизы применяются различные методы исследования. Так при исжледоваиии исполняемых модуле применяется дизассемблирование, а при исследовании текстов программ - компилирование. Возможно применение различных методов и при сравнительном исследовшши алгорит­ мов программных продуктов. Важно от1к1етить сщно, все применяемые мето­ ды заимствованы из области информационных технологий, а именно из тео­ рии программирования и алгоритмизации. Рассмотрим некотс^ые наиболее применяемые методы в судебной программно-компьютерной экспертизе.

Reverse еп&пеепщ — обратная разработка, под1:юзумевающая в данном случае восстановление алгоритма про1раммы путем анализа скомпил1фО№ш- ного выполняемого файла. Это процесс, а^;>втннй цюцеесу forwatdengineering — который идёт от высокоуровневой конструкции до выполне­ ния низкого уровня. А reverse ei^ineeriog анализ1о:^'ет систему, пытаясь

120 идентифицировать её компоненты, их в^имодействия, щ)едставить систему на более высоком уровне абстракций^ '^.

Исследовательские технологии так называемого «обратного щюфаммирования» как частный случай технологии Revere Ei^ineering^'^ имеют важное значение для разработки методического обеспечения СПКЭ.

Первым шагом при применении этого метода является установка на стеидопый компьютер кшсого-либо отладчмкл (см. «ьшвЬ), с помощью котс^ю- го эксперт будет исследовать представленные на эксп^лизу программы. В практике разработки программного обеспечения отладчик обычно 1федназначен для обнаружения ошибок в программе и их устранения непосредст­ венно в процессе ее выполнения. При производстве же экспертного исследо­ вания могут быть использованы все функции, котс^ые предоставляет отлад­ чик. Наиболее важным свойстмнм отладчика является то, что иос^дуемая программа полностью находится под его контролем, и эксперт лепсо может влиять на ход ее выполнения. Для судебной программно-компьютерной экс­ пертизы это наиболее нужное свойство отладчика - без возможности контро­ ля над ходом выполнения программы эксперт не добьется никаких положи-

120

тельных результатов .

Следующим важным положением по освоению технологии Revere Engineering экспертом СПКЭ является усвоение им оснош1ЫХ методов рас­ пределения памяти в операционной системе. Рассмотрим лишь необходимые для этого сведения на примере ОС Windows 95.

"' Использованы мат^>иалы сайтов: http://se.matfa.^tt.ni/cmii:ses/Reef^2001/Zan4>aeva.htaBt

"' Reverse engineeriiig - реверснр(»аине ра^аботхя; щюцвес ряЯборкв оборудсшвнш иди дизассемблировавия прсмгршшы, оеущоспяяемхй дяя торо^ чгго&ы упааь, как «жн функцж>нируил- с целью повторили всех или нежоп>1иых их фуню^ в другоы вздеяни (программе).

>'» Использованы мв1ериалы caftnt: www.DoR«.ni