14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

чт<strong>е</strong>ни<strong>е</strong> и запись файлов<br />

Сло)кности работы с двоичными файлами<br />

Ч т о д<strong>е</strong>лать, <strong>е</strong>сли вы н<strong>е</strong> зна<strong>е</strong>т<strong>е</strong> т о ч н о , какая и н ф о р м а ц и я со д <strong>е</strong> р ж и тся в файл<strong>е</strong>? Н <strong>е</strong> и зв<strong>е</strong>стн о даж<strong>е</strong>, каким<br />

п р и л о ж <strong>е</strong> н и <strong>е</strong> м э то т ф айл б ы л создан, а п р и о т к р ы т и и <strong>е</strong>го в Б л о кн о т<strong>е</strong> вы в и д и т<strong>е</strong> то л ь ко мусор. Я сн о<br />

то л ь ко , ч т о Б л о к н о т н<strong>е</strong> слиш ком п о д х о д и т для о т к р ы т и я т а к о го рода ф айлов.<br />

П<strong>е</strong>р<strong>е</strong>д вами с<strong>е</strong>риализованная карма,<br />

открытая в Злокнот<strong>е</strong>. Вряд ли кто -<br />

то смож<strong>е</strong>т воспользоваться этой<br />

информаци<strong>е</strong>й.<br />

3 king-s - Notepad<br />

File Edit Formst View H dp<br />

p s e r la liz e a deck of cards, v e r s io r -l 0 .0 .0 ,<br />

I ^ ____— . d T T i г- — « - - ч - і Л - ї т л -л A fs jr -h ’ л -Р i— »г*<br />

Cu1ture=neutra1, PublicKeyToken=nuI и sen an ze_a_aecK _or_caras.tai u-<br />

ik__Back1ngFie1dTk__Back1ngFie1d-JSeriali2e_a_deck_of_cards. su its,<br />

s e r ia lі ze_a_deck_of_cards.values, , iÿyÿÿserialize_a_deck_of.c a r d s .s u its<br />

•value__ a lüÿyÿ ser1a1ize_a_deck_of_cards.values «value<br />

Ho этой информации явно н<strong>е</strong>достаточно.<br />

С ущ <strong>е</strong>ству<strong>е</strong>т та к о й ф орм ат как дамп д а н н ы х (h e x d u m p ), о б ы ч н о использу<strong>е</strong>м ы й для п р о с м о тр а д в о и ч ­<br />

н о й и н ф о р м а ц и и . О н н а м н о го бол<strong>е</strong><strong>е</strong> и н ф о р м ати в <strong>е</strong> н . К а ж д ы й б а й т пр<strong>е</strong>дставл<strong>е</strong>н в вид<strong>е</strong> двух сим волов<br />

в ш <strong>е</strong> с тн а д ц а т<strong>е</strong> р и ч н о й сист<strong>е</strong>м <strong>е</strong>, ч т о позво л я <strong>е</strong> т с к о н ц <strong>е</strong> н тр и р о в а т ь м н о го ч и с л <strong>е</strong> н н ы <strong>е</strong> д анны <strong>е</strong> в н<strong>е</strong>больш<br />

ом объ<strong>е</strong>м<strong>е</strong>. Д в о и ч н ы <strong>е</strong> д анны <strong>е</strong> такж <strong>е</strong> х о р о ш о п р<strong>е</strong>дставл ять в стр о к а х д л и н о й п о 8 ,1 6 и л и 32 байта, так<br />

как о н и д<strong>е</strong>лятся и м <strong>е</strong> н н о на та ки <strong>е</strong> кусо чки . К прим <strong>е</strong>ру, ф орм ат i n t заним а<strong>е</strong>т до 4 байт, со о тв <strong>е</strong> тств <strong>е</strong> н н о ,<br />

и м <strong>е</strong> н н о та кую д л и н у о н им <strong>е</strong><strong>е</strong>т посл<strong>е</strong> с<strong>е</strong>риализации. В о т как наш ф айл вы гл я д и т в вид<strong>е</strong> ш <strong>е</strong> стн а д ц а т<strong>е</strong> р и ч­<br />

н о го дампа:<br />

М ож но сразу<br />

увид<strong>е</strong>ть числ<strong>е</strong>нно<strong>е</strong><br />

знач<strong>е</strong>ни<strong>е</strong><br />

каждого байта.<br />

Число в начал<strong>е</strong><br />

каждой строки<br />

указыва<strong>е</strong>т на<br />

сдвиг п<strong>е</strong>рвого<br />

байта о оч<strong>е</strong>р<strong>е</strong>ди.<br />

; (Bj C:\Windows\system52\cmd.exe<br />

Г500О ; 00 01 00 00 00 fd fd fd -- fd 01 00 00 00 00 00 00<br />

С1010: 00 0c 02 00 00 00 3f, 43 -- 68 6,1 78 74 65 72 33 2c ..... ?Chapter9,<br />

0020; 20 56 65 72 73 69 6f Se -- 3d 31 2e 30 2e 30 2e 38 Uersion=1,0.0.0<br />

0030; 2c 20 43 75 6c 74 75 72 -- 65 3d 6e 65 75 74 72 61 . Culture=neu'tra<br />

0040; 0c. ;.r 20 50 75 62 Sc 69 -- 63 4b 65 73 54 6f 6b 65 1, PublicKeyToke’<br />

75 6c 6c 05 01 — 08 00 00 0d 43 Є8 61 70 n=riull.... ;Chap<br />

0060: 74 72 39 2e 43. 61 72 -- 64 02 80, 00 00 04 53 75 ter9.Card, .. .Su<br />

69 74 05 s'e 61 6c 75 65 -- 04 04 13 43 68 61 70 74 i t .Ualue...Chapt<br />

ж о ї в ) ) 65 ,72 39 2e 43 61 72 64 -- 2b'53 75 69 74 73 02 00 erS.Card+Suits.,<br />

m w 00 00 14 43 68 81 70 74 -- 65 72 33 2e 43 61 72 64 ...Chapters.Card<br />

08a0 2b 56 61 6c 75 65 ,73. 02 -- 80 00 00 02 08 80 00 .05 +Ualues.........<br />

00Ь0 fd fd fd fd 13 43 68 61 -- 70 74 65 72 39 2e 43 61 .... Chapters.Ca<br />

150с0 72 64 2b 53 75 69 74 73 -- 01 00 '00 00 07 76 61 Ec rd+Suits.....yal<br />

P)0d0 ?5 65 5f 5f 00 08 82 00 -- 00 00 01 00 00 08 05 fd ue<br />

0О<strong>е</strong>0 fd fd fd 14 43 68 61 70 -- 74 65 72 39 2© 43 61 72 ... Chapters.Car<br />

nofo 64 2b 56 61 6c 75 65 73 -- 01 00 00 00 07 76 61 6c d+Ualues.... ual<br />

ul 00 7S 65 5f 5f 00 S8 02 00 -- 80 00 03 00 00 00 0b 02<br />

...........<br />

........serisliir^<br />

:110 80 00 00 03 00 00 oa Ob -- 73 65 72 6Э 61 6c G9 ?3<br />

ei 20 65 ?2 2e 43 61 72 64 2b. -- 56 61 6c 75 65 Î3 01 08 er.Card+Ualues. .<br />

П130 00 00 9T 76 61 6c 75 65 -~ 5f 5f 00 08 02 00 00 00 ...ualue ....:.<br />

Ul 40 03 00 00 00 Ob --<br />

Г|<br />

Вы мож<strong>е</strong>т<strong>е</strong><br />

читать<br />

исходный<br />

т<strong>е</strong>кст, а м у ­<br />

сор зам<strong>е</strong>н<strong>е</strong>н<br />

точками.<br />

дальш<strong>е</strong> ¥ 441

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!