2010-02-16 5 views
1

dont décharge hex est suitblob en ligne dans le serveur SQL

00000000: 30001100 62010000 00000000 013caae4 † 0 .... < ..b .......
00000010: 00060040 02002000 02000000 5c803801 †. .. @ .. ..8 .....
00000020: 0400004d 01000000 384c0000 681f0000 † ... M .... 8L..h ...
00000030: e7010000 01000000 d03e0000 08020000 † .... .....> ......
00000040: 01000000 385e0000 09020000 01000000 † .... 8^..........
00000050: 926b0000 0a020000 01000000 †††††† †††† .k ..........

une de la colonne dans le registre est la suivante

ImagEVAL = [BLOB Inline Root] Slot 2 Colonne 5 Décalage 0x20 Longueur 60

Level = 0 Non utilisé = 77 UpdateSeq = 1 TimeStamp = 1278738432

0 Lien

Size = 8040 RowId = (1: 487: 0)

Link 1

Si ze = 16080 RowId = (1: 520: 0)
Link 2

Size = 24120 RowId = (1: 521: 0)
Link 3

Size = 27538 RowId = (1: 522: 0)

Comment peut-on identifier s'il s'agit de [BLOB Inline Root]. Comment interprétons-nous les valeurs ci-dessus à partir de hex. Merci

+0

même pas proche d'une vraie question ... –

+0

Un vidage hexadécimal et un tas de mots-clés mystérieux, voilà comment je veux commencer ma semaine! – Aaronaught

Répondre

1

Nous aurons besoin du schéma pour identifier les valeurs stockées ...

Cela dit:

3000 => 
The two first flag bytes of the record. 

1100 => 
Length of the fixed length data (decimal value = 17), meaning the next 13 bytes are the fixed length data portion of the record. 

013caae4 62010000 00000000 00 => 
Fixed length data. No way to say what's what without schema. 

0600 => 
Total number of columns in the table. 

40 => 
The null bitmap array. Decimal 64 = 0b10000000 in binary, meaning the first column of the record is NULL. 

0200 => 
Number of variable length columns. Thus we can conclude you have 4 fixed-length columns since the total is 6. 

2000 => 
Position offset of first variable length column. Decimal value 32. Data can thus be found from position 27-32 for a total of 6 bytes: 3801 02000000. 

5c80 => 
Position offset of second variable length column. Decimal value 32.860, 0b1000000001011100 in binary. BLOB pointers are identified using the sign bit of the position offset value. Removing the sign bit from the equation gives a decimal value of 0b0000000001011100 = 92. The inline data can thus be found from bytes 33-92: 

0400004d 01000000 384c0000 681f0000 
e7010000 01000000 d03e0000 08020000 
01000000 385e0000 09020000 01000000 
926b0000 0a020000 01000000 

BLOB Inline Roots start out with a header: 

04 => 
Special field type 

00 => 
Link 

00 => 
Index level 

4d => 
Unused (field) 

01000000 => 
Update sequence 

384c0000 => 
Timestamp (unsigned) 

And then finally we have the actual meat, an array of slot pointers: 

Length PageID FileID Slot 
681f0000 e7010000 0100 0000 
d03e0000 08020000 0100 0000 
385e0000 09020000 0100 0000 
926b0000 0a020000 0100 0000