Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ diff -d <(hexdump -C old.bmp) <(hexdump -C new.bmp )
- 3c3
- < 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
- ---
- > 00000020 00 00 00 b6 e5 00 11 0b 00 00 11 0b 00 00 00 00 |................|
- 940396,940404c940396,940408
- < 00e597d0 6a 72 71 6a 72 71 00 00 00 00 00 00 00 00 00 00 |jrqjrq..........|
- < 00e597e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
- < *
- < 00e59830 00 00 00 00 00 00 77 00 00 79 00 00 00 00 00 00 |......w..y......|
- < 00e59840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
- < *
- < 00e59870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7e 00 |..............~.|
- < 00e59880 00 7d 00 00 00 00 00 00 00 00 00 00 00 7f 00 00 |.}..............|
- < 00e59890 00 00 00 7e 00 00 00 00 00 00 00 00 00 00 a3 96 |...~............|
- ---
- > 00e597d0 6a 72 71 6a 72 71 9a a3 a7 9b a4 a8 97 a0 a4 94 |jrqjrq..........|
- > 00e597e0 9d a1 96 9f a3 99 a2 a6 96 a2 a4 97 a3 a5 96 a2 |................|
- > 00e597f0 a4 97 a3 a5 9b a6 aa 9c a7 ab 93 9e a2 84 8f 93 |................|
- > 00e59800 85 91 95 92 9e a2 8b 96 9a 81 8c 90 85 90 94 97 |................|
- > 00e59810 a2 a6 9b a6 aa 92 9d a1 8c 97 9b 86 91 95 85 90 |................|
- > 00e59820 94 89 94 98 88 93 97 88 93 97 92 9d a1 9f aa ae |................|
- > 00e59830 99 a4 a8 88 93 97 77 82 86 79 84 88 81 8c 90 81 |......w..y......|
- > 00e59840 8c 90 85 90 94 8b 96 9a 89 94 98 8d 98 9c 95 a0 |................|
- > 00e59850 a4 98 a3 a7 92 9c a3 8c 96 9d 8e 98 9f 91 9b a2 |................|
- > 00e59860 92 9c a3 94 9e a5 94 9c a3 8e 96 9d 8f 97 9e 90 |................|
- > 00e59870 98 9f 92 9a a1 9f a7 ae a0 a8 af 90 98 9f 7e 86 |..............~.|
- > 00e59880 8d 7d 85 8c 83 8b 92 86 8e 95 80 88 8f 7f 87 8e |.}..............|
- > 00e59890 81 89 90 7e 86 8d 83 8b 92 8a 92 99 94 9c a3 96 |...~............|
- la ligne a l'offset 00000020 c'est les diff de l'entete, pas pertinent
- le gros bloc qui diff ensuite c'est ni plus ni moins que la premiere ligne en haut a gauche de l'image
- concretement cette ligne est composée de pixels noirs {0,0,0} avec quelques pixels bleus et le dernier est un pixel rouge {a3,0,0} (et on a un octet 0x96 qui traine a la fin, osef imo)
- la premiere ligne est dumpée comme suit :
- (0, 0) RVB : (0,0,0) (#000000)
- (1, 0) RVB : (0,0,0) (#000000)
- (2, 0) RVB : (0,0,0) (#000000)
- (3, 0) RVB : (0,0,0) (#000000)
- (4, 0) RVB : (0,0,0) (#000000)
- (5, 0) RVB : (0,0,0) (#000000)
- (6, 0) RVB : (0,0,0) (#000000)
- (7, 0) RVB : (0,0,0) (#000000)
- (8, 0) RVB : (0,0,0) (#000000)
- (9, 0) RVB : (0,0,0) (#000000)
- (10, 0) RVB : (0,0,0) (#000000)
- (11, 0) RVB : (0,0,0) (#000000)
- (12, 0) RVB : (0,0,0) (#000000)
- (13, 0) RVB : (0,0,0) (#000000)
- (14, 0) RVB : (0,0,0) (#000000)
- (15, 0) RVB : (0,0,0) (#000000)
- (16, 0) RVB : (0,0,0) (#000000)
- (17, 0) RVB : (0,0,0) (#000000)
- (18, 0) RVB : (0,0,0) (#000000)
- (19, 0) RVB : (0,0,0) (#000000)
- (20, 0) RVB : (0,0,0) (#000000)
- (21, 0) RVB : (0,0,0) (#000000)
- (22, 0) RVB : (0,0,0) (#000000)
- (23, 0) RVB : (0,0,0) (#000000)
- (24, 0) RVB : (0,0,0) (#000000)
- (25, 0) RVB : (0,0,0) (#000000)
- (26, 0) RVB : (0,0,0) (#000000)
- (27, 0) RVB : (0,0,0) (#000000)
- (28, 0) RVB : (0,0,0) (#000000)
- (29, 0) RVB : (0,0,0) (#000000)
- (30, 0) RVB : (0,0,0) (#000000)
- (31, 0) RVB : (0,0,0) (#000000)
- (32, 0) RVB : (0,0,119) (#000077)
- (33, 0) RVB : (0,0,121) (#000079)
- (34, 0) RVB : (0,0,0) (#000000)
- (35, 0) RVB : (0,0,0) (#000000)
- (36, 0) RVB : (0,0,0) (#000000)
- (37, 0) RVB : (0,0,0) (#000000)
- (38, 0) RVB : (0,0,0) (#000000)
- (39, 0) RVB : (0,0,0) (#000000)
- (40, 0) RVB : (0,0,0) (#000000)
- (41, 0) RVB : (0,0,0) (#000000)
- (42, 0) RVB : (0,0,0) (#000000)
- (43, 0) RVB : (0,0,0) (#000000)
- (44, 0) RVB : (0,0,0) (#000000)
- (45, 0) RVB : (0,0,0) (#000000)
- (46, 0) RVB : (0,0,0) (#000000)
- (47, 0) RVB : (0,0,0) (#000000)
- (48, 0) RVB : (0,0,0) (#000000)
- (49, 0) RVB : (0,0,0) (#000000)
- (50, 0) RVB : (0,0,0) (#000000)
- (51, 0) RVB : (0,0,0) (#000000)
- (52, 0) RVB : (0,0,0) (#000000)
- (53, 0) RVB : (0,0,0) (#000000)
- (54, 0) RVB : (0,0,0) (#000000)
- (55, 0) RVB : (0,0,0) (#000000)
- (56, 0) RVB : (0,0,126) (#00007E)
- (57, 0) RVB : (0,0,125) (#00007D)
- (58, 0) RVB : (0,0,0) (#000000)
- (59, 0) RVB : (0,0,0) (#000000)
- (60, 0) RVB : (0,0,0) (#000000)
- (61, 0) RVB : (0,0,127) (#00007F)
- (62, 0) RVB : (0,0,0) (#000000)
- (63, 0) RVB : (0,0,126) (#00007E)
- (64, 0) RVB : (0,0,0) (#000000)
- (65, 0) RVB : (0,0,0) (#000000)
- (66, 0) RVB : (163,0,0) (#A30000)
- (btw en fait de coordonnées, l'abcisse equivaut au numéro de l'octet, pas au numéro du pixel dans l'image)
- le header de l'image etait le suivant :
- BMP FILE HEADER
- ===============
- Magic number : BM
- Taille du fichier : 15054390 octets
- Reserved 1 : 0
- Reserved 2 : 0
- Offset de l'image : 54
- BMP INFO HEADER
- ===============
- Size : 40
- Largeur : 2592
- Hauteur : 1936
- Plans : 1
- Bits par pixel : 24
- Compression : 0
- SizeImage : 0
- XPelsPerMeter : 0
- YPelsPerMeter : 0
- ClrUsed : 0
- ClrImportant : 0
- on remarque une chose c'est que la ligne noire jusqu'au premier pixel rouge {a3,0,0} fait 66 octets (soit 22 pixels)
- et (Largeur*Hauteur)/66 donne un compte rond, ca correspond etrangement bien
- piste => on peut facilement envisager qu'il faille etablir un masque avec les octets allumés dans la 1ere ligne sur le reste de l'image, mais comment ?
- de bas en haut (sens de l'image BMP) ? de haut en bas (sens de lecture du fichier) ?
- on peut envisager aussi que le fameux LSB intervienne un moment donné, il s'agirait donc de recuperer dans l'intégralité de l'image les derniers bits correspondants au masque de la 1ere ligne ? et ensuite, reconstituer des octets avec tout ca ?
- perso je le sens bien comme ca mais plus le temps d'implem pour ma part.. hf
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement