
Семикаленова
.pdfI 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