Jeżeli kogoś ten temat nudzi
Jak zidentyfikować język
cz.3
Jeżeli kogoś ten temat nudzi, to go uspokoję - więcej artykułów raczej nie
będzie :)
A jeśli kogoś to obchodzi to zapraszam do lektury. Zajmiemy niedocenianym elementem
Windowsa, czyli Szybkim podglądem.
Narzędzie to w zasadzie służy do podglądu dokumentów, ale nie znam nikogo, kto by go
używał w ten sposób :) Nas interesuje inny jego aspekt - używanie Szybkiego pdglądu
na plikach EXE. Oczywiście nie będziemy mieli wglądu w kod źródłowy programu, ale
uzyskamy wiele cennych informacji o nim.
Kliknij więc prawym przyciskiem na dowolny plik EXE i wybierz z menu Szybki podgląd.
Pierwsze dwie linie pliku tekstu, który zobaczysz, wyglądają tak:
PLIK WYKONYWALNY DLA WINDOWS
32-bitowy dla Windows 95 i Windows NT
Jeżeli zobaczysz, że jest to program 16-bitowy, to zostaw go - opisane niżej metody nie
nadają się do takich aplikacji.
Interesuje nas sekcja Nagłówek pliku obrazu, a dokładnie jej ostatnia pozycja
Charakterystyka. Szukajmy tam dwóch linii tej treści:
Niskie bajty maszyny są zarezerwowane.
Wysokie bajty maszyny są zarezerwowane.
Jeśli ich brak, to jest program napisany w VB. Dla pewności skocz jeszcze na koniec
tekstu i sprawdź pozycję Wymagana pamięć. Jeżeli jest tam 2K (a nie 1K), to mamy
pewność (dobitny przykład, że programy w VB są pamięciożerne :))
Jeżeli natomiast linie te są obecne, to znaczy, że program nie jest w VB :) (odkrywcze,
no nie? :) W takim razie zerkamy do środka tekstu. Jeżeli obecna jest sekcja Tabela
importu, zawierająca odwołania do różnych bibliotek (KERNEL32.DLL, USER32.DLL itp.)
wraz z nazwami funkcji API (najczęściej: CopyFileA, ExitProccess, ShellExecuteA i inne
popularne), to jest to program w C++. Jeżeli ich brak, to najprawdopodobniej jest to
program napisany w Delphi.
Zapewne zapytacie, czemu piszę tylko o tych trzech językach. No cóż, skromnie licząc,
dziewięćdziesiąt kilka procent programów jest napisanych w jednych z nich, z czego
ponad połowa w C++. I jeszcze jedna uwaga odnosnie właśnie C++: jest kilka środowisk
służących do programowania właśnie w tym języku, jednak nie da się ze
skompilowanego pliku odczytać, jakie zostało użyte. W przypadku pozostałych języków
wszystko jest od razu jasne, bo tylko Borland Delphi używa Object Pascala, a VB
obiektowego wariantu języka BASIC.
Jeżeli macie jakieś poprawki, uwagi, to piszcie.
Karol Kuczmarski
qkarol@go2.pl
http://www.qkarol.prv.pl
ICQ (UIN): 69629311
Wyszukiwarka
Podobne podstrony:
ART5 (19)ART5 (15)ART5 (14)ART5 (18)art5 (17)art5ART5 (5)art5art5ART5 (9)ART5 (7)więcej podobnych podstron