To miejsce czeka na Twoj╣ reklamΩ

Jak zidentyfikowaµ jΩzyk cz.2

Powracam do tematu z mojego poprzedniego artyku│u, a wiΩc jak zidentyfikowaµ jΩzyk, w kt≤rym program zosta│ napisany. Ca│kiem niedawno odkry│em w swoim katalogu WINDOWS folder APPLOG. Zwr≤ci│ moj╣ uwagΩ, bo by│ to folder ukryty (paradoks, nie? ;)). Wewn╣trz znalaz│em mn≤stwo plik≤w z rozszerzeniem LGC i znajomo brzmi╣cych nazwach. Domy£lam siΩ, ┐e s╣ to pliki generowane przez system z zapisem czynno£ci program≤w.
Otworzy│em pierwszy z brzegu plik BRIX.LGC (dotycz╣cy gry BriX, sk╣din╣d ca│kiem niez│ej). Plik by│ dosyµ du┐y, wiΩc Notatnik nie podo│a│ - trzeba by│o u┐yµ WordPada. Jego zawarto£ci╣ by│o kilka tysiΩcy linii nastΩpuj╣cej struktury: najpierw ci╣gi liczb i liter, p≤ƒniej ewentualnie nazwa pliku ze £cie┐k╣. O ile o znaczeniu liczb mogΩ tylko snuµ domys│y, o tyle funkcja nazw plik≤w sta│a siΩ od razu oczywista: s╣ to pliki u┐ywane przez dany program! Wszystkie pliki! Mo┐na je podzieliµ na parΩ grup:

    1. Plik wykonywalny, zwykle na samym pocz╣tku
    2. Biblioteki uruchomieniowe - to nas interesuje najbardziej, o nich nieco dalej
    3. Pliki otwarte przez program - choµby poprzez instrukcje Open (VB), fopen (C++), tak┐e LoadPicture czy ReadFile (API); zar≤wno dokumenty, jak i np. pliki INI
    4. Inne aplikacje uruchamiane przez program - poprzez np. instrukcje Shell (VB), ShellExecute (API) itp. W logu aplikacji wywo│uj╣cej jest tylko informacja o tym, dzia│anie programu wywo│anego jest zapisywane w oddzielnym logu
    5. Pliki systemowe - bardzo r≤┐ne, od czΩ£ci j╣dra systemu (KERNEL32.DLL, SHELL32.DLL) poprzez kontrolki OCX, inne biblioteki DLL (np. te od DirectX) a┐ do czcionek czy nawet dƒwiΩk≤w systemowych!

Nas oczywi£cie interesuje najbardziej punkt 2. Na podstawie znalezionych odwo│a± do bibliotek mo┐na zidentyfikowaµ jΩzyk programu.
- MSVBM60.DLL odpowiada Visual Basicowi
- BWCC.DLL i BWCC32.DLL odpowiadaja produktom Borlanda (Delphi, C++, C++ Builder)
- MFCxx.DLL i MSVCRT.DLL to Microsoft Visual C++
- KNP.INI to jedyny £lad wskazuj╣cy, ┐e dany program zosta│ stworzony w Klik & Play (choµ wymagane biblioteki to KNPS.DLL i KNPG.DLL!)
- CNCS32.DLL £wiadczy o uzyciu programu The Games Factory

Uwaga, liczy siΩ to, co wystΩpuje jako pierwsze! Programy w VB czΩsto maj╣ w swoich logach nazwy MFC42.DLL i MSVCRT.DLL, ale wystΩpuje przed nimi MSVBM60.DLL. Je┐eli log zawiera tylko pierwsze dwa pliki, program jest MS Visual C++!

Programy DOSowe nie zostawiaj╣ tak widocznych £lad≤w - w ich plikach LGC nie znajdziemy raczej u┐ytecznych informacji o ich pochodzeniu. Programy w asemblerze plik≤w LGC w og≤le nie tworz╣ i to mo┐e je zdradziµ.

Pliki LGC s╣ te┐ u┐yteczne dla tw≤rc≤w program≤w, gdy┐ umo┐liwiaj╣ wgl╣d w ich czynno£ci i otwierane pliki.

To tyle. Je┐eli macie jakie£ uwagi, informacje o znaczeniu tych liczb w plikach LGC (wg mnie s╣ to zapisy mniejsc pamiΩci, z kt≤rych korzysta│ program i rozkaz≤w procesora), piszcie.

 

Karol Kuczmarski
qkarol@go2.pl
http://www.qkarol.prv.pl
ICQ (UIN): 69629311