background image

 

 

INSTYTUT  INŻYNIERII  I  GOSPODARKI  WODNEJ

  

POLITECHNIKA KRAKOWSKA im. TADEUSZA KOŚCIUSZKI 

 

Magdalena Kruczek 

MONITOROWANIE ORAZ IDENTYFIKACJA 

ZMIAN W STRUKTURZE PLIKÓW 

 SYSTEMU WINDOWS  

praca magisterska 

studia dzienne 

kierunek studiów: informatyka 

specjalność: informatyka stosowana w inżynierii środowiska 

 

promotor: dr inż. Robert Szczepanek 

nr pracy: 2211 

K

R A K Ó W  

2 0 0 8

 

ul. Warszawska  24,  31-155  Kraków   

tel/fax (+48 12) 628 20 41   

e-mail: sekretariat@iigw.pl 

internet: 

www.iigw.pl 

 

background image

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Dziękuję 

 

Panu  dr. inż. Robertowi Szczepankowi 

za poświęcony czas, cenne uwagi oraz pomoc udzieloną przy pisaniu niniejszej pracy, 

 

Rodzicom 

za możliwość rozwoju, 

 

Andrzejowi 

za wsparcie oraz wiarę we mnie. 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

S

P I S  

T

R E Ś C I

 

1.

 

WSTĘP...................................................................................................................... 2

 

2.

 

ZAKRES PROJEKTU ............................................................................................ 5

 

2.1

 

O

PIS PROBLEMU

.................................................................................................... 6

 

2.2

 

P

RZEZNACZENIE PROJEKTOWANEGO SYSTEMU

..................................................... 7

 

3.

 

DOSTĘPNE  NARZĘDZIA .................................................................................. 10

 

3.1

 

F

ILE

W

ATCHER

.................................................................................................... 11

 

3.2

 

F

OLDER

W

ATCH

.................................................................................................. 13

 

3.3

 

F

ILE

M

ON

............................................................................................................ 15

 

4.

 

TECHNOLOGIE ZASTOSOWANE W APLIKACJI „FILM” ....................... 16

 

4.1

 

K

RYPTOGRAFIA

.................................................................................................. 18

 

4.1.1 

Algorytmy szyfrujące ............................................................................................. 19 

4.1.2 

Jednokierunkowe funkcje haszujące...................................................................... 20 

4.1.3 

Rozwiązania .NET .................................................................................................. 22 

4.2

 

I

NDEKSOWANIE W 

W

INDOWS

............................................................................. 28

 

4.3

 

SQL

ITE

............................................................................................................... 32

 

5.

 

OPIS SYSTEMU „FILM”..................................................................................... 37

 

5.1

 

S

TRUKTURA BAZY DANYCH

................................................................................ 50

 

5.2

 

M

ONITOROWANIE ZMIAN W STRUKTURZE PLIKÓW

. ............................................ 54

 

5.3

 

D

EFINIOWANIE ATRYBUTÓW I UŻYCIE FILTRÓW

................................................. 59

 

5.4

 

R

OZWÓJ SYSTEMU

.............................................................................................. 63

 

6.

 

WNIOSKI ............................................................................................................... 66

 

7.

 

PODSUMOWANIE ............................................................................................... 69

 

8.

 

SŁOWNIK POJĘĆ ................................................................................................ 71

 

9.

 

BIBLIOGRAFIA.................................................................................................... 74

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 1 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

1.  Wstęp 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 2 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Banki, urzędy, szkoły, firmy informatyczne, farmaceutyczne, budowlane. Instytucje 

te można wymieniać w nieskończoność. O wiele łatwiej byłoby wymienić instytucje 

czy osoby prywatne, które nie mają  żadnego kontaktu z komputerem. Prawie każdy 

przechowuje różnego rodzaju dane, mniej lub bardziej ważne, w pamięci komputera. Ile 

razy zdarza się, że któryś z plików „zniknie”, i w żaden sposób „nie chce się nam dać” 

odszukać ?  

Aby zaspokoić ciekawość, w popularnej wyszukiwarce internetowej została wpisana 

fraza do  wyszukania „zaginął plik”. Jedną z pierwszych odpowiedzi był wpis na forum 

internetowym:  „Jak odszukać plik tekstowy ? Nie pamiętam nazwy..zaginął mi” i dalej 

owa internautka pisze „to strasznie pilne, zaginął  mi  bardzo  ważny dokument”. 

Pierwsza odpowiedź, którą otrzymała, brzmiała „No to pozostaje modlitwa...”[5].  

Oczywiście nie jest to jedyna metoda jaką należy stosować w sytuacji zagubienia 

ważnego pliku. Można przeszukiwać pamięć dysku za pomocą wbudowanych narzędzi, 

odpowiednich dla używanego systemu operacyjnego. Dla systemu Windows możemy 

się posłużyć tzw. „Pomocnikiem wyszukiwania”. Jednak w sytuacji wspomnianej 

internautki, będzie to przejrzenie wszystkich plików (o takim samym rozszerzeniu, 

ponieważ nazwa nie jest znana), znajdujących się na dysku twardym. W przypadku 

zbadanego dysku o pojemności około 160 GB, w 90% zapełnionego różnymi danymi, 

plików o losowo wybranym rozszerzeniu .txt, zostało znalezionych 2639. 

 

Cel pracy 

 

Celem niniejszej pracy jest przedstawienie rozwiązania, które pozwoli na 

monitorowanie i katalogowanie plików w systemie Windows, oraz  implementacja 

systemu FilM będącego odzwierciedleniem tego rozwiązania. Zostanie również 

przedstawione porównanie narzędzi o podobnym przeznaczeniu, istniejących na rynku 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 3 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

polskim, jak również ogólnoświatowym, dostępnych na licencji Freeware

1

 oraz 

Shareware

2

 

Zawartość pracy 

 

Pierwszy rozdział stanowi wstęp, którego zadaniem jest krótkie zapoznanie 

czytelnika z tematem pracy. 

  

W rozdziale drugim został zawarty opis  problemu monitorowania zmian 

w strukturach plików oraz trudności z katalogowaniem tychże plików w sytuacji 

częstego korzystania z danych w nich zawartych. Określony został również zakres 

projektu, czyli wyodrębnione zostały moduły i udostępniane opcje, które mogą być 

rozwiązaniem wcześniej nakreślonych problemów.  

 

Rozdział trzeci zawiera krótkie omówienie przykładowych narzędzi, których 

przeznaczenie częściowo pokrywa się z przeznaczeniem projektowanego systemu FilM. 

 

W rozdziale czwartym omówione zostały technologie, które zastosowano 

w aplikacji.  

 

Rozdział piąty stanowi opis sytemu. W tej części pracy zawarto opis środowiska 

i języka w którym aplikacja została napisana, struktury bazy danych a także opis 

wszystkich udostępnianych opcji.    

 

W rozdziale szóstym zawarto wnioski a w siódmym podsumowanie. 

                                                           

1

 Licencja Freeware – Program udostępniany na tej licencji jest darmowy i zabronione jest czerpanie 

korzyści finansowych z jego dystrybucji. Licencja nie dotyczy produktów 
stworzonych przy użyciu programu.. 

2

 Licencja Shareware – Tą licencją objęte są zazwyczaj programy płatne. Producenci jednak dają 

możliwość nieodpłatnego „wypróbowania” takiego programu przez określony 
czas (np. 30 dni). 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 4 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

2.  Zakres projektu 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 5 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

2.1  Opis problemu 

Często zdarza się, że dostęp do plików  ma wiele osób. Im więcej tym większe 

prawdopodobieństwo,  że ktoś je przypadkowo przeniesie, zmodyfikuje lub usunie. 

Może przez  to zostać straconych wiele dni pracy, wspomnienia w postaci zdjęć czy 

zmodyfikowane ważne informacje.  Nieświadomy tej sytuacji właściciel pliku nie 

będzie mógł w porę zareagować. Warto się przed takimi sytuacjami zabezpieczyć. Plik 

taki oczywiście można odnaleźć znając jego nazwę lub część tekstu (jeśli jest to plik 

tekstowy). Można również poprawić lub postarać się odtworzyć zmienioną zawartość, 

jednak aby próbować naprawić zepsute, trzeba zdawać sobie sprawę,  że się zepsuło.  

Z potrzeby uchronienia się przed takimi sytuacjami zrodził się pomysł zaprojektowania 

aplikacji FilM, której głównym zadaniem będzie monitorowanie struktury plików.   

Praca z dużą ilością plików potrafi być uciążliwa. W zależności od rodzaju 

wykonywanej pracy, na plikach można przeprowadzać różnego rodzaju operacje. 

Czasami przydałoby się posegregować pliki w zależności od ich przeznaczenia, 

zawartości itp.. Bywają również sytuacje, że taki plik powinien się znaleźć w dwóch 

różnych grupach np. plik typu umowa należałoby, dla porządku, przechowywać w 

katalogu z plikami tego samego typu. Do każdej takiej umowy powinien być 

wystawiony aneks.  Jeżeli jest to duża ilość plików, utworzenie takich aneksów potrwa 

trochę czasu, więc wygodne byłoby oznaczanie, że dla konkretnej umowy aneks został 

wystawiony. Pomysłowość ludzka nie zna granic, więc każdy znalazłby sposób aby nie 

pogubić się w gąszczu plików. Jednak może się zdarzyć  sytuacja, że przy konkretnym 

zadaniu pracuje więcej niż jedna osoba i każdy znajdzie własne rozwiązanie. Takich 

przykładów, kiedy potrzebujemy wiedzieć coś o pliku bez konieczności dopytywania 

i wyszukiwania tych informacji,  jest mnóstwo.   

Praktycznym przykładem problemów związanych z katalogowaniem i opisywaniem 

plików a także monitorowaniem zmieniającej się zawartości, może być również 

struktura plików zawierająca zeskanowane strony roczników hydrologicznych. Prace 

nad utworzeniem takiej struktury są  długotrwałe i jeżeli  zajmuje się tym więcej niż 

jedna osoba to wymagają sprawnej koordynacji, aby zapobiec np. dwukrotnemu 

zeskanowaniu tego samego rocznika opadowego. Z takich zasobów na pewno chętnie 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 6 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

będą korzystać studenci, ponieważ jest to bardzo wygodna forma dostępu do danych. 

Strony roczników w formie elektronicznej są o tyle wygodniejsze, że można je 

skopiować i zabrać ze sobą, bez konieczności przepisywania danych w nich zawartych. 

W takiej strukturze, jak przytoczona wyżej, jeden plik odpowiada jednej stronie 

z rocznika  hydrologicznego, dlatego najczęściej nazwy ich odpowiadają numerowi 

strony. Aby takie nazewnictwo miało sens i pliki nie były nadpisywane (takie same 

nazwy plików dla różnych roczników), dla każdego rocznika musi być stworzony 

osobny katalog. Takie rozwiązanie nie jest jednak doskonałe, ponieważ zeskanowane 

strony mogą zostać zapisane w nieodpowiednich katalogach (dla innego rocznika). 

W takim przypadku błąd może nie zostać szybko wykryty, ponieważ plik o nazwie np. 

59 (będący zeskanowaną stroną nr 59 z rocznika hydrologicznego z roku 1980) 

w katalogu stworzonym dla rocznika hydrologicznego z 1979 roku nie wzbudzi 

podejrzeń. 

Aby ułatwić takie i inne zadania, w aplikacji FilM udostępniona została możliwość 

nadawania plikom dodatkowych atrybutów

3

 

2.2  Przeznaczenie projektowanego systemu. 

Aplikacja została tak zaprojektowana, aby umożliwić  użytkownikowi  

monitorowanie wybranej struktury plików (wybranego folderu) a zatem wszystkich  

plików zawartych w tym katalogu oraz w jego podkatalogach. Użytkownik powinien 

mieć możliwość wyboru typów plików, które chciałby obserwować. 

System przede wszystkim powinien zapewnić „ochronę” powierzonych mu plików. Pod 

pojęciem „ochrony” rozumiane jest  przechowywanie w bazie danych wszelkich 

informacji umożliwiających: 

•  poprawne zidentyfikowanie pliku w przypadku zmiany jego nazwy, 
•  odszukanie pliku w przypadku zmiany lokalizacji (w ramach obserwowanej 

struktury), 

                                                           

3

 Atrybut – atrybutem w niniejszej pracy nazywany będzie dodatkowy, definiowany przez użytkownika, 

opis pliku. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 7 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

•  sprawdzenie, czy pliki zostały zmodyfikowane od czasu ostatniego zapisu do 

bazy. 

Na podstawie zebranych danych powinna być możliwość jednoznacznej identyfikacji 

poszczególnych plików. System, po pobraniu danych z bazy, powinien umożliwić 

sprawdzenie czy konkretne informacje dotyczące monitorowanej struktury są tożsame 

ze stanem aktualnym owej struktury plików. Powinien również umożliwić 

użytkownikowi, w razie niezgodności ścieżki do pliku lub jego nazwy,  wybór czy dane 

zapisywane do bazy danych powinny zostać zaktualizowane czy może pliki na dysku 

powinny zostać przywrócone do stanu poprzedniego (ostatniego zapisu do bazy).

 

 

Każda aplikacja powinna umożliwiać użytkownikowi jak największą konfigurowalność, 

tak aby mógł  ją dostosować do swoich potrzeb. W związku z tym w projektowanym 

programie FilM powinna być  możliwość  decydowania o tym: 

•  który katalog ma być monitorowany, 
•  jakie typy plików będą monitorowane, 
•  czy struktura danych zostanie objęta wbudowaną  usługą indeksowania plików 

systemu Windows, 

•  jakie atrybuty będzie posiadał  każdy plik. 

 

Po wczytaniu danych (otwarciu projektu), aplikacja powinna zapewnić użytkownikowi, 

w obrębie monitorowanej struktury, możliwość: 

•  Weryfikacji poprawności  ścieżek wszystkich monitorowanych plików 

(sprawdzenie czy pliki znajdują się w wybranym przez użytkownika miejscu), 

•  sprawdzenia, czy od ostatniego zapisu zawartość plików się nie zmieniła, 
•  odnalezienie pliku, którego nazwa została zmieniona, 
•  sprawdzenia, czy w strukturze pojawiły się nowe pliki, 
•  sprawdzenia, czy i które pliki zostały usunięte. 

 

Monitorowanie w czasie rzeczywistym 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 8 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Projektowana aplikacja pozwalać  będzie  również na monitorowanie plików 

zawartych w wybranej strukturze, w czasie rzeczywistym. Jeżeli w obrębie 

monitorowanego katalogu pojawi się nowy plik lub już istniejący zostanie usunięty, 

jeżeli plik zostanie przeniesiony lub jego nazwa będzie zmodyfikowana a także jeśli 

zmieni się zawartość któregoś z plików,  użytkownikowi powinien zostać przekazany 

odpowiedni komunikat.   

 

Dodatkowe atrybuty 

 

Aby użytkownik mógł grupować i opisywać pliki na różne sposoby, aplikacja 

powinna zapewnić możliwość definiowania dodatkowych atrybutów dla plików. Aby 

zapewnić spójność dodatkowych danych dla wszystkich plików, każdy z nich powinien 

posiadać takie same atrybuty ( wartości dla tych atrybutów powinny oczywiście być 

odpowiednie dla każdego pliku).  

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 9 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

3.  Dostępne  narzędzia 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 10 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Śledzenie plików na dysku znajduje swoje zastosowanie z wielu różnych 

względów. Mechanizm ten używany jest do obserwacji procesu instalacji aplikacji 

pozwalając później na całkowitą ich deinstalację,  śledzenie co dany proces robi 

z plikami na dysku co pozwala często wykrywać podejrzane zachowania, może być 

użyty również do organizacji np. zdjęć czy muzyki. Aplikacje takie nabierają również 

znaczenia w przypadku systemów takich jak Windows, w których zasoby plikowe 

dzielone są przez wielu różnych użytkowników, którzy mają prawa do modyfikacji np. 

ich położenia. Istnieje wiele rozwiązań w rozmaity sposób powiązanych z zagadnieniem 

śledzenia zasobów dyskowych. Pewne jest, że ile osób chętnych do korzystania z tego 

typu narzędzi, tyle pomysłów jak mogłyby one wyglądać. Każde z poniżej omówionych 

rozwiązań może posłużyć do monitorowania zmian w strukturze plików, jednak wydaje 

się, że przeznaczone są dla zupełnie różnych grup odbiorców. 

  

3.1  FileWatcher 

FileWatcher (Rysunek 1) jest programem przeznaczonym do ciągłego 

monitorowania (w trakcie działania aplikacji) zmian zachodzących w wybranej 

strukturze katalogów. Ponadto aplikacja daje możliwość automatycznego wywoływania 

pewnej, zdefiniowanej akcji w odpowiedzi na komunikat o nowym pliku zapisanym 

w strukturze.  Akcją może być komenda, która powinna składać się z  nazwy pliku 

wykonywalnego typu exe, pliku wsadowego typu bat lub pliku typu com oraz 

parametrów. 

 

Ustawienia opcjonalne dla każdego monitorowanego katalogu: 

 

•  Użytkownik może wybrać, czy monitorowane będą zmiany tylko w wybranym 

katalogu, czy też brane pod uwagę będą również wszystkie podkatalogi. 

•  Możliwe jest podanie typów plików, które powinny być monitorowane. 
•  Dostępna jest również opcja „czekaj na wyłączny dostęp do pliku”. Zaznaczenie 

jej powoduje, że akcja może być wykonana pod warunkiem, że  żadna inna 

aplikacja nie przetwarza pliku. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 11 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

•  Zdefiniowana akcja domyślnie wykonywana jest wraz z nadejściem informacji 

o nowym pliku. Można jednak określić po jakim czasie od pojawienia się 

nowego pliku akcja zostanie uruchomiona. Opcja ta ma umożliwić 

uruchomienie jednego procesu dla grupy plików przychodzących razem. 

•  Również zależne od użytkownika są typy zdarzeń, które będą logowane przez 

program. Możliwe do wyboru są opcje „Nowe pliki”, „Uaktualnione pliki” oraz 

“Usunięte pliki”. Jeżeli użytkownik zaznaczyłby tylko opcję „Nowe pliki” to 

logi pojawiałyby się tylko w przypadku utworzenia nowego pliku w obrębie 

monitorowanego katalogu. 

Wydawcą tego programu jest DataMystic. Aplikację można pobrać ze strony 

producenta [14] po opłaceniu licencji. Dostępna jest również trzydziesto-dniowa wersja 

testowa. 

 

 

Rysunek 1.  Aplikacja FileWatcher 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 12 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

3.2  FolderWatch 

Program FolderWatch (Rysunek 5) zapewnia ochronę plików poprzez tworzenie 

kopii zapasowych (w wybranym przez użytkownika katalogu). Monitoring wybranego 

katalogu możliwy jest pod warunkiem, że program jest uruchomiony. W związku z tym,  

możliwe jest takie skonfigurowanie aplikacji, aby uruchamiała się wraz ze startem 

systemu.  

Aby dodać katalog do obserwowanych, należy utworzyć tzw. „Watch” a następnie 

skonfigurować ustawienia dotyczące sposobu reakcji na zmiany w folderze, oraz 

wybrać katalog, w którym zapisywane  będą kopie zapasowe. Aplikacja umożliwia 

dodanie nowej struktury do obserwowanych na dwa sposoby: 

Pierwszy sposób to utworzenie nowego „Watch’a” za pomocą opcji  „Add New 

Watch”. Pozwala ona na wybranie jednego katalogu, którego zawartość (tylko pliki) 

będzie monitorowana. Poprzez dostępne opcje użytkownik może modyfikować sposób 

reakcji na zmiany zachodzące w folderze.  

Drugim sposobem na dodanie nowego folderu do obserwowanych jest użycie opcji 

„Add multiple Watches AT once”. Opcja ta jest bardzo podobna do poprzedniej, z tym 

że tym razem mamy możliwość utworzenia nowych procesów (Watch) dla całej 

struktury danych (możliwe jest wybranie poziomu zagnieżdżenia katalogów dla których 

utworzone mają być procesy). Opcjonalnie jest również możliwe utworzenie struktury 

katalogów, odpowiadającej oryginalnej,  w folderze docelowym dla kopi zapasowych. 

Niestety jeżeli ta opcja nie zostanie zaznaczona i aplikacja nie odnajdzie katalogu 

o takiej samej nazwie w tym folderze,  monitoring nie zostanie uruchomiony. 

 

Najważniejsze opcje: 

 

•  Kryteria monitoringu. W tym miejscu podać można  nazwy  lub wybrać typy 

plików, które mają być monitorowane. 

•  Przydatną opcją może się okazać wybór sposobu uruchamiania konkretnego 

„Watch’a”.  Dostępne opcje to „Automatic” (startuje wraz z uruchomieniem 

aplikacji), „Manual” (stan procesu po uruchomieniu aplikacji będzie adekwatny 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 13 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

do ostatniego zapamiętanego stanu) oraz „Scheduled” (proces uruchamiany 

będzie cyklicznie w zdefiniowanych przez użytkownika odstępach czasu). 

•  Sposób reakcji na zdarzenie

4

. Dostępne opcje to „Copy” (skopiowanie pliku), 

„Move” (przeniesienie pliku) oraz „Append” (opcja przeznaczona dla plików 

nieedytowalnych np. filmów, ponieważ zmiany w oryginalnych plikach nie będą 

uwzględniane w kopiach zapasowych). 

•  W zależności od wybranego sposobu reakcji na zdarzenie dostępne są opcje: 

 

o  Dla każdego nowego folderu (utworzonego  po starcie procesu 

monitorowania) w wybranym katalogu (tylko dla pierwszego poziomu 

zagnieżdżenia), utworzony zostanie nowy „Watch” (Copy, Move, Append). 

o  Kopia zapasowa zostanie usunięta jeśli oryginalny plik zostanie usunięty 

(Copy, Append). 

 

Wydawcą tego programu jest firma Diginaut. Na stronie domowej producenta dostępna 

jest wersja testowa (działająca przez dwadzieścia jeden dni). Po opłaceniu licencji 

możliwe jest pobranie pełnej wersji. 

 

 

Rysunek 2 Aplikacja FolderWatch 

                                                           

4

 Zdarzenie –  zdarzeniem może być edycja pliku istniejącego, dodanie nowego pliku, usunięcie pliku. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 14 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

3.3  FileMon 

Aplikacja FileMon (Rysunek 3) pozwala na monitorowanie w czasie 

rzeczywistym operacji przeprowadzanych na systemie plików. Jej zaawansowane 

możliwości sprawiają,  że jest ona dobrym narzędziem aby odkrywać w jaki sposób 

aplikacje Windows korzystają z plików (w szczególności bibliotek DLL), ułatwia 

również rozwiązywanie problemów powiązanych z konfiguracją plików aplikacji. 

FileMon daje informacje o rodzaju wykonywanej operacji na pliku (np. odczyt, zapis, 

otwarcie, usunięcie ...), o tym jaki proces wykonał operacje, o jej statusie itp. Aplikacja 

umożliwia również monitorowanie zasobów na dyskach sieciowych (dla Windows 

NT/2K/XP). 

 

 

Rysunek 3 Aplikacja FileMon 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 15 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

4.   Technologie zastosowane 

w aplikacji „FilM” 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 16 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Jednym z istotniejszych problemów w procesie monitorowania struktury jest 

jednoznaczna identyfikacja plików. Identyfikacja na podstawie nazwy okazała się 

niewystarczająca, ponieważ nie daje żadnej informacji na temat zawartości pliku. 

Przechowywanie kopii plików umożliwiłoby porównanie zawartości, jednak 

spowodowałoby to, zbyt duży rozmiar bazy danych. Rozwiązaniem tego problemu są, 

zaczerpnięte z kryptografii, jednokierunkowe funkcje skrótu. W rozdziale 4.1, w celu 

wprowadzenia, przedstawione zostały ogólne zagadnienia dotyczące kryptografii oraz  

algorytmy szyfrujące, będące istotną częścią tej dziedziny nauki. Najszerzej omówione 

zostały oczywiście funkcje skrótu a także, związany z tą tematyką interfejs 

udostępniany przez .NET Framework i sposób w jaki został  użyty w aplikacji do 

obliczeń wartości tych funkcji.

 

Projektowany system umożliwia monitorowanie zmian zachodzących w obrębie 

wybranej struktury plików. Może się jednak zdarzyć,  że plik lub pliki zostaną 

przeniesione poza obserwowaną strukturę. Aby taki plik wyszukać można użyć, 

udostępnianą przez Windows, wyszukiwarkę plików. System Windows udostępnia 

również usługę indeksowania, która odpowiednio użyta, może znacznie przyspieszyć 

proces wyszukiwania konkretnych plików w zasobach dyskowych. Indeksy plików 

budowane mogą być również w oparciu o ich zawartość (dla niektórych typów plików), 

co rozszerza  możliwości przeszukiwania. W aplikacji został udostępniony interfejs, 

który umożliwi podstawową konfigurację ustawień systemowych i obsługę tej usługi. 

W części 4.2 umieszczony został opis działania systemowej usługi indeksowania 

a także opis sposobu implementacji tego rozwiązania w aplikacji, przy użyciu metod 

udostępnianych przez .NET. 

Aby umożliwić weryfikację zmian w strukturze po ponownym uruchomieniu 

aplikacji, dane dotyczące zarówno projektu jak i plików muszą być przechowywane 

w bazie danych. Opisany w rozdziale 4.3 system bazodanowy SQLite został wybrany, 

ponieważ  łączy prostotę  użytkowania i administrowania z dość szerokimi 

możliwościami. Baza danych nie wymaga instalacji ani konfiguracji a funkcje jakie 

udostępnia są w zupełności wystarczające dla aplikacji.  

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 17 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

4.1  Kryptografia  

  Kryptologia - nauka o bezpiecznych sposobach przekazywania informacji, obejmuje 

dwa działy. Jednym z nich jest Kryptografia. Drugim działem,  ściśle związanym 

z pierwszym jest Kryptoanaliza.  

Kryptografia jest to dziedzina wiedzy, która zajmuje się zagadnieniami ochrony 

informacji poprzez szyfrowanie danych.  Współcześnie w kryptografii wyróżnia się dwa 

główne nurty: kryptografię symetryczną (z 

jednym kluczem szyfrowania) 

i asymetryczną (z parą zależnych kluczy – prywatnym i publicznym) [7]. 

Kryptoanaliza natomiast zajmuję się deszyfrowaniem wiadomości (proces ten określa 

się czasem jako „łamanie kodu”) bez znajomości odpowiedniego klucza. Każdy, lub 

prawie każdy miał do czynienia w swoim życiu z „produktem” kryptografów. Jedną 

z technik w której kryptografia ma zastosowanie jest elektroniczny odpowiednik 

tradycyjnego podpisu – podpis cyfrowy, oparty o kryptografię asymetryczną. Coraz 

bardziej popularny mechanizm podpisu elektronicznego

 

 wykorzystywany jest np. przez 

banki, które przesyłają wyciągi z kont (opatrzone właśnie podpisem cyfrowym) drogą 

e-mail’ową.

 

Zaopatrując się w zestaw do składania podpisu cyfrowego nieco 

„ułatwiamy” sobie życie, ponieważ możliwe jest już, aby za pomocą drogi 

elektronicznej, składać deklaracje podatkowe, deklaracje ZUS, wystawiać faktury VAT 

itp. 

Kryptografia znalazła również zastosowanie w protokołach, służących do bezpiecznej 

transmisji danych np. SSL. Protokół SSL jest protokołem typu klient- serwer. Jego 

zadaniem jest zapewnienie poufności (szyfrowanie) przesyłanych danych, integralności 

tych danych oraz sprawdzenie autentyczności serwera z którym się komunikujemy. 

Czy kryptografia daje bezpieczeństwo? 

Obecnie w szyfrowaniu danych wykorzystywane są złożone matematyczne procedury, 

teoretycznie bezpieczne i odporne na próby włamania. Jednak osoba mająca do 

dyspozycji wystarczająco dużą moc obliczeniową, lub posiadająca wystarczająco dużo 

czasu mogłaby „złamać” taki kod.  

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 18 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

4.1.1  Algorytmy szyfrujące 

Algorytm symetryczny 

 

      Algorytm  symetryczny  zwany  jest  inaczej algorytmem z kluczem tajnym. Przy 

zastosowaniu tego algorytmu tekst jawny jest szyfrowany i deszyfrowany za pomocą 

tego samego klucza. Problemem, który się pojawia, jest przekazanie tajnego klucza 

odbiorcy zaszyfrowanej wiadomości. Jego ujawnienie będzie się wiązało z możliwością 

odszyfrowania kryptogramu przez każdego, kto ten klucz zdobędzie. Pomimo iż przy 

szyfrowaniu i deszyfrowaniu stosowany jest ten sam klucz, niemal zawsze korzysta się 

z dwóch procedur

5

  (osobne dla szyfrowania i deszyfrowania). Algorytmy symetryczne 

zaprojektowane zostały pod kątem szybkości działania [1], [2]. 

 

Algorytm asymetryczny 

 

      Algorytm  asymetryczny  zwany  jest  również algorytmem z kluczem publicznym 

bądź jawnym. Sądząc po nazwie można byłoby przypuszczać,  że jest to algorytm 

podobny do symetrycznego z tym, że klucz jest ujawniany. Szyfrowanie jednak nie 

miałoby wtedy najmniejszego sensu. Sztywnym założeniem jest więc używanie dwóch 

różnych kluczy (klucza publicznego oraz klucza prywatnego). Zarówno do szyfrowania 

jak i deszyfrowania może być używana jedna procedura

5

 (ale równie dobrze mogą być 

użyte dwie procedury). Asymetryczność algorytmu polega na tym, iż na podstawie 

klucza publicznego niemożliwe

6

 jest wyliczenie klucza prywatnego, natomiast w drugą 

stronę (czyli wyliczenie klucza publicznego na podstawie klucza prywatnego) jest 

wykonalne. Zasadą jest, że klucz publiczny jest przekazywany „szerszemu odbiorcy” 

(czyli każdemu kto będzie przesyłał nam szyfrowaną wiadomość), natomiast klucz 

prywatny jest „ściśle tajny” i nie może być ujawniony.  

W większości przypadków szyfrowanie tekstu jawnego wykonywane jest za pomocą 

klucza publicznego a deszyfrowanie za pomocą klucza prywatnego. Zdarzają się jednak 

                                                           

5

 Procedura – opis wszystkich czynności, które należy wykonać aby zaszyfrować tekst jawny (uzyskać 

szyfrogram) lub odszyfrować szyfrogram (uzyskać tekst jawny). 

6

„ Niemożliwe” rozumiemy tu w sensie kryptologicznym, tzn. nie można tego zrealizować przy 

zastosowaniu znanych środków w praktycznie akceptowalnym czasie [1]. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 19 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

przypadki kiedy następuje sytuacja zupełnie odwrotna np. przesłanie podpisu 

identyfikującego osobę – nadawcę [1]. 

4.1.2  Jednokierunkowe funkcje haszujące 

Kryptografia nie polega tylko i wyłącznie na szyfrowaniu danych. Należy również 

pamiętać o integralności danych. W tym celu wykorzystywane są jednokierunkowe 

funkcje haszujące zwane również jednokierunkowymi funkcjami skrótu (z ang. One 

Way Hash Function).  

Jednokierunkowe funkcje skrótu określane są również jako funkcje kompresujące, 

funkcje koncentrujące, skróty wiadomości i kryptograficzne sumy kontrolne. Pod 

pojęciem funkcji skrótu kryje się zatem przekształcenie odwzorowujące wiadomość 

o dowolnej długości w ciąg bitów o określonej, ustalonej długości. Jednokierunkowość 

natomiast oznacza, że niemożliwe jest wyznaczenie funkcji odwrotnej, takiej która 

pozwoli na odszyfrowanie wiadomości.  

Jednokierunkowa funkcja skrótu musi spełniać pewne wymagania.  

Jednym z podstawowych jest to, aby dla znanej wartości funkcji haszującej niemożliwe 

było wyliczenie takiego ciągu bajtów, który generowałby taką samą wartość haszującą. 

Funkcja skrótu,  musi zapewniać odporność na kolizje (bezkonfliktowość). Spełni ten 

warunek, gdy dla zadanego ciągu bajtów, nie będzie możliwe (a przynajmniej będzie 

bardzo trudne) znalezienie innego ciągu bajtów o tej samej wartości haszującej. 

Wymagane jest również, aby na podstawie wartości funkcji haszującej niemożliwe było 

wywnioskowanie wiadomości wejściowej. Zmiana nawet jednego bitu powinna 

spowodować wygenerowanie zupełnie innej wartości. 

Funkcje skrótu nie wykorzystują  żadnych kluczy. Zgodnie z założeniem, każdy 

(znający algorytm) powinien  być w stanie obliczyć wartość funkcji. Przeszkodą może 

być skomplikowana budowa jednokierunkowych funkcji haszujących [1]. 

Do czego mogą posłużyć takie funkcje haszujące, skoro odwrócenie tego procesu jest 

niemożliwe? 

Pierwszą, nasuwającą się odpowiedzią jest przechowywanie haseł. Bardzo 

niebezpiecznym rozwiązaniem jest przechowywanie haseł jawnie. Nawet jeśli dostęp do 

pliku czy bazy danych jest ograniczony, istnieje spore prawdopodobieństwo obejścia 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 20 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

tych zabezpieczeń. Można sobie wyobrazić co stałoby się,  gdyby bank  przechowywał 

w ten sposób hasła do kont internetowych i zostałyby one przechwycone.  

Innym zastosowaniem funkcji skrótu, jest weryfikacja zgodności danych. Z różnych 

przyczyn przesyłane dane mogą ulec modyfikacji. Zgodność tych danych można 

sprawdzić poprzez wyliczenie wartości funkcji skrótu (weryfikacja możliwa jest pod 

warunkiem,  że znana będzie wartość funkcji wyliczona na podstawie niezmienionych 

danych).  

 

Najpopularniejsze ataki przeciw funkcjom haszującym 

 

•  Atak słownikowy. Jest to najprostsza metoda łamania haseł przechowywanych 

pod postacią wartości funkcji skrótu. Celem „atakującego” jest odgadnięcie 

jakiegokolwiek hasła do systemu (nie ma znaczenia którego użytkownika). Jak 

sama nazwa wskazuje atak ten polega na odgadywaniu haseł na podstawie plików 

z listą słów, często tworzoną na podstawie ogólnodostępnych słowników. Nawet 

długie hasło nie stanowi przeszkody jeśli jest logicznym słowem (np. stokrotka) 

przechowywanym w słowniku, dużo bardziej bezpieczne są ciągi przypadkowych 

znaków (np. Qd$jn&) [12].  

•  Atak urodzinowy. Atak ten polega na znalezieniu kolizji funkcji haszującej. 

Załóżmy,  że mamy dokument, który ma być opatrzony podpisem cyfrowym 

(może to być np. umowa). Ze względu na wielkość tekstu podpisywana jest 

wartość funkcji haszującej dla niego obliczona. Zawartość dokumentu trochę nam 

nie odpowiada, więc tworzymy drugi dokument, który będzie „poprawioną” 

wersją  umowy. Modyfikujemy go tak, aby spełniał nasze wymagania. Jeżeli 

dokonamy drobnych modyfikacji (np. dodanie kilku spacji) obu dokumentów, tak 

aby powstała odpowiednia ilość różnych wersji, to z dużym 

prawdopodobieństwem znajdziemy parę poprawna umowa – zmodyfikowana 

umowa, która będzie mieć te same wartości funkcji haszującej. Modyfikujemy 

obie wersje dokumentu (oryginalnego i sfałszowanego) ponieważ znalezienie 

umowy (wśród kolekcji zmodyfikowanych wersji sfałszowanej umowy), która 

posiada tę samą wartość funkcji skrótu co dokument oryginalny (bez modyfikacji) 

ma mniejsze prawdopodobieństwo niż znalezienie pary dokumentów o tej samej 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 21 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

wartości sumy kontrolnej (wśród kolekcji zmodyfikowanych wersji dokumentu 

oryginalnego i sfałszowanego) [3].  

4.1.3  Rozwiązania .NET 

     Framework  .NET  dostarcza  wielu  standardowych algorytmów z dziedziny 

kryptografii. Algorytmy  te są proste w użyciu a ich autorzy dołożyli starań by 

optymalnie dobrać domyślne parametry. Dodatkowo, w modelu kryptograficznym .NET  

hierarchia obiektów, podejście oparte na strumieniach jak i konfiguracja obiektów są 

niezwykle elastyczne i dają się w łatwy sposób rozszerzać.  

 

Hierarchia obiektów. 

 

 System 

zabezpieczeń .NET  implementuje rozszerzalny zbiór klas oraz 

interfejsów, których hierarchię można przedstawić jak poniżej: 

Klasy „typ algorytmu” – na przykład algorytmy symetryczne lub algorytmy haszujące. 

Ten poziom klas jest abstrakcyjny. 

Klasy algorytmów – dziedziczą z klas typów algorytmów, na przykład RC2 lub SHA1. 

Ten poziom klas jest abstrakcyjny. 

Implementacje algorytmów – dziedziczą z klas algorytmów, na przykład 

RC2CryptoServiceProvider albo SHA1Managed. Ten poziom klas jest w pełni 

zaimplementowany. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 22 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Wspomniane powyżej hierarchie klas przedstawione są na rysunkach 4 i 5. 

 

 

Rysunek 4.  Klasy przestrzeni nazw System.Security.Cryptography  dla algorytmu szyfrowania 

symetrycznego, za [7] 

 

 

Rysunek 5. Klasy przestrzeni nazw System.Security.Cryptography dla algorytmu szyfrowania 

haszującego, za [7] 

 

 

Używając takiego modelu dziedziczenia, łatwo jest dodać nowy algorytm albo 

nową implementację istniejącego algorytmu. Na przykład aby stworzyć nowy algorytm 

z publicznym kluczem, należałoby zdefiniować nową klasę dziedziczącą z klasy 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 23 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

AsymetricAgorithm. Aby stworzyć nową implementację tego algorytmu należałoby 

stworzyć nową, nie abstrakcyjną klasę dziedziczącą z klasy algorytmu. Dzięki takiemu 

podejściu odpowiednio wykorzystując polimorficzne właściwości klas, można 

w istniejących implementacjach łatwo podmieniać implementację algorytmów. 

 

Podejście strumieniowe. 

 

 Biblioteka 

implementująca algorytmy kryptograficzne w .NET zaprojektowana 

jest w sposób zorientowany na przetwarzanie strumieni. To podejście zastosowane jest 

zarówno w implementacji algorytmów symetrycznych jak i haszujących. W tym 

kontekście bardzo ważną klasą staje się  CryptoStream dziedziczącą z klasy Stream

Wszystkie obiekty kryptograficzne oparte o przetwarzanie strumieni używają jednego 

wspólnego interfejsu obsługującego transfer danych wejściowych.  CryptoStream jest 

swego rodzaju łącznikiem między danymi wejściowymi a konkretną implementacją 

transformacji tych danych. Poniżej znajduje się przykładowe użycie  CryptoStream do 

szyfrowania z użyciem algorytmu symetrycznego Rijndael

7

 

static

 

void

 Main() 


    

// Stworzenie obiektu Rijndael object pozwalające na  

    

// wygenerowanie klucza oraz wektora inicjalizacyjnego 

    

Rijndael

 RijndaelAlg = 

Rijndael

.Create(); 

 
    

string

 sData = 

"Tekst do zaszyfrowania"

    

string

 FileName = 

"Zaszyfrowany.txt"

 
    

// Szyfrowanie danych przy użyciu odpowiedniego klucza  

    

// oraz wektora IV 

     EncryptTextToFile(sData, FileName, RijndaelAlg.Key, 
        RijndaelAlg.IV); 
 
    

// Rozszyfrowanie danych przy użyciu odpowiedniego  

    

// klucza oraz wektora IV 

    

string

 Final = DecryptTextFromFile(FileName, RijndaelAlg.Key, 

       RijndaelAlg.IV); 

                                                           

7

 Rijndael (inaczej AES ang. Advanced Encryption Standard) to symetryczny szyfr blokowy przyjęty 

przez NIST w wyniku konkursu ogłoszonego w roku 1997. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 24 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 


 

public

 

static

 

void

 EncryptTextToFile(

String

 Data, 

String

 

FileName, 

byte

[] Key, 

byte

[] IV) 


    

// Otworzenie pliku do zapisu zaszyfrowanych danych 

    

FileStream

 fStream = 

File

.Open(FileName, 

FileMode

.OpenOrCreate); 

 
    

// Stworzenie obiektu Rijndael (dziedziczy z  

    

// SymmetricAlgorithm) 

    

Rijndael

 RijndaelAlg = 

Rijndael

.Create(); 

 
    

// Stworzenie obiektu CryptoStream powiązanego z plikiem  

    

// (FileStream),  

    

// kluczem szyfrowania oraz wektorem inicjalizacyjnym 

    

CryptoStream

 cStream = 

new

 

CryptoStream

(fStream, 

    RijndaelAlg.CreateEncryptor(Key, IV), 
    

CryptoStreamMode

.Write); 

 
    

// Stworzenie obiektu do zapisu strumienia 

    

StreamWriter

 sWriter = 

new

 

StreamWriter

(cStream); 

 
    

// Zapis danych do strumienia, zaszyfrowanie ich. 

    sWriter.WriteLine(Data); 

 

public

 

static

 

string

 DecryptTextFromFile(

String

 FileName, 

byte

[]  

    Key, 

byte

[] IV) 


    

// Otwórz plik z danymi wejściowymi 

    

FileStream

 fStream = 

File

.Open(FileName, 

         

FileMode

.OpenOrCreate); 

 
    

// Stworzenie obiektu Rijndael (dziedziczy z 

    

// SymmetricAlgorithm) 

    

Rijndael

 RijndaelAlg = 

Rijndael

.Create(); 

 
    

// Stworzenie obiektu CryptoStream powiązanego z plikiem 

    

// (FileStream), kluczem szyfrowania oraz wektorem 

    

// inicjalizacyjnym 

    

CryptoStream

 cStream = 

new

 

CryptoStream

(fStream, 

    RijndaelAlg.CreateDecryptor(Key, IV), 
        

CryptoStreamMode

.Read); 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 25 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

    

// Stworzenie obiektu do odczytu strumienia 

    

StreamReader

 sReader = 

new

 

StreamReader

(cStream); 

 
    

string

 val = 

null

 
    

// Odczytanie danych ze strumienia czyli rozszyfrowanie ich. 

    

return

 sReader.ReadLine(); 


    

 

 

Z racji tego, że wszystkie obiekty kryptograficzne oparte o przetwarzanie strumieni 

oparte są o ten sam interfejs, można łączyć ze sobą wiele obiektów (takich jak obiekty 

haszujące czy obiekty kodujące), co pozwala na przeprowadzanie na danych 

wejściowych wielu operacji bezpośrednio. Taki właśnie model oparty o strumienie 

pozwala również na zespalanie ze sobą wielu obiektów, na przykład połączenie 

algorytmów enkrypcji i haszowania mogą być widziane jako jeden obiekt 

przetwarzający strumienie, niezależnie od tego, że został stworzony ze zbioru innych 

obiektów. 

 

 Algorytmy 

haszujące mogą zostać użyte w analogiczny sposób jak pokazuje to 

przykład w ramce powyżej (oczywiście bez możliwości rozszyfrowania). Wszystkie 

klasy haszujące dostępne w przestrzeń nazw System.Security.Cryptography dziedziczą 

z klasy HashAlgorithm, co sprawia, że wszystkie jej implementacje muszą udostępniać 

metodę: 
 

public byte[] ComputeHash(byte[]); 

Dzięki czemu operacja haszowania może być przeprowadzona w bardzo prosty sposób, 

tak jak pokazano to w ramce poniżej: 

 

///

 

<summary> 

///

 zwraca wyliczoną wartość funkcji skrótu dla pliko o podanej  

///

 ścieżce 

///

 

</summary> 

///

 

<param name="a_path">ścieżka do pliku</param> 

///

 

<returns></returns> 

 

public

 

string

 ComputeSHA1Checksum(

string

 a_spath) 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 26 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

    

string

 strResult = 

""

    

string

 strHashData = 

""

    

byte

[] arrbytHashValue; 

    System.IO.

FileStream

 oFileStream = 

null

     
    System.Security.Cryptography.

SHA1CryptoServiceProvider

 

oSHA1Hasher = 

               

new

 

System.Security.Cryptography.

SHA1CryptoServiceProvider

(); 

    

try 

    { 
        oFileStream = GetFileStream(a_spath); 
        arrbytHashValue = oSHA1Hasher.ComputeHash(oFileStream); 
        oFileStream.Close(); 

        strHashData =  
                 System.

BitConverter

.ToString(arrbytHashValue); 

        strHashData = strHashData.Replace(

"-"

""

); 

        strResult = strHashData; 
    } 
    

catch

 (System.

Exception

 ex) 

    { 
        System.Windows.Forms.

MessageBox

.Show(ex.Message, 

"Próba  

           wyliczenia wartości funkcji skrótu niepowiodła się"

        System.Windows.Forms.

MessageBoxButtons

.OK, 

        System.Windows.Forms.

MessageBoxIcon

.Error, 

        System.Windows.Forms.

MessageBoxDefaultButton

.Button1); 

    } 

    

return

 (strResult); 

///

 

<summary> 

///

 zwraca strumień pliku potrzebny do wyliczania wartości funkcji 

 

///

 skrótu 

///

 

</summary> 

///

 

<param name="p">ścieżka do pliku</param> 

///

 

<returns></returns> 

private

 

FileStream

 GetFileStream(

string

 a_spath) 


    

FileStream

 streamReader; 

    

return

 streamReader = 

File

.OpenRead(p);             

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 27 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Powyższy fragment kodu oblicza 160 bitową wartość funkcji SHA1 z danych 

wejściowych, używając implementacji dostarczonej przez CSP

8

 ( ang. Cryptographic 

Service Provider).  

 

Konfiguracja środowiska. 

 

 Konfiguracja 

środowiska kryptograficznego pozwala na wiązanie specyficznych 

implementacji algorytmów szyfrujących z konkretnymi nazwami, pozwalając na łatwe 

rozszerzanie zbioru klas kryptograficznych w .NET Framework. Windowsowe SDK 

(Software Development Kit) pozwala administratorowi komputera na konfiguracje 

domyślnych algorytmów szyfrowania, jak również ich implementacji, których 

framework .NET i odpowiednio napisane aplikacje będą  używać. Na przykład 

przedsiębiorstwo mające swoje własne implementacje algorytmów szyfrujących może 

skonfigurować swoje komputery w taki sposób aby były one używane domyślnie 

zamiast tych wydanych razem z Windows SDK. Oczywiście każda aplikacja może 

samodzielnie wybierać rodzaj implementacji algorytmu, jednakże rekomendowane jest 

aby tworzyć obiekty używając systemowej konfiguracji kryptograficznej. Możliwe jest 

dodanie własnej, sprzętowej bądź programowej implementacji algorytmu i nadanie jej 

prostej wybranej przez siebie nazwy, dzięki której aplikacje będą mogły z niej 

korzystać. Jeśli nazwa algorytmu nie jest wyspecyfikowana w pliku konfiguracyjnym 

zostaną  użyte ustawienia domyślne. 

 

4.2  Indeksowanie w Windows 

 Usługa indeksowania stała się bazową usługą w rodzinie systemów Windows 

poczynając od wersji 2000. Jej działanie można najprościej opisać jako wyciąganie 

informacji z plików i tworzenie indeksowanych katalogów,  które znacznie poprawiają 

efektywność i szybkość przeszukiwania. Serwis indeksowania potrafi tworzyć swoje 

                                                           

8

 W systemach Microsoft Windows Cryptographic Service Provider jest programistyczną biblioteką, 

która implementuje funkcje kodujące/dekodujące, które mogą być później używane przez inne aplikację. 
CSP dostarcza tym samym interfejsu kryptograficznego (ang. Cryptographic Application Programming 
Interface
, inaczej CryptoAPI, Microsoft Cryptography API, lub po prostu CAPI). 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 28 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

katalogi zarówno na podstawie właściwości plików jak i ich treści. Indeksowane mogą 

być katalogi znajdujące się na danym hoście, jak i te na zdalnych maszynach, pliki 

mogą być po prostu częścią wybranego systemu plików albo częścią wirtualnej sieci 

Web udostępnianej przez np. IIS ( ang. Internet Information Services ).  

Usługa indeksowania wyciąga informacje z plików poprzez ich filtrowanie za 

pomocą specjalnych komponentów rozumiejących strukturę poszczególnych formatów 

plików. 

 Możliwe jest tworzenie własnych filtrów, muszą one jednak implementować 

interfejs IFilter, który dostarcza metody pozwalające na przeczytanie pliku, dokonanie 

ekstrakcji informacji tekstowych oraz właściwości plików. Systemy Windows 2000 

i XP  dostarczają wiele wbudowanych filtrów pozwalających na czytanie plików np. 

Microsoft Office, HTML, czy zwykłych plików tekstowych. 

 Po 

użyciu filtrów, serwis indeksowania scala później przeczytane informacje do 

katalogów indeksu pozwalając w ten sposób na szybsze przeszukiwanie monitorowanej 

struktury. Indeksowanie polega na filtrowaniu, tworzeniu pól indeksu i grupowanie ich 

w katalogi. Ostatnim krokiem procesu indeksowania jest tworzenie katalogu, który 

zawiera indeks główny (oraz inne indeksy pomocnicze) jak również listę 

posortowanych wyrazów oraz ich lokalizację w zbiorze indeksowanych dokumentów. 

 

System Windows posiada podstawowe mechanizmy pozwalające na tworzenie 

zapytań do serwisu indeksowania jak również narzędzi do zarządzania indeksami. 

W momencie gdy usługa indeksowania jest włączona, proste wyszukiwanie plików lub 

folderów (z menu start) spowoduje przeglądanie katalogów indeksu. Za pomocą 

narzędzi administracyjnych można zatrzymać/wstrzymać/uruchomić ponownie usługę 

indeksowania jak również zarządzać jej bogatym zbiorem parametrów.  

 Wszystkie 

parametry 

usługi indeksowania przechowywane są w rejestrze 

systemowym. Proces indeksowania wymaga wykonania wielu obliczeń oraz operacji 

dyskowych, dlatego system Windows uruchamia procedurę indeksowania w momencie 

gdy użytkownik nie jest aktywny.  

 

Platforma programistyczna SDK (ang. Software Development Kit) dostarcza 

dodatkowych wszechstronnych i elastycznych mechanizmów pozwalających na 

programową współpracę z serwisem indeksującym. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 29 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 

Użycie usługi indeksowania w programach C# 

 

Windowsowe SDK dostarcza wielu możliwości współpracy programów z usługą 

indeksowania. W tej części opisane zostaną te wykorzystane w niniejszej pracy. 

 

Konfiguracja usługi. 

 

 

Serwis indeksowania dostarcza trzech kategorii obiektów, które mogą zostać 

wykorzystane w programach współpracujących z tą usługą: 

 

•  Administration Automation Objects 
•  Query Automation Objects  
•  Language Resource Objects  

 

W tej pracy wykorzystane zostały obiekty z pierwszej grupy, które zawarte  są w 

bibliotece ciodm.dll. Pozwalają na zarządzanie usługą indeksowania. 

 

AdminIndexServer   - pozwala na zarządzanie usługą indeksowania. Daje identyczne 

możliwości jak te dostępne poprzez narzędzia administracyjne systemu (Microsoft 

Management Console). Można za pomocą tego obiektu np. zatrzymać  bądź  włączyć 

usługę indeksowania, dodać nowe indeksy, wymusić indeksowanie w danej chwili itp. 

 

CatAdm – pozwala na zarządzanie pojedynczym indeksem. Pojedynczy indeks będzie 

tu rozumiany jako zbiór katalogów do indeksowania. 

 

ScopeAdm – pozwala na zarządzanie pojedynczym zakresem, czyli innymi słowy, 

katalogiem który ma być indeksowany. 

 

W systemie może być zdefiniowane wiele indeksów, każdy mogą odpowiadać za 

indeksowanie wielu katalogów. 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 30 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Dostęp do indeksowanych danych. 

 

Do realizacji dostępu do rezultatów działania usługi indeksowania wykorzystany 

został dostawca OLE DB

9

 dla usługi indeksowania. Z tego poziomu możliwy jest 

dostęp (tylko do odczytu) do zawartości poszczególnych indeksów. OLE DB jest 

zbiorem interfejsów, które opisują w jaki sposób aplikacje klienckie mogą pobierać 

dane ze źródła oraz w jaki sposób dane te w postaci tabel mają być prezentowane. 

Dostęp do danych zawartych w indeksie może uzyskać za pomocą kilku linii kodu: 

 

 

//Konfiguracja połączenia dostawca OLE DB usługi indeksowania to 

MSIDXS 
//Jako parametr należy również podać nazwę indeksu 

string

 connectionString = 

"Provider= \"MSIDXS\";Data 

      Source=\"NazwaIndeksu\";"

); 

 

//utworzenie obiektu połączenia 

OleDbConnection

 connection = 

new

 

OleDbConnection

(connectionString); 

 

//zapytanie 

string

 query = 

"SELECT Path FROM scope() Where ... ;"

 ; 

 

//utworzenie komendy, powiązanie jej z połączeniem 

OleDbCommand

 command = 

new

 

OleDbCommand

(query, connection); 

 

//otwarcie połączenia 

connection.Open(); 
             

//wykonanie komendy 

OleDbDataReader

 reader = command.ExecuteReader(); 

 

 
 

 

 

 

                                                           

9

 OLE DB (ang. Object Linking and Embedding, Database, czasem opisywany jako OLEDB lub OLE-

DB) - interfejs programistyczny firmy Microsoft służący do uzyskiwania dostępu do danych. Jest to 
obiekt COM, który funkcjonuje w podobny sposób jak ODBC, ale w odniesieniu do dowolnego źródła 
danych, a nie tylko baz danych SQL. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 31 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Wykorzystanie usługi Indexing Service. 

 

 Usługa indeksowania została wykorzystana w niniejszej pracy jako opcjonalny 

element wspomagający wyszukiwanie obiektów przeniesionych z monitorowanej 

struktury. Aplikacja FilM dostarcza bardzo prostego interfejsu pozwalającego na 

dodawanie obszarów do indeksowania, konfiguracje samej usługi jak i jej 

przeszukiwanie. Użytkownik może dodawać katalogi które będą później indeksowane 

przez systemową usługę. Będzie miało to sens dla katalogów spoza monitorowanej 

struktury i znacznie przyśpieszy ich znajdowanie (po nazwie lub zawartości) 

w przypadku gdy zostaną one przeniesione w obszar nie monitorowany przez FilM. 

 

4.3  SQLite 

SQLite jest biblioteką, która implementuje silnik SQL. Daje możliwość używania 

bazy danych bez konieczności uruchamiania osobnego procesu serwera. Chociaż jest 

biblioteką napisaną w języku C, to posiada również API do innych języków 

programowania takich jak Perl, PHP (od wersji PHP5 biblioteka standardowo 

dołączana), Ruby, C++, Python, Java, Tcl, Visual Basic i oczywiście do platformy 

.NET. O SQLite nie należy myśleć jako o zastępstwie dla Oracle czy MS SQL a raczej 

jako  o zamienniku funkcji fopen() [9]. Na domowej stronie Harvard Mathematics 

Department Computing ta baza danych została opisana jako „prosta, mała, szybka 

i niezawodna” [11]. 

Zawartość całej bazy danych przechowywana jest na dysku w jednym pliku, który może 

osiągnąć rozmiar nawet do dwóch  terabajtów. Niewątpliwie zaletą, którą doceni każdy 

użytkownik aplikacji opartej o tę  właśnie bazę danych jest fakt, iż nie wymaga ona 

żadnej instalacji ani konfiguracji. Ponieważ wszystkie dane znajdują się w jednym 

pliku, mogą one być łatwo przenoszone pomiędzy różnymi maszynami.  

SQLite udostępnia większość standardu ANSI SQL-92, oraz transakcje ACID. 

Jest jednak kilka cech, których użytkownikowi innych baz danych może brakować.  

 

 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 32 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

W SQLite, jak do tej pory, zabrakło: 

 

•  Kluczy obcych (Foreign Key), które zapewniają integralność danych (nie można 

odwołać się do rekordu w innej tabeli, który nie istnieje). 

 

•  Niektórych możliwości, które zazwyczaj daje polecenie ALTER TABLE. W 

SQLite nie można  użyć wariantu ALTER TABLE  takiego jak DROP 

COLUMN (usuwanie kolumny) czy ADD CONSTRAINT (dodanie 

ograniczenia np. klucza podstawowego). 

 

•  Operacji prawostronnego złączenia RIGHT OUTER JOIN,  oraz pełnego 

złączenia FULL OUTER JOIN. 

 

•  Pełnej obsługi wyzwalaczy (TRIGGER). Pominięta została możliwość wyrobu 

FOR EACH STATEMENT (wyzwalacz zadziałałby dla całej operacji), 

domyślnie więc wyzwalacze tworzone są z opcją FOR EACH ROW (wyzwalacz 

zadziała dla każdego wiersza). Pominięta również została opcja INSTEAD OF 

dla tabel (możliwe tylko dla widoków), której „ustawienie” powoduje, że trigger 

zostanie wykonany zamiast zdarzenia, które go uruchomiło. 

 

•  Możliwości wykonania operacji DELETE, INSERT I UPDATE dla widoków 

(VIEWS). 

 

•  Obsługi zagnieżdżonych transakcji. 

 

•  Instrukcji GRANT (nadawanie praw użytkownikom do wykonywania instrukcji) 

oraz instrukcji REVOKE (odbieranie praw użytkownikom). 

 

Typy danych obsługiwanych w SQLite. 

 

 

SQLite, w odróżnieniu od większości baz danych, nie używa statycznej kontroli 

typów. Typ wartości jest rozpoznawany na podstawie określonych zasad i zapisywany  

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 33 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

jako obiekt jednej z dostępnych klas. Możliwa więc staje się sytuacja, że w kolumnie 

z zadeklarowanym typem znajdzie się wartość nieodpowiadająca temu typowi. 

Przechowywanie danych zgodnych z typem kolumny jest „tylko” zalecane, ale nie jest 

wymagane (niemniej jednak stosowanie się do zaleceń zwiększa kompatybilność 

pomiędzy SQLite i innymi bazami danych).  

  

Klasy składowania oraz zasady rozpoznawania typu wartości: 

 

•  NULL – wartości NULL 
•  INTEGER – wartości, które nie są opatrzone cudzysłowem, nie posiadają 

separatora dziesiętnego (przecinka lub kropki), nie posiadają wykładnika, 

•  REAL – wartości, które nie są opatrzone cudzysłowem i posiadają wykładnik 

lub separator dziesiętny, 

•  TEXT – wartości zapisane w pojedynczym lub podwójnym cudzysłowie, 
•  BLOB – wartości dostarczone przy użyciu sqlite3 bind * 

 

Typy kolumn 

 

Ponieważ typ danych określany jest na podstawie wartości a nie typu kolumny, 

każda kolumna może przechowywać dane dowolnego typu. Wyjątek stanowi kolumna 

określona jako PRIMARY KEY  (klucz główny), która musi zawierać liczbę całkowitą. 

Do czego więc potrzebna jest deklaracja typu kolumny? Na jego podstawie jest 

dobierana metoda porównania  i sortowania.  

Twórcy SQLite zdecydowali się również na konwersję typów.  

W kolumnie typu TEXT powinny być przechowywane dane należące do klas NULL, 

TEXT lub BLOB. Jeżeli do takiej kolumny nastąpi próba zapisania danych liczbowych, 

to jeszcze przed zapisem zostaną one przekonwertowane do postaci tekstowej. Jeżeli 

wystąpi sytuacja odwrotna, czyli do kolumny typu liczbowego będą zapisywane dane 

typu tekstowego, SQLite będzie próbował je przekonwertować do typu liczbowego. 

I odpowiednio,  jeśli dane będą umieszczane w kolumnie typu NUMERIC, zostanie 

podjęta próba przekonwertowania ich do typu INTEGER lub REAL. Jeśli próba się 

powiedzie to właśnie tak zostaną zapisane, jeśli nie, to zostaną zachowane w postaci 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 34 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

tekstowej. Podobnie będzie to wyglądało w przypadku zapisu do kolumny typu 

INTEGER, z tym, że będą dodatkowo sprawdzane typowe ograniczenia dla tego typu. 

Jeżeli chodzi o typ REAL również przebiega to podobnie, ale ze względu na 

wewnętrzną optymalizację „małe” liczby bez części ułamkowych przechowywane na 

dysku będą w postaci liczb całkowitych, a przy odczycie będą konwertowane do liczb 

zmiennoprzecinkowych.    

 

Udostępniane przez SQLite typy kolumn: 

 

•  TEXT 
•  NUMERIC 
•  INTEGER 
•  REAL 
•  NONE 

 

Kiedy SQLite się sprawdzi? 

 

Jeżeli potrzebna jest baza, która ma być prosta w obsłudze,  łatwa 

w administrowaniu, utrzymywaniu i dostosowywaniu, w sytuacjach kiedy prostota jest 

ważniejsza od skomplikowanych funkcjonalności to SQLite jest właściwym wyborem.  

Należy unikać SQLite  w sytuacji gdy bazy danych będzie używać jednocześnie wielu 

użytkowników. Jeżeli zaistnieje sytuacja, w której te same dane będzie modyfikował 

więcej niż jeden użytkownik w tym samym czasie to może dojść do uszkodzenia bazy. 

SQLite udostępniany jest na licencji typu Public Domain. Używając tę bazę danych  nic 

nie można stracić (oprócz czasu oczywiście), a pewnie niemało zyskać, chociażby 

doświadczenie i możliwość zapoznania się z nowym podejściem do zagadnienia baz 

danych. SQLite ciągle jest rozwijany, coraz bardziej popularny,  więc może warto mu 

się bliżej przyjrzeć.   

 

 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 35 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

SQLite Administrator [12] 

 

Powstały różne narzędzia służące do administrowania bazą danych. Ponieważ SQLite 

nie potrzebuje zbyt wiele „opieki” to narzędzia też nie są zbyt skomplikowane 

w użyciu. 

 

 

Rysunek 6.  SQLite Administrator 

 

Przykładowe narzędzie  (Rysunek 6) umożliwia utworzenie pliku bazy danych oraz 

wykonanie wszystkich podstawowych operacji SQL. Umożliwia  również tworzenie 

widoków (VIEWS) i wyzwalaczy (TRIGGER). Pozwala też na  eksport danych do 

plików typu CSV, XLS, HTML oraz XML, niestety import możliwy jest jedynie 

z plików CSV. SQLite Administrator jest darmowy pod warunkiem, że nie jest 

używany komercyjnie. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 36 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

5.  Opis systemu „FilM” 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 37 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 

Aplikacja FilM została napisana przy użyciu języka C# (w wersji 3.0, dla 

którego środowiskiem uruchomieniowym jest .NET Framework wersja 3.5) w systemie 

operacyjnym Microsoft Windows XP (wersja 2002). Środowisko programistyczne jakie 

zostało wykorzystane do pracy nad programem to darmowy Microsoft Visual Studio C# 

2008 Express Edition. Nazwa aplikacji FilM pochodzi od słów File (plik) oraz 

Monitoring (monitorowanie) 

Ideą aplikacji jest, kontrolowany przez użytkownika, monitoring wybranej 

struktury danych. Monitoring oznacza tutaj możliwość sprawdzenia zmian, które zaszły 

w obserwowanej strukturze plików od czasu ostatniego pobrania informacji 

dotyczących tejże struktury  i umożliwiających tę weryfikację.  Użytkownik, aby 

rozpocząć obserwację plików zawartych w strukturze danych, musi utworzyć projekt 

(proces tworzenia projektu opisany został w dalszej części). Projekt w tym przypadku 

oznacza zbiór informacji o każdym z plików monitorowanej struktury, uporządkowany 

w określony sposób. Wszystkie dane potrzebne do weryfikacji pobierane są 

automatycznie przy tworzeniu projektu. Aby zapewnić możliwość weryfikacji zmian 

w strukturze  również po ponownym uruchomieniu aplikacji, wszystkie dane, po 

wybraniu przez użytkownika odpowiedniej opcji, zostaną zapisane w bazie danych. 

Informacje  odczytane z bazy danych (dla konkretnego projektu) porównane zostaną  

z sytuacją rzeczywistą, zastaną w monitorowanej strukturze danych. W zależności od 

zmian, jakie zaszły w wybranym katalogu, każdy z plików przyporządkowany zostanie 

do jednej z wymienionych grup – plik usunięty, plik dodany, plik przeniesiony, zmiana 

zawartości, zmiana nazwy, plik niezmieniony. Dla każdej z grup plików dostępne 

będzie dedykowane menu. Opcje w menu pozwolą (oczywiście w zależności od grupy 

pliku) na przywrócenie poprzedniego stanu pliku lub na zaakceptowanie zmiany.   

Elementem dodatkowym, mogącym ułatwić  użytkownikowi pracę z plikami są 

atrybuty. Dla każdego projektu możliwe jest zdefiniowanie dodatkowych atrybutów, 

których wartości będą  o typie tekstowym, liczbowym lub w formacie daty. Atrybuty 

definiowane dla projektu w rzeczywistości będą pełniły funkcję dodatkowych własności 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 38 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

dla każdego pliku. Dzięki tak stworzonym atrybutom użytkownik będzie mógł 

przeszukiwać strukturę plików (w oparciu o wartości atrybutów). 

W systemie udostępniona została również możliwość ciągłego monitorowania struktury 

danych w trakcie działania aplikacji. Jest to osobny moduł aplikacji FilM. Pomimo 

zbieżności nazw, monitorowanie struktury danych i monitorowanie struktury danych 

w czasie  rzeczywistym  są różnymi modułami i działają od siebie niezależnie. Efekt 

działania obu modułów jest podobny, różnią się jednak przeznaczeniem. Dzięki 

obserwacji w czasie rzeczywistym  użytkownik zobaczy, że plik został dodany lub 

usunięty ze struktury danych a także,  że już istniejący został edytowany zaraz po 

nastąpieniu tego zdarzenia.  

Rysunek 7 przedstawia przypadki użycia, czyli możliwe funkcje, które system 

udostępnia. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 39 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 

 

Rysunek 7. Diagram przypadków użycia. 

 

Okno główne aplikacji 

 

Główne okno aplikacji (Rysunek 8) składa się z pięciu paneli i menu. W panelach 

znajdują się  informacje dotyczące projektów i plików w nich zawartych, takie jak lista 

projektów (panel nr 2), lista plików w projekcie (panel nr 1), atrybuty dla konkretnego 

pliku lub projektu (panel nr 4). Panel nr 5 wykorzystywany jest w trakcie działania 

monitoringu w czasie rzeczywistymi, natomiast panel nr 3 generowany jest na 

podstawie zdefiniowanych dla projektu atrybutów. W menu dostępne opcje umożliwiają 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 40 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

zapis, otwarcie oraz utworzenie nowego projektu a także konfigurację atrybutów oraz 

usługi indeksowania. 

 

 

Rysunek 8. Okno główne aplikacji. 

 

Obszar nr 1 

W panelu tym znajduje się lista monitorowanych plików. 

 

Obszar nr 2  

Na ten obszar składa się panel, którym znajduje się lista różnych projektów a także 

przyciski „Monitoruj” oraz „Stop”. Kliknięcie w przycisk „Monitoruj” rozpoczyna 

monitorowanie struktury w czasie rzeczywistym, proces ten zostaje zatrzymany po 

kliknięciu w przycisk „Stop”. 

 

Obszar nr 3  

Panel znajdujący się w tym obszarze składa się z dwóch zakładek. W zakładce „Edytor 

atrybutów” użytkownik będzie mógł wprowadzić wartości atrybutów dla każdego pliku. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 41 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Zakładka Filtrowanie to dynamicznie generowany (w zależności od zdefiniowanych 

atrybutów) zestaw filtrów. 

 

Obszar nr 4  

 W obszarze tym umieszczony został panel (siatka właściwości, z ang. Property Grid), 

w którym znajdą się wszystkie stałe atrybuty, zarówno dla plików jak i dla projektów, 

wraz z wartościami  pozyskanymi w trakcie tworzenia projektu jak i działania aplikacji. 

Informacje widoczne będą po zaznaczeniu konkretnego pliku lub projektu. 

 

Siatka właściwości dla projektu 

 

 

Rysunek 9. Siatka właściwości dla projektu. 

 

Atrybuty projektu: 

•  Maksymalna wielkość pliku – maksymalna wielkość pliku, którego zawartość 

zostanie zapisana w bazie danych. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 42 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

•  Autor -  autor projektu. 
•  Katalog główny – ścieżka do obserwowanej struktury. 
•  Nazwa – nazwa projektu. 
•  Utworzono – data utworzenia projektu. 

 

Siatka właściwości dla pliku 

 

 

Rysunek 10. Siatka właściwości dla pliku. 

 

Atrybuty pliku 

•  Katalog – nazwa katalogu, w którym znajduje się plik. 
•  Nazwa – nazwa pliku. 
•  Rozmiar – rozmiar pliku. 
•  Sygnatura – wartość funkcji skrótu. 
•  Ścieżka – ścieżka do pliku. 
•  Utworzono – data utworzenia pliku. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 43 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

•  Zmodyfikowano – data ostatniej modyfikacji. 
•  Autor – autor pliku (wartość zależy od użytkownika). 
•  Opis – ogólne opis pliku (wartość zależy od użytkownika). 

 

Obszar nr 5  

W oknie tym pojawiać się  będą komunikaty, jeśli zostanie uruchomiony monitoring 

w czasie rzeczywistym. 

 

Obszar nr 6  

Na obszar ten składa się menu oraz filtr, który umożliwia przeszukiwanie listy plików 

po nazwie.  

Opcje dostępne w menu: 

•  Projekt  

o  Nowy Æ Monitorowanie struktury plików – opcja pozwala na przejście 

do okna tworzenia nowego projektu. 

o  Otwórz – opcja pozwala na otwarcie projektu. 

o  Zapisz – opcja pozwala na zapisanie projektu. 

•  Ustawienia 

o  Indeksowanie – opcja pozwala na przejście do okna konfiguracji usługi 

indeksowania. 

o  Atrybuty – opcja pozwala na przejście do okna definiowania atrybutów. 

 

Utworzenie projektu. 

 

Aplikacja umożliwia utworzenie nowego projektu poprzez wybór odpowiedniej opcji 

z menu w głównym oknie aplikacji.  

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 44 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 

Rysunek 11. Wybór opcji umożliwiającej przejście do okna tworzenia projektu. 

 

Rysunek 12 przedstawia okno umożliwiające skonfigurowanie i utworzenie projektu.  

Przy tworzeniu nowego projektu należy podać takie informacje jak: 

•  Nazwa – podanie nazwy projektu jest wymagane, aby ułatwić późniejszą 

identyfikację..  

•  Autor - możliwe jest również podanie nazwy autora projektu, nie jest to jednak 

wymagane. 

•  Katalog główny – użytkownik musi wybrać katalog główny, który będzie pełnił 

funkcję  korzenia w drzewie  katalogów. Wszystkie pliki znajdujące się w tym 

drzewie zostaną dodane do listy monitorowanych plików. 

•  Typy plików – użytkownik może określić typy plików, które mają być 

monitorowane np. tylko pliki z rozszerzeniem .txt. Możliwe do wybrania są typy 

plików: txt, doc, docx, pdf, xls, xlsx, JPG, bmp, avi, mp3, gif lub opcja 

„wszystkie typy plików”. Zaznaczenie opcji „wszystkie typy plików” 

spowoduje, że monitorowane będą wszystkie pliki z wybranej struktury, nawet 

te, których rozszerzenia nie znajdują się na liście możliwych do wybrania.   

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 45 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 

Rysunek 12. Okno umożliwiające utworzenie nowego projektu. 

 

Po skonfigurowaniu nowego projektu, w oknie głównym pojawią się wszystkie pliki 

z wybranego  wcześniej folderu oraz wszystkich jego pod-folderów (Rysunek 11). Dla 

każdego z tych plików obliczona zostanie wartość funkcji skrótu. Użytkownik, za 

pomocą znaków graficznych znajdujących się przed nazwą pliku, informowany jest 

o tym, które pliki mają już taką wartość obliczoną ( ikona   )  i dla którego z plików ta 

wartość jest właśnie obliczana (ikona 

). 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 46 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 

Rysunek 13 Główne okno aplikacji. 

 

 

Zapis projektu 

 

Wybór opcji „Zapisz” z podmenu „Projekt” powoduje przejście do standardowego (dla 

systemu Windows) okna zapisu pliku (Rysunek 14).  

Na wykonanie tej operacji składa się zapis informacji do pliku jak i do bazy danych. 

W pliku przechowywana będzie nazwa projektu i jego identyfikator bazodanowy. Plik 

taki zostanie opatrzony rozszerzeniem „mnf”, aby łatwo można było rozpoznać projekt 

utworzony w tej aplikacji. Rozszerzenie takie również aplikacji umożliwi identyfikację 

pliku. Tylko z takich plików będzie ona w stanie odczytać odpowiednie informacje. 

 Informacje te pozwolą na identyfikację zarówno projektu jak i wszystkich plików przy 

otwieraniu projektu.  

 

Otwarcie projektu 

 

Po wybraniu opcji „otwórz” i wskazaniu konkretnego pliku .mnf zostaną odczytane 

zawarte w nim informacje. Na podstawie tych informacji możliwe będzie 

zidentyfikowanie wszystkich informacji znajdujących się w bazie danych 

a przypisanych do tego projektu. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 47 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 

Rysunek 14. Okno zapisu i otwarcia projektu. 

 

Konfiguracja usługi indeksowania 

 

 

Indeksowanie. W menu dostępna jest opcja konfiguracji indeksowania. Dzięki tej 

funkcjonalności możemy wymusić na usłudze Windowsowej indeksowanie struktury 

danych.  

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 48 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 

Rysunek 15.  Okno umożliwiające dodawanie katalogów do indeksów. 

 

Dostępne opcje: 

•  Uruchom ponownie usługę. Zaznaczenie tej opcji spowoduje wyłączenie usługi 

indeksowania i ponowne jej uruchomienie. 

•  Wymuś indeksowanie. Jeśli opcja ta będzie zaznaczona i użytkownik kliknie 

przycisk „Dodaj >>”, spowoduje, że po zakończeniu wszystkich wcześniejszych 

operacji wykonywanych przez aplikację, rozpocznie się proces indeksowania 

dodanych plików. Proces ten zostanie jednak przerwany jeżeli użytkownik 

wykaże jakąkolwiek aktywność w systemie (zostanie wznowiony przy braku 

takiej aktywności). 

•  Wymuś automatyczny start usługi indeksowania. Ponieważ usługa 

indeksowania może zostać zatrzymana, zaznaczenie tej opcji spowoduje 

uruchomienie usługi przy starcie systemu operacyjnego. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 49 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

•  Dodaj do nowego indeksu. Użytkownik zaznaczając tę opcję wymusi 

utworzenie nowego indeksu FilMIndex w usłudze (jeśli jeszcze nie został 

dodany) i dodanie do niego wybranej struktury plików. 

•  Użyj indeksu systemowego. Po zaznaczenie tej opcjiaplikacja doda strukturę 

do istniejącego indeksu systemowego. 

 

Atrybuty 

 

Ta opcja umożliwi użytkownikowi zdefiniowanie dodatkowych atrybutów  dla 

konkretnego projektu (rozdz. 5.1). 

 

5.1  Struktura bazy danych 

W bazie danych przechowywane będą wszelkie informacje dotyczące 

monitorowanej struktury danych (wybranego przez użytkownika katalogu oraz 

wszystkich plików w nim zawartych).  

Zaproponowana struktura bazy danych umożliwi przechowywanie wszystkich, 

potrzebnych informacji dotyczących zarówno projektu jak i monitorowanych plików 

w obrębie tego projektu. 

Rysunek 7 przedstawia strukturę bazy danych wykorzystywaną w aplikacji.  Składa się 

z trzech tabel relacyjnie ze sobą powiązanych. Każda z tabel posiada kolumnę 

z unikalnymi wartościami zwaną kluczem głównym (na rysunku oznaczone symbolem 

kluczyka). W tabelach znajdują się również tzw. klucze obce (kolumny posiadające 

referencje do  kluczy prywatnych innych tabel). Ponieważ  w SQLite nie istnieje pojęcie 

klucza obcego, integralność danych trzeba zapewniać programowo. W każdej z tabel 

przechowywane są dane obiektu określonego typu.

  

Projektowana struktura bazy danych powinna charakteryzować się możliwie prostą  

budową, zapewniającą przy tym możliwość przechowywania wszystkich potrzebnych 

danych. W trakcie projektowania bazy danych należy również pamiętać,  że należy 

danym zapewnić integralność nie narażając się przy tym na redundancję.   

Dla każdego projektu możliwe jest zdefiniowanie nieokreślonej ilości atrybutów. 

Osobna tabela, przechowująca dla każdego pliku wartości atrybutów mogłaby się 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 50 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

składać z kolumn zawierających: klucz główny, nazwę atrybutu, wartość atrybutu, 

referencje do pliku (klucz główny odpowiadający określonemu plikowi) i ewentualnie 

referencje do projektu.  Rozwiązanie takie nie zostało jednak wykorzystane, ponieważ 

dane byłyby powtarzane (redundancja np. nazwy atrybutu), co prowadziłoby do 

niepotrzebnego wzrostu rozmiaru pliku przechowującego informacje (SQLite wszystkie 

dane przechowuje w jednym pliku). Drugi sposób, zastosowany w projektowanej 

aplikacji, polega na zapisie nazw  wszystkich, zdefiniowanych w projekcie, atrybutów  

w jednym polu tekstowym (w tabeli PROJECT). Wartości tych atrybutów dla 

konkretnego pliku również  będą zapisane w jednym polu tekstowym, tym razem 

w tabeli FILE. Aby móc wyodrębnić poszczególne nazwy jak i wartości atrybutów 

powinny być one rozdzielone ustalonym znakiem specjalnym (w przypadku aplikacji 

FilM będzie to średnik). Oczywiście taki zapis zapewniony będzie programowo. Aby 

odczyt takich informacji był poprawny, w polu, w którym przechowywane są nazwy 

i wartości atrybutów nie może się znaleźć  żaden znak specjalny (w tym przypadku 

średnik), ponad te które zostały zapisane przez system. Z tego powodu użytkownik nie 

będzie mógł  używać tego znaku zarówno podczas definiowania atrybutów jak 

i przypisywaniu odpowiednich wartości dla plików. Aby wykluczyć przypadkowe 

użycie takiego znaku, na polach tekstowych zostanie założona walidacja.   

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 51 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Rysunek 16. Schemat struktury bazy danych. 

 

Relacje między tabelami w strukturze bazy danych. 

 

 

 Relacje 

między tabelami umożliwiają podział bazy danych na tabele. Klucze 

główne i obce zapewniają możliwość dopasowania odpowiednich rekordów z różnych 

tabel.   Dzięki takiemu podziałowi bazy danych uniknąć można redundancji danych, 

czyli niepotrzebnego zapisu tych samych informacji kilkakrotnie. 

 

 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 52 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Relacje w strukturze bazy danych aplikacji FilM: 

 

•  Relacja pomiędzy tabelami PROJECT i FILE określona została jako jeden do 

wielu. Wynika z tego, że jeden rekord w tabeli FILE może posiadać relację tylko 

do jednego rekordu w tabeli PROJECT, oraz to, że różne rekordy z tabeli FILE 

mogą posiadać relacje do tego samego rekordu w tabeli PROJECT.   

 

•  Relacja pomiędzy tabelami FILE i FILE_VERSION również została określona 

jako jeden do wielu.  

 

 

Typy danych oraz opis kolumn w tabelach. 

 

Tabela PROJECT zawiera informacje dotyczące utworzonego przez użytkownika 

projektu. 

 
Tabela 1.  Struktura tabeli PROJECT 

Nazwa 

Typ 

Opis 

PRO_ID Integer 

Klucz 

główny tabeli 

PRO_NAME 

Text 

Nazwa projektu utworzonego przez 
użytkownika 

PRO_CREATION_TIME 

Date 

Data utworzenia projektu 

PRO_LAST_MODIFICATION Date Data 

ostatniej modyfikacji  projektu 

PRO_ROOT_FOLDER_PATH Text 

Ścieżka do  wybranej struktury  

PRO_AUTHOR 

Text 

Nazwa autora projektu 

PRO_FILTERS_NAME Text 

Nazwy 

zdefiniowanych pól (filtrów) 

 

 

W tabeli FILE przechowywane są wszystkie niezbędne informacje dotyczące każdego 

pliku dodanego w projekcie.  

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 53 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Tabela 2.  Struktura tabeli FILE 

Nazwa 

Typ 

Opis 

FIL_ID Integer 

Klucz 

główny tabeli 

FIL_PRO_ID 

Integer 

Klucz obcy do tabeli PROJECT 

FIL_NAME Text 

Nazwa 

pliku 

FIL_PATH Text 

Ścieżka do pliku 

FIL_PARENT Text 

Nazwa 

katalogu w którym znajduje się 

plik 

FIL_SIZE Integer 

Rozmiar 

pliku 

FIL_AUTHOR Text 

Autor 

pliku 

FIL_HASH_CODE Text  Wartość funkcji skrótu 

FIL_CREATION_TIME 

Date 

Data utworzenia pliku 

FIL_LAST_WRITE_TIME Date 

Data ostatniej modyfikacji pliku 

FIL_DESCRIPTION Text  Opis 

pliku 

FIL_FILERS_VALUE Text 

Wartości pól zdefiniowanych 

 

 

W tabeli FILE_VERSION mogą być przechowywane zawartości poszczególnych 

plików w postaci binarnej. 

 

Tabela 3.  Struktura tabeli FILE_VERSION 

Nazwa  

Typ 

Opis 

FVE_ID Integer 

Klucz 

główny tabeli 

FVE_FIL_ID 

Integer 

Klucz obcy do tabeli FILE 

FVE_PRO_ID Integer 

Klucz obcy do tabeli PROJECT 

FVE_BINARY_DATA Blob 

Zawartość pliku w postaci binarnej 

 

 

5.2  Monitorowanie zmian w strukturze plików. 

Pierwszym z dwóch sposobów, w który można obserwować wybraną strukturę 

jest monitorowanie w  czasie rzeczywistym. Wybór tego sposobu jest opcjonalny 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 54 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

i działa tylko w czasie gdy aplikacja jest uruchomiona. Użytkownik, wybierając tę opcję 

będzie otrzymywał informację o konkretnej zmianie, która zaszła w monitorowanej 

strukturze danych. Zdarzenia o których informacje będą przekazywane to utworzenie 

pliku lub katalogu, usunięcie pliku lub katalogu oraz zmiana pliku. Przy zdarzeniach 

dotyczących plików (utworzenie, edycja oraz usunięcie) użytkownik otrzyma również 

informację, że katalog, w którym plik jest umieszczony, został zmieniony. 

Każdy komunikat dla pliku i katalogu składa się z następujących informacji: daty 

i godziny zdarzenia, informacji o typie zdarzenia (utworzono plik, edytowano plik, 

usunięto plik), nazwy edytowanego katalogu oraz nazwy pliku (lub tylko nazwy 

katalogu, jeżeli zdarzenie nie dotyczyło żadnego pliku) 

 

 

Rysunek 17.  Komunikaty o zdarzeniach w monitorowanej strukturze. 

  

W przykładzie, którego wynik  przedstawiony jest na rysunku nr 17, wykonane zostały 

dwie zmiany w monitorowanej strukturze. 

Pierwszą było dodanie pliku „Nowy plik tekstowy.txt”. W takim przypadku użytkownik 

otrzyma dwa komunikaty zwrotne. Pierwszy – informację o utworzeniu pliku, i drugi – 

informację o edycji katalogu w którym plik został utworzony.  

Drugą zmianą w strukturze było przeniesienie, wcześniej utworzonego pliku, do innego 

katalogu (znajdującego się w obrębie projektu). W takim przypadku zwrócone zostaną 

cztery komunikaty zwrotne, ponieważ operacja przeniesienia pliku w system 

operacyjnym wykonywana jest w dwóch krokach. Przeniesienie to nic innego jak 

usunięcie pliku i utworzenie go w innej lokalizacji, dlatego pierwszym komunikatem 

zwrotnym będzie informacja o usunięciu pliku a drugim informacja o utworzeniu pliku. 

Trzeci i czwarty komunikat to będzie informacja o edytowaniu katalogu z którego plik 

został przeniesiony i o edytowaniu katalogu docelowego dla pliku. 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 55 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Drugi sposób monitorowania struktury działa również w przypadku gdy aplikacja nie 

jest uruchomiona. Wybór opcji „Weryfikuj” z menu kontekstowego dla projektu 

pozwala na sprawdzenie zmian, jakie wydarzyły się w strukturze od czasu zapisu 

projektu do bazy danych.  Każdy plik, w zależności od zmian jakie zaszły w stosunku 

do niego, zostanie zaklasyfikowany do jednej z sześciu grup: plik dodany, plik usunięty, 

plik przeniesiony, zmieniona zawartość, zmieniona nazwa oraz plik niezmieniony. 

Użytkownik będzie mógł rozpoznać grupę w jakiej znalazł się plik po ikonie 

umieszczonej przy jego nazwie.  

 

 

Tabela 4. Symbole odpowiadające grupom plików. 

Symbol Grupa 

 

Plik dodany 

 

Plik usunięty 

 

Plik przeniesiony 

 

Zmieniona zawartość 

 

Zmieniona nazwa 

 

Plik niezmieniony  

 

 

Podczas wykonywania operacji weryfikacji porównywane są informacje 

przechowywane w zmiennych obiektu, utworzonego dla każdego monitorowanego 

pliku, oraz rzeczywiste informacje odczytane w danym momencie ze struktury. 

Porównywanie dla każdego pliku wygląda tak samo. W pierwszej kolejności 

sprawdzone zostaje czy pod zapisaną ścieżką rzeczywiście istnieje taki plik. Następnie 

porównane zostają daty ostatniej modyfikacji, jeżeli dla konkretnego pliku

 

informacje 

są identyczne to plik zostaje zaklasyfikowany do grupy „plik niezmieniony”. Następnie, 

dla plików rzeczywistych, które pozostały niezaklasyfikowane, wyliczane są wartości 

funkcji skrótu. Zostają one porównane z wartościami funkcji plików zapisanych 

w projekcie.  Jeżeli wartość funkcji haszującej dla pliku rzeczywistego zostanie 

odnaleziona w zapisanych danych, oznacza to że plik ten istniał w strukturze już 

wcześniej.  Jeżeli plik zostanie zidentyfikowany po jego wartości HashCode, oznaczać 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 56 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

to może,  że albo została zmieniona jego nazwa, albo został przeniesiony. Jeżeli 

zmodyfikowana została tylko nazwa, to pliki (rzeczywisty i zapisany) powinny 

znajdować się w tym samym folderze. Jeśli tak rzeczywiście jest to trafia on do grupy 

„Zmieniona nazwa”. W przypadku gdy nazwy katalogów się nie zgadzają, oznacza to, 

że plik został przeniesiony i do takiej też grupy zostanie zaklasyfikowany. 

W następnym kroku poszukiwane będą te pliki, których wartość została zmieniona. Aby 

plik trafił do tej grupy musi spełniać następujące warunki: nie zostały zaklasyfikowane 

wcześniej do żadnej grupy, lokalizacja pliku nie została zmieniona oraz nazwa pliku 

zapisanego zgadza się z nazwą pliku rzeczywistego. Na koniec zostały dwie grupy 

plików. Pierwsza z nich to pliki znajdujące się w projekcie i nie odnalezione 

w rzeczywistej strukturze.  Takie pliki uznane zostają za usunięte i zaklasyfikowane do 

takiej grupy. Ostatnia gromada to pliki które istnieją w strukturze rzeczywistej ale nie 

mają swoich odpowiedników w projekcie. Dla każdego z tych plików stworzony 

zostanie nowy obiekt typu ProjectFile

10

, który dopisany będzie do listy w projekcie. 

 

Tabela 5. Wymagane zgodności atrybutów dla poszczególnych grup plików. 

Symbol Grupa  Ścieżka 

Data modyfikacji  Nazwa pliku 

Sygnatura 

Folder 

 

Plik usunięty - 

-  - 

 

Plik przeniesiony 

 

Zmieniona zawartość + 

 

Zmieniona nazwa 

 

Plik niezmieniony 

 

 

 

 

Opcje dla projektu dostępne w menu kontekstowym

 

•  Weryfikuj. Po wybraniu tej opcji, dane zaczytane z bazy danych, porównane 

zostaną  z plikami znajdującymi się aktualnie w strukturze, która jest 

monitorowana. 

 

                                                           

10

 ProjectFile – klasa przechowująca informacje o pliku. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 57 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

•  Monitoruj. Opcja pozwala na rozpoczęcie monitoringu struktury w trakcie 

działania aplikacji. 

 

•  Sprawdź lokalizację. Opcja pozwala na sprawdzenie czy katalog (wybrana 

struktura danych) istnieje. 

 

Opcje dla plików dostępne w menu kontekstowym. 

 

Każdy plik, po zweryfikowaniu, zostanie zaklasyfikowany do odpowiedniej grupy. 

Dla każdej grupy dostępne będzie menu.  

 

Tabela 6. Opcje menu dostępne dla poszczególnych grup plików. 

Grupa 

Dostępne opcje w menu 

Plik niezmieniony 

otwórz 

Plik przeniesiony 

otwórz, przywróć lokalizację, akceptuj lokalizację 

Plik dodany 

otwórz 

Plik usunięty usuń z kolekcji plików 

Zmieniona zawartość 

otwórz, akceptuj zmiany 

Zmieniona nazwa 

otwórz, akceptuj nazwę, przywróć poprzednią nazwę 

 

•  Otwórz. Wybranie opcji powoduje otwarcie  pliku w odpowiednim dla typu 

tego pliku programie. 

 

•  Przywróć lokalizację.  Opcja dostępna dla plików, które zmieniły lokalizację 

w obrębie monitorowanej struktury plików. Wybranie tej opcji spowoduje, że 

plik zostanie przeniesiony w miejsce, na które wskazuje atrybut „Ścieżka” 

(ścieżka, która wskazuje poprzednią, zaakceptowaną lokalizację pliku ). 

 

•  Akceptuj lokalizację. Wybranie opcji powoduje przypisanie do atrybutu 

„Ścieżka” wartości będącej nową ścieżką do pliku. Oznacza to, że plik zostanie 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 58 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

przeklasyfikowany do grupy „Plik niezmieniony” i będą dla niego dostępne, 

odpowiednie dla tej grupy, opcje menu. 

 

•  Usuń z kolekcji plików. Wybranie tej opcji spowoduje usunięcie pliku 

z kolekcji plików w projekcie. 

 

•  Akceptuj zmiany. Wybranie tej opcji spowoduje przeklasyfikowanie pliku do 

grupy „Plik  niezmieniony” oraz przypisanie do atrybutu „Sygnatura” wartości 

funkcji skrótu wyliczonej dla pliku aktualnie znajdującego się w strukturze na 

dysku (ze zmienioną zawartością). 

 

•  Akceptuj nazwę.  Po wybraniu tej opcji do atrybutu „Nazwa” zostanie 

przypisana wartość, będąca nową nazwą pliku. 

 

•  Przywróć poprzednią nazwę. Nazwa pliku zawartego w strukturze zostanie 

zamieniona na wartość atrybutu „Nazwa”. 

 

 

5.3  Definiowanie atrybutów i użycie filtrów 

Moduł atrybutów został stworzony aby użytkownik mógł „opisywać” poszczególne 

pliki bez konieczności ograniczania się tylko do ich nazwy. Nazwa nadawana plikom 

jest bardzo pomocna w identyfikacji pliku. Jeżeli ma się do czynienia z dużą ilością 

podobnych (w sensie typu) do siebie plików o nazwach, z których nie da się 

wywnioskować informacji na temat zawartości, to pracę z takim zbiorem należy 

zaklasyfikować jako, co najmniej, niewygodną.   

Jako przykładu użyć można strukturę katalogów, zawierających zeskanowane strony 

roczników opadowych. Dla każdego rocznika (jeden rok) można oczywiście utworzyć 

osobny folder, jednak jak nazwać poszczególne pliki? Najlepiej tak, aby łatwo, szybko 

i bez potrzeby otwierania określić co jest w środku. Może się to jednak wiązać 

z nadaniem nazwy wieloczłonowej. Wprawdzie  pozwoli to na szybki przegląd 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 59 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

i wyszukiwanie odpowiednich plików, ale stanie się mało czytelne. Gdyby spróbować 

nadać nazwę zeskanowanej stronie nr 36, z rocznika opadowego z roku 1979,  która 

zawiera część alfabetycznego spisu stacji i posterunków (od stacji Pogórze do stacji 

Przełęcz Karkonoska), mogłaby ona brzmieć: „1978, opadowy, stacje, 36, Pogórze, 

Przełęcz Karkonoska.jpg”. Oczywiście jest to nazwa tylko przykładowa i mogłaby ona 

wyglądać zupełnie inaczej (np. tylko numer strony), w zależności od potrzeb właściciela 

plików.  

Aplikacja FilM daje możliwość definiowania dodatkowych „nazw” dla plików, czyli 

atrybutów. 

 

Definiowanie atrybutów 

 

 Aby  przejść do definicji atrybutów, należy zaznaczyć projekt a następie z menu 

„Ustawienia” wybrać opcję „Atrybuty”. Aby zdefiniować nowy atrybut należy podać 

jego nazwę oraz wybrać jeden z dostępnych typów (Liczba, Tekst, Data) i dodać do 

kolekcji. 

 

 

Rysunek 18. Okno umożliwiające definiowanie nowych atrybutów. 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 60 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Atrybuty te zdefiniowane zostały dla przykładowego projektu „Monitorowanie 

struktury plików Roczniki Opadowe” przedstawionego na rysunku nr 20. 

Dzięki takim atrybutom, każdy plik zyskuje dodatkowe, niezależne własności, których 

wartości będą go opisywały.  

Wartości dla zdefiniowanych atrybutów dodaje się poprzez „Edytor atrybutów”  

przedstawiony na rysunku nr 19.  

 

 

Rysunek 19. Edytor atrybutów. 

 

Plik, dla którego wartości atrybutów widoczne są na rysunku nr 19, to plik z rocznika 

opadowego z roku 1979. Jest on 106 stroną tego rocznika i przedstawia  wysokości 

dobowe opadów z sierpnia 1979 roku. Takie definicje atrybutów posiada każdy plik 

w tym projekcie.  

 

Filtry 

 

Z jednej strony definiowanie atrybutów dla całego projektu może wdawać się 

ograniczeniem, jednak z drugiej strony takie podejście daje nowe możliwości użycia 

atrybutów. Możliwości te oczywiście w aplikacji zostały wykorzystane co 

zaowocowało panelem filtrów. 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 61 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Panel filtrów jest dynamicznie generowany na podstawie zdefiniowanych atrybutów. 

Panel przedstawiony na rysunku nr 20 został wygenerowany dla atrybutów 

zdefiniowanych jak na rysunku 19. Zasada generowania jest prosta, ile zdefiniowanych 

atrybutów tyle dostępnych pól do filtrowania w panelu. Poza obszarem dodawanym 

dynamicznie znajdują się części stałe, które pojawią się jeżeli zostanie zdefiniowany co 

najmniej jeden atrybut.  

 

 

Rysunek 20. Panel filtrów. 

 

Jednym z takich „stałych”  obiektów jest pole wyboru „Akceptuj pliki bez wartości dla 

atrybutu”. Przykładowo jeżeli wyszukiwane są pliki, które są zeskanowanymi stronami 

rocznika opadowego (wartość atrybutu „Typ rocznika” - opadowy) z  roku 1979 

(wartość atrybutu „Rok” = 1979), pole „Akceptuj pliki bez…” nie jest zaznaczone. 

W takim przypadku zostaną wyszukane pliki, które dla atrybutu „Typ rocznika” mają 

przypisaną wartość „Opadowy” i dla atrybutu „Rok” mają wartość „1979”. Gdyby 

zaznaczone było pole „Akceptuj pliki bez…” zostałyby również wyszukane takie pliki, 

które do tych atrybutów nie mają przypisanej wartości, czyli pliki które posiadać mogą 

takie kombinacje wartości: 

 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 62 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Typ rocznika 

Rok 

Opadowy 1979 

Opadowy Brak 

wartości 

Brak wartości 1979 

Brak wartości Brak 

wartości 

 

Atrybuty „Strona” i Rodzaj” nie będą w przeszukiwaniu kolekcji plików uwzględnianie 

ponieważ zostały wyłączone z procesu filtrowania (oznaczone są znakiem X). 

Drugi stały element w panelu filtrów to opcja „Uwzględniaj tekst podobny”. Opcja ta 

działa tylko dla atrybutów o typie tekstowym.  Jeżeli nie jest zaznaczona, to 

wyszukiwane są pliki, której wartość atrybutu jest dokładnie taka jak zdefiniowana 

w filtrze. Dla podanego wcześniej przykładu (Rysunek 19, Rysunek 20) zostałyby 

odnalezione tylko pliki, które dla atrybutu „Typ rocznika” mają wartość „opadowy” 

(małe i duże litery nie są rozróżniane). Jeżeli, dla tego samego przykładu, opcja ta 

zostałaby zaznaczona, to odnalezione zostałyby również pliki, których wartości atrybutu 

„Typ rocznika” zawierają ciąg znaków  „opadowy”. 

Oczywiście zawsze w panelu filtrów znajdą się przyciski „Filtruj”, który powoduje 

przeszukanie kolekcji plików, oraz „Zakończ filtrowanie”, po kliknięciu którego 

z powrotem pojawi się cała lista. 

 

5.4  Rozwój systemu 

Jednym z pomysłów na rozwój aplikacji jest udostępnienie użytkownikowi 

możliwości zapisywania kopii zapasowych plików. Kopie byłyby zapisywane w bazie 

danych, która pod taką możliwość została już przygotowana.  Oczywiście  zapis   

wszystkich plików,  wiązałby się z potrzebą udostępnienia dwa razy większej ilości 

miejsca (dla struktury i dla bazy danych), co nie zawsze byłoby zgodne 

z oczekiwaniami  użytkownika. Aby uchronić się przed takim problemem, użytkownik 

w trakcie tworzenia projektu miałby możliwość ustalenia maksymalnej wielkości pliku, 

który byłby zapisywany w bazie danych. Rysunek 21 przedstawia okno tworzenia 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 63 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

projektu z zaznaczonym atrybutem „CashLimit”, za pomocą którego użytkownik 

mógłby ustalić maksymalny rozmiar pliku. 

Przechowywanie w bazie kopi pliku zapewniłoby ochronę zawartości przed usunięciem 

lub modyfikacją. 

 

 

Rysunek 21. Okno tworzenia nowego projektu. 

 

Drugim rozwinięciem aplikacji mogłaby być opcja przeszukiwania indeksu w celu 

odnalezienia określonego pliku. Obecnie, po dodaniu struktury do indeksu (usługa 

indeksowania Windows), plik można wyszukać poprzez standardową wyszukiwarkę 

systemu Windows (Start Æ Wyszukaj). 

 

Tabela nr 6 przedstawia opcje menu kontekstowego dla poszczególnych grup plików, 

rozszerzone o te, które będą dodane (zaznaczone na pomarańczowo) wraz z rozwojem 

aplikacji. 

 

•  Przywróć poprzednią wersję. Po wybraniu tej opcji, zawartość pliku 

w monitorowanej 

strukturze 

zostanie nadpisana danymi z bazy, 

odpowiadającymi poprzedniej wersji pliku. 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 64 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

•  Zapisz poprzednią wersję jako. Gdyby zawartość pliku została nieumyślnie 

zmieniona, to opcja ta pozwoli zapisać na dysku wersję pliku, która znajduje się 

w bazie danych. 

 

•  Szukaj w indeksie. W razie gdyby plik został usunięty lub przeniesiony metoda 

wywołana po kliknięciu opcji „sprawdź lokalizację” zwróci nam informację, że 

takiego pliku nie ma we wskazanym miejscu. Opcja „znajdź” pozwoli na 

wyszukanie zaginionego pliku na podstawie jego nazwy lub frazy podanej przez 

użytkownika. Opcja znajdź zadziała pod warunkiem, że katalog został wcześniej 

dodany do listy katalogów indeksowanych. 

 

Tabela 7. Opcje menu dostępne dla poszczególnych grup plików z dodatkowymi opcjami. 

Grupa 

Dostępne opcje w menu 

Plik niezmieniony 

otwórz 

Plik przeniesiony 

otwórz, przywróć lokalizację, akceptuj lokalizację 

Plik dodany 

otwórz 

Plik usunięty przywróć, usuń z kolekcji plików, 

szukaj w indeksie

 

Zmieniona zawartość 

otwórz, akceptuj zmiany

, przywróć poprzednią wersję

zapisz 

poprzednią wersję jako

 

Zmieniona nazwa 

otwórz, akceptuj nazwę, przywróć poprzednią nazwę 

 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 65 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

6.  Wnioski  

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 66 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 

Aplikacja, przedstawiona w niniejszej pracy, umożliwia użytkownikowi 

monitorowanie zmian w wybranej strukturze plików a także konfigurowanie atrybutów, 

które mogą stanowić dodatkowe opisy plików.  

W przypadku struktury plików, zawierającej np. skany roczników hydrologicznych, 

użytkownik korzystający z programu FilM będzie miał możliwość zaobserwowania 

następujących zmian: 

 

•  Dodanie nowych plików do struktury. Jeżeli w strukturze zostanie zapisany nowy 

plik, będzie on automatycznie dodany do projektu (w trakcie weryfikacji zmian). 

Ponieważ każdy plik w projekcie ma zdefiniowane stałe atrybuty, również dla 

nowych plików  wartości atrybutów będą pokazane w siatce właściwości (Rysunek 

10). Użytkownik będzie miał możliwość sprawdzenia np. kiedy plik został 

utworzony lub w którym katalogu się znajduje.  

 

•  Przeniesienie plików w obrębie struktury. Użytkownik będzie miał informację o 

poprzedniej i nowej lokalizacji pliku.  

 

•  Zmiany zawartości, zmiany nazwy, usunięcia plików. Informacja o takich zmianach 

pozwoli na sprawdzenie, które pliki i w jaki sposób zostały zmienione. 

Jeżeli w nazewnictwie plików w strukturze przyjęta zostanie zasada, że nazwa pliku 

odpowiada numerowi strony, to w jednej strukturze (np. zawierającej roczniki 

hydrologiczne z kilku lat) znajdzie się kilka plików o tych samych nazwach. Jeżeli 

dla takiej struktury zdefiniowane zostaną atrybuty (np. rok wydania rocznika), to 

łatwo będzie można odnaleźć poszukiwany plik, nawet jeśli zostanie omyłkowo 

zapisany w nieodpowiednim katalogu (np. strona nr 47 z rocznika z 1979 roku 

zostanie zapisana w katalogu dla rocznika z 1971 roku).  

 

Takie informacje pozwolą na wyeliminowanie błędów związanych z omyłkowym 

zapisem, usunięciem czy zmianą nazwy. Dodatkowe atrybuty pozwolą na opisanie 

plików w dowolny, wygodny dla użytkownika sposób. Spowoduje to że, przy 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 67 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

odpowiednio skonfigurowanych atrybutach wyszukanie pliku, w którym znajduje się 

np. informacja na temat liczby dni z burzą, w stacji pomiarowej w Sieniawie, w 1979 

roku, będzie znacznie ułatwione.  

W pracy przedstawione zostały przykładowe aplikacje, których zadaniem jest 

monitorowanie plików. Program FilM różni się od nich  podejściem do problemu 

monitorowania. Zadaniem aplikacji FileWatcher i FolderWatch jest wykonanie akcji 

(np. utworzenie kopii pliku w przypadku FolderWatch) w odpowiedzi na zmianę 

w strukturze np. zapisanie nowego pliku. FileMon przekazuje użytkownikowi na 

bieżąco (tylko w trakcie działania aplikacji) informacje o rodzaju wykonywanej na 

pliku operacji. Zadaniem FilM’u  jest natomiast  sprawdzanie i identyfikowanie zmian, 

jakie zaszły w obserwowanej strukturze. Informacje te przekazane są  użytkownikowi 

i to on decyduje co w takiej sytuacji należy zrobić (również poprzez opcje 

udostępnianie przez FilM).  

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 68 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

7.   Podsumowanie 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 69 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 

Celem niniejszej pracy było przedstawienie rozwiązania a także zaprojektowanie 

i implementacja aplikacji pozwalającej na monitorowanie zmian w wybranej strukturze 

plików. Rozszerzeniem programu FilM jest moduł atrybutów, dzięki któremu można 

definiować dodatkowe właściwości dla plików.  

 

W pracy znalazła się  część  teoretyczna, w której omówione zostały technologie 

wykorzystane w aplikacji, takie jak jednokierunkowe funkcje haszujące 

wykorzystywane do identyfikacji pliku czy mechanizm indeksowania systemu 

Windows. 

 

W następnej części przedstawione zostały przykładowe, dostępne na rynku, 

narzędzia, które w pewnym stopniu pełnić mają  tę samą funkcję co projektowana 

aplikacja. Porównanie to pokazało, na jak wiele sposobów można rozwiązać jeden 

problem, w tym przypadku zabezpieczenie plików. 

 

Kolejna część zawiera opis zaimplementowanej aplikacji. Przedstawiona tutaj 

została struktura bazy danych, opis rozwiązań jakie zostały zastosowane w celu 

umożliwienia monitorowania struktury plików oraz opis modułu atrybutów. Dzięki 

założeniu, że atrybuty definiowane są dla wszystkich monitorowanych plików możliwe 

było udostępnienie funkcji filtrowania. Filtry działają na zasadzie porównań wartości 

podanej przez użytkownika ze zdefiniowaną wartością atrybutu. 

 

Podsumowując, uznać można,  że system zaimplementowany został zgodnie 

z założeniami, zapewniając analizę zmian w wybranej strukturze a także możliwość 

opisu pliku w dowolny sposób. Nowe pomysły wdrażane w aplikacji powinny sprawić, 

że  stanie się ona bardziej przyjazna i pomocna użytkownikowi. 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 70 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

8.   Słownik pojęć 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 71 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

fopen() – Funkcja otwierająca plik.  

Funkcja skrótu – Zwana również funkcją haszującą. Jest to funkcja, która dowolnie 

długiej wiadomości, przyporządkowuje krótką, posiadającą stały rozmiar 

wartość. 

Klucz prywatny – Pojęcie używane w kryptografii asymetrycznej, nazywany również 

kluczem tajnym. Służy do deszyfrowania wiadomości oraz bierze udział w 

procesie tworzenia podpisu elektronicznego. Tworzy nierozerwalną parę z 

kluczem publicznym. Klucz powinien być znany tylko właścicielowi.  

 

Pojęcie to również używane jest w kryptografii symetrycznej. 

Klucz publiczny – Pojęcie używane w kryptografii asymetrycznej. Służy do 

szyfrowania wiadomości (do odszyfrowania służy klucz tajny) oraz do 

weryfikacji podpisu elektronicznego. Klucz ten jest udostępniany 

publicznie. 

Kryptogram – Zaszyfrowana wiadomość. 

Podpis cyfrowy – 

Dane dołączone do danych lub ich przekształcenie kryptograficzne, 

które pozwala odbiorcy danych udowodnić pochodzenie danych 

i zabezpieczyć je przed fałszerstwem (norma ISO 7498-2:1989). 

 

Podpis cyfrowy nie musi być generowany przez człowieka. 

Podpis elektroniczny – Dane w postaci elektronicznej, które wraz z innymi danymi, do 

których zostały dołączone lub z którymi są logicznie powiązane, służą do 

identyfikacji osoby składającej podpis elektroniczny (Art. 3 ust. 1) . Pojęcie 

podpisu elektronicznego wprowadzone zostało przez dyrektywę unijną 

1999/93/EC i określa, że jest to operacja podpisywania danych przez osobę 

fizyczną. 

Statyczna kontrola typów – Sprawdzenie zgodności typów zachodzące podczas 

kompilacji programu. 

Trigger –  Wyzwalacz. Jest to zadanie (jedno, lub więcej zapytań SQL) wykonujące się 

w tle, gdy zajdzie określona okoliczność (np. dodanie rekordu do bazy) . 

VIEWS – Widok. Wirtualna tabela określona przez zapytanie SQL. Składa się 

z kolumn innej tabeli lub tabel. Odwołać się do niej można jak do zwykłej 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 72 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

tabeli, jednak operacje wstawiania, usuwania i modyfikowania nie zawsze 

działają. 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 73 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

9.  Bibliografia 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 74 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

[1]  Reinhard Wobst. Kryptologia. Budowa i łamanie zabezpieczeń. Wydawnictwo 

RM, 2002. 

[2]  Bruce Schneier.  Kryptografia dla praktyków. WNT, Warszawa 1995. 

[3]  Mirosław Kutyłowski, Willy-B. Strothmann. Kryptografia. Teoria i praktyka        

zabezpieczania systemów komputerowych. Wydawnictwo Lupus, Warszawa 1998. 

[4]  Portal dla programisów .NET  

     

http://codeguru.pl/article-154.aspx

[5]  Forum dyskusyjne  

http://f.kafeteria.pl

[6]  Wikipedia - Internetowa encyklopedia  

http://www.wikipedia.org

[7]  Wikipedia – artykuł o  kryptografii 

http://pl.wikipedia.org/wiki/Kryptografia

[8]  Podstawy kryptografii w środowisku .NET   

http://codeguru.pl/article-154.aspx

[9]  .NET Framework Developer Center – .NET Framework Cryptography Model 

          

http://msdn.microsoft.com/en-us/library/0ss79b2x.aspxmsdn.microsoft.com

[10]  Oficjalna dokumentacja SQLite  

 

http://www.sqlite.org

[11]  Strona wydziału matematyki Uniwersytetu Harvard (Harvard  Mathematics 

Department Home page) 

 

http://www.math.harvard.edu/computing/sqlite/index.html

[12]  Strona producenta narzędzia SQLite Administrator 

 

http://sqliteadmin.orbmu2k.de/

[13]  Helionica – sieciowa encyklopedia informatyki 

 

http://encyklopedia.helion.pl/index.php/Atak_s%C5%82ownikowy

[14]  Strona producenta program FileWatcher 

 

http://www.datamystic.com/license.html

 

 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 75 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

 Spis ilustracji 

Rysunek 1.  Aplikacja FileWatcher ................................................................................ 12 
Rysunek 2 Aplikacja FolderWatch ................................................................................. 14 
Rysunek 3 Aplikacja FileMon ........................................................................................ 15 
Rysunek 4.  Klasy przestrzeni nazw System.Security.Cryptography  dla algorytmu 
szyfrowania symetrycznego, za [7] ................................................................................ 23 
Rysunek 5. Klasy przestrzeni nazw System.Security.Cryptography dla algorytmu 
szyfrowania haszującego, za [7] ..................................................................................... 23 
Rysunek 6.  SQLite Administrator ................................................................................. 36 
Rysunek 7. Diagram przypadków użycia. ...................................................................... 40 
Rysunek 8. Okno główne aplikacji. ................................................................................ 41 
Rysunek 9. Siatka właściwości dla projektu................................................................... 42 
Rysunek 10. Siatka właściwości dla pliku...................................................................... 43 
Rysunek 11. Wybór opcji umożliwiającej przejście do okna tworzenia projektu.......... 45 
Rysunek 12. Okno umożliwiające utworzenie nowego projektu. .................................. 46 
Rysunek 13 Główne okno aplikacji. ............................................................................... 47 
Rysunek 14. Okno zapisu i otwarcia projektu. ............................................................... 48 
Rysunek 15.  Okno umożliwiające dodawanie katalogów do indeksów........................ 49 
Rysunek 16. Schemat struktury bazy danych. ................................................................ 52 
Rysunek 17.  Komunikaty o zdarzeniach w monitorowanej strukturze. ........................ 55 
Rysunek 18. Okno umożliwiające definiowanie nowych atrybutów. ............................ 60 
Rysunek 19. Edytor atrybutów. ...................................................................................... 61 
Rysunek 20. Panel filtrów............................................................................................... 62 
Rysunek 21. Okno tworzenia nowego projektu.............................................................. 64 

 

 

 

 

 

 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 76 

background image

 

Magdalena Kruczek                                                                                   Praca Magisterska

 

 

Spis tabel 

Tabela 1.  Struktura tabeli PROJECT............................................................................. 53 
Tabela 2.  Struktura tabeli FILE ..................................................................................... 54 
Tabela 3.  Struktura tabeli FILE_VERSION .................................................................. 54 
Tabela 4. Symbole odpowiadające grupom plików........................................................ 56 
Tabela 5. Wymagane zgodności atrybutów dla poszczególnych grup plików. .............. 57 
Tabela 6. Opcje menu dostępne dla poszczególnych grup plików. ................................ 58 
Tabela 7. Opcje menu dostępne dla poszczególnych grup plików z dodatkowymi 
opcjami............................................................................................................................ 65 

 

 

 

Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows 

 77