Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Rysunek1010RezultatWinMD5
Znajdowaniełańcuchów
Łańcuchwprogramietołańcuchznaków,takichjakDthe”.Programzawierałańcuchy
,
jeśliwyświetlakomunikaty
,łączysięzadresemURLlubkopiujeplikdookreślonej
lokalizacji.
Przeszukiwaniewceluznalezieniałańcuchówmożebyćprostymsposobemna
uzyskaniewskazóweknatematfunkcjonalnościprogramu.Jeślinaprzykładprogram
uzyskujedostępdoadresuURL,towprogramiezobaczymytenadresURLzapisany
jakołańcuch.Dowyszukaniawplikuwykonywalnymłańcuchówznaków,którezwykle
przechowywanewformacieASCIIlubUnicode,możemyużyćprogramuStrings
(http://bit.ly/ic4plL).
UWAGAMicrosoftużywaterminunajszerszyzestawznaków,abyopisaćswojąimplementacjęłańcuchów
Unicode,któreróżniąsięnieznacznieodstandardówUnicode.Wtejksiążce,gdybędziemymówić
oUnicode,będziemymielinamyśliimplementacjęMicrosoftu.
ZarównoformatASCII,jakiUnicodeprzechowująznakiwsekwencjachzakoń-
czonychznakiemzerowym(NULLterminator),abywskazać,żełańcuchjestkompletny
.
ŁańcuchyASCIIużywają1bajtanaznak,Unicodezaśużywa2bajtównaznak.
Rysunek1.2pokazujełańcuchBADzapisanyjakoASCII.ŁańcuchASCIIjestprze-
chowywanyjakobajty0x42,0x41,0x44i0x00,gdzie0x42jestreprezentacjąASCII
wielkiejliteryB,0x41reprezentujeliteręAitd.0x00nakońcujestznakiemzerowym.
ASCII
42
B
41
A
44
D
Znakzerowy
00
Rysunek1020ReprezentacjaASCIIłańcuchaBAD
Rysunek1.3pokazujenapisBADzapisanyjakoUnicode.ŁańcuchUnicodejest
przechowywanyjakobajty0x42,0x00,0x41itd.WielkaliteraBjestreprezentowana
przezbajty0x42i0x00,aznakiemzerowymdwabajty0x00.
Podstawowetechnikistatyczne
11