Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
368 lines (311 sloc) 20.6 KB
looking for: M4H02203
/MP_ROOT/309MNV01/M4H02203.MP4
Contains a free cluster (441090). Assuming EOF.
/MP_ROOT/309MNV01/M4H02203.MP4
File size is 484739781 bytes, cluster chain length is 0 bytes.
Truncating file to 0 bytes.
/MP_ROOT/309MNV01/M4H02203.THM
Contains a free cluster (455938). Assuming EOF.
/MP_ROOT/309MNV01/M4H02203.THM
File size is 5013 bytes, cluster chain length is 0 bytes.
Truncating file to 0 bytes.
pages this shows up: 1144929, 1359457, 1359943 (flash2.cs0.fixed)
1144929 seems to be the private store
1359457 also seems to be a private store
1359943 looks like the dirent
contents look like:
000000c0 4d 34 48 30 32 32 30 33 4d 50 34 20 00 64 fd a9 |M4H02203MP4 .dý©|
000000d0 ab 40 ab 40 06 00 e3 aa ab 40 02 bb c5 8a e4 1c |«@«@..㪫@.»Å.ä.|
000000e0 4d 34 48 30 32 32 30 33 54 48 4d 20 00 00 fd a9 |M4H02203THM ..ý©|
000000f0 ab 40 ab 40 06 00 fd a9 ab 40 02 f5 95 13 00 00 |«@«@..ý©«@.õ....|
MP4 start cluster 00 06 bb 02 (BE)
THM start cluster 00 06 f5 02 (BE)
FAT appears to end at 00 06 6b 73 (BE) (fat0+0019adc8)
searching for datum 03 bb 06 00 (LE), exists at pages:
cs0+239987
cs0+322173
cs0+505909
cs0+1225233
cs0+1256184
[cs1+...?]
search for datum 03 bb 06 00 04 bb (LE), exists at pages:
not on cs0 at all!
cs1+1147444
cs1+1147445
cs1+1147446
cs1+1147447
cs1+1147448
cs1+1147450
cs1+1147497
cs1+1147499
cs1+1147577
cs1+1147626
cs1+1147628
joshua@nyus:~/flash_fpga/sw$ dd if=flash2.cs1.fixed bs=8832 skip=1147444 count=1 | ./depage > 444
1+0 records in
1+0 records out
8832 bytes (8.8 kB) copied, 1.5405e-05 s, 573 MB/s
joshua@nyus:~/flash_fpga/sw$ dd if=flash2.cs1.fixed bs=8832 skip=1147445 count=1 | ./depage > 445
1+0 records in
1+0 records out
8832 bytes (8.8 kB) copied, 1.5588e-05 s, 567 MB/s
joshua@nyus:~/flash_fpga/sw$ cmp 444 445
joshua@nyus:~/flash_fpga/sw$
joshua@nyus:~/flash_fpga/sw$ for i in 1147444 1147445 1147446 1147447 1147448 1147450 1147497 1147499 1147577 1147626 1147628 ; do dd if=flash2.cs1.fixed bs=8832 skip=$i count=1 2>/dev/null | ./depage > $i; cmp -b 444 $i; rm $i; done
444 1147497 differ: byte 5613, line 7 is 0 ^@ 174 |
444 1147499 differ: byte 5613, line 7 is 0 ^@ 174 |
444 1147577 differ: byte 1, line 1 is 1 ^A 0 ^@
444 1147626 differ: byte 1, line 1 is 1 ^A 201 M-^A
444 1147628 differ: byte 1, line 1 is 1 ^A 201 M-^A
444-499 seem to be FATs starting at 00 06 b5 01
626 seems to be a FAT starting at 00 06 ba 81
577 seemed to be a FAT that would have started there, but was offset
offset 2230 from page '626:
00002230 bb ff fe 0c ff f3 c1 29 26 47 bc 42 ca 84 68 38 |»ÿþ.ÿóÁ)&G¼BÊ.h8|
00002240 75 d2 96 3d 1f ff 72 b6 a0 2f ff ff ff ff ff ff |uÒ.=.ÿr¶ /ÿÿÿÿÿÿ|
from '577:
00002230 bb ff fe 0c ff f3 c1 29 26 47 bc 42 ca 84 68 38 |»ÿþ.ÿóÁ)&G¼BÊ.h8|
00002240 75 d2 96 3d 1f ff 72 b6 a0 2f ff ff ff ff ff ff |uÒ.=.ÿr¶ /ÿÿÿÿÿÿ|
note that from '577 in cs0:
00002230 bb ff fe 7f ff bf 7d 86 53 56 b5 81 cb 72 62 95 |»ÿþ.ÿ¿}.SVµ.Ërb.|
00002240 75 ef 3d 8d 96 03 40 c8 0a 4f ff ff ff ff ff ff |uï=...@È.Oÿÿÿÿÿÿ|
'626 is *empty* in cs0
'497 is *empty* in cs0
'446 in cs0:
00002230 bb ff fe 07 ff 1d 97 21 56 e6 6e 95 b0 a2 ca f2 |»ÿþ.ÿ..!Væn.°¢Êò|
00002240 b6 5b 1e e8 ea 4d 14 f5 da 7f ff ff ff ff ff ff |¶[.èêM.õÚ.ÿÿÿÿÿÿ|
'446 in cs1:
00002230 bb ff fe 84 ff a9 f5 90 eb c8 99 04 af 13 ea 0d |»ÿþ.ÿ©õ.ëÈ..¯.ê.|
00002240 9b 46 05 43 69 c5 fb ec 47 6f ff ff ff ff ff ff |.F.CiÅûìGoÿÿÿÿÿÿ|
joshua@nyus:~/flash_fpga/sw$ for i in `seq 512`; do dd if=flash2.cs0.fixed bs=8832 skip=$((0x118200+$i)) count=1 | dd bs=8752 count=1; dd if=flash2.cs0 bs=8832 skip=$((0x118200+$i)) count=1 | dd bs=8752 skip=1; done > flash2.cs0.patchblock 2>/dev/null
joshua@nyus:~/flash_fpga/sw$ for i in `seq 512`; do dd if=flash2.cs1.fixed bs=8832 skip=$((0x118200+$i)) count=1 | dd bs=8752 count=1; dd if=flash2.cs1 bs=8832 skip=$((0x118200+$i)) count=1 | dd bs=8752 skip=1; done > flash2.cs1.patchblock 2>/dev/null
-----
block 1 is at 0x134900
Interestingly, the command words are *not* the same for the whole block!
joshua@nyus:~/flash_fpga/sw$ for i in `seq 0 255`; do dd if=flash2.cs0.fixed bs=8832 skip=$((0x134900+$i)) count=1 2>/dev/null | hd | grep 00002230; done | sort | uniq -c
96 00002230 ed f2 e8 ff ff 90 4e e0 2e 53 41 a0 93 8d 4e ca |íòèÿÿ.Nà.SA ..NÊ|
28 00002230 ed f2 ff ff ff 90 4e e0 2e 53 41 a0 93 8d 4e ca |íòÿÿÿ.Nà.SA ..NÊ|
4 00002230 ed ff fe ff ff de 92 0a bc 45 66 e2 ce 8d bb 3b |íÿþÿÿÞ..¼EfâÎ.»;|
128 00002230 ed ff fe ff ff de 92 0a bc 45 66 e2 ce bf bb 3b |íÿþÿÿÞ..¼Efâο»;|
Same pattern for CS1.
This happens even on a 'known good' block, in a similar pattern (96, 28, 4,
and 128).
Some of the modified block numbers -- f2e8, f2ff, fffe (real block number is
fffe) seem to match up with some of the block numbers from the patch block:
joshua@nyus:~/flash_fpga/sw$ for i in `seq 0 255`; do dd if=flash2.cs0.fixed bs=8832 skip=$((0x118200+$i)) count=1 2>/dev/null | hd | grep 00002230; done | cut -d' ' -f1-5 | sort | uniq -c
74 00002230 9a f2 e8
28 00002230 9a f2 ff
108 00002230 9a ff fe
22 00002230 de f2 e9
24 00002230 de ff ff
-----
Irritatingly, it looks like certain page tags map to multiple FAT ranges!
For instance:
joshua@nyus:~/flash_fpga/sw$ ./patchsec < flash2.cs1.patchblock | sort | less -R
[...]
44 00 01 f5 00 21 27 ed 5c e9 3c 76 5a 9d bf a2 c9 3f 2a 96 8d c6 57 77 58 90 -> fat0 logpg 0f9 (586 votes); cs 0 pg be (input pgn 64)
44 00 01 f5 00 21 27 ed 5c e9 3c 76 5a 9d bf a2 c9 3f 2a 96 8d c6 57 77 58 90 -> fat0 logpg 0f9 (586 votes); cs 0 pg be (input pgn 65)
44 00 01 f5 00 21 27 ed 5c e9 3c 76 5a 9d bf a2 c9 3f 2a 96 8d c6 57 77 58 90 -> fat0 logpg 0f9 (586 votes); cs 0 pg be (input pgn 67)
44 00 01 f5 00 21 27 ed 5c e9 3c 76 5a 9d bf a2 c9 3f 2a 96 8d c6 57 77 58 90 -> fat0 logpg 0fa (586 votes); cs 1 pg 3e (input pgn 192)
44 00 01 f5 00 21 27 ed 5c e9 3c 76 5a 9d bf a2 c9 3f 2a 96 8d c6 57 77 58 90 -> fat0 logpg 0fa (586 votes); cs 1 pg 3e (input pgn 193)
44 00 01 f5 00 21 27 ed 5c e9 3c 76 5a 9d bf a2 c9 3f 2a 96 8d c6 57 77 58 90 -> fat0 logpg 0fa (586 votes); cs 1 pg 3e (input pgn 195)
[...]
joshua@nyus:~/flash_fpga/sw$ dd if=flash2.cs1.patchblock bs=8832 count=1 skip=67 2>/dev/null | hexdump -C | head -n3
00000000 81 d2 06 00 82 d2 06 00 83 d2 06 00 84 d2 06 00 |.Ò...Ò...Ò...Ò..|
00000010 85 d2 06 00 86 d2 06 00 87 d2 06 00 88 d2 06 00 |.Ò...Ò...Ò...Ò..|
00000020 89 d2 06 00 8a d2 06 00 8b d2 06 00 8c d2 06 00 |.Ò...Ò...Ò...Ò..|
joshua@nyus:~/flash_fpga/sw$ dd if=flash2.cs1.patchblock bs=8832 count=1 skip=192 2>/dev/null | hexdump -C | head -n3
00000000 81 da 06 00 82 da 06 00 83 da 06 00 84 da 06 00 |.Ú...Ú...Ú...Ú..|
00000010 85 da 06 00 86 da 06 00 87 da 06 00 88 da 06 00 |.Ú...Ú...Ú...Ú..|
00000020 89 da 06 00 8a da 06 00 8b da 06 00 8c da 06 00 |.Ú...Ú...Ú...Ú..|
44 00 01 81 00 d9 ff 3d 53 fb 18 f4 fe 81 47 0f 8c af 8f 5b 2a 05 b7 36 86 20 -> fat0 logpg 102 (935 votes); cs 1 pg 40 (pgn 115)
44 00 01 81 00 d9 ff 3d 53 fb 18 f4 fe 81 47 0f 8c af 8f 5b 2a 05 b7 36 86 20 -> fat0 logpg 103 (1461 votes); cs 1 pg c0 (pgn 252)
joshua@nyus:~/flash_fpga/sw$ dd if=flash2.cs1.patchblock bs=8832 count=1 skip=115 2>/dev/null | hexdump -C | head -n3
00000000 01 15 07 00 02 15 07 00 03 15 07 00 04 15 07 00 |................|
00000010 05 15 07 00 06 15 07 00 07 15 07 00 08 15 07 00 |................|
00000020 09 15 07 00 0a 15 07 00 0b 15 07 00 0c 15 07 00 |................|
joshua@nyus:~/flash_fpga/sw$ dd if=flash2.cs1.patchblock bs=8832 count=1 skip=252 2>/dev/null | hexdump -C | head -n3
00000000 01 1d 07 00 02 1d 07 00 03 1d 07 00 04 1d 07 00 |................|
00000010 05 1d 07 00 06 1d 07 00 07 1d 07 00 08 1d 07 00 |................|
00000020 09 1d 07 00 0a 1d 07 00 0b 1d 07 00 0c 1d 07 00 |................|
More info:
(for i in cs0 cs1; do ./patchsec < flash2.$i.patchblock | while read a; do echo "$a",$i; done; done) | sort | less -R
-----
Next missing:
/DCIM/31020601/DSC02301.JPG
Contains a free cluster (473848). Assuming EOF.
/DCIM/31020601/DSC02301.JPG
File size is 9273344 bytes, cluster chain length is 0 bytes.
Truncating file to 0 bytes.
/DCIM/31020601/DSC02301.ARW
Contains a free cluster (474131). Assuming EOF.
/DCIM/31020601/DSC02301.ARW
File size is 17498112 bytes, cluster chain length is 0 bytes.
Truncating file to 0 bytes.
List of missing clusters:
maybe 455936? -> BE 0006f500
467917 -> BE 000723cd
468436 -> BE 000725d4
468597 -> BE 00072675
469116 -> BE 0007287c
469385 -> BE 00072989
469919 -> BE 00072b9f
470187 -> BE 00072cab
470720 -> BE 00072ec0
470942 -> BE 00072f9e
471470 -> BE 000731ae
471698 -> BE 00073292
472227 -> BE 000734a3
472511 -> BE 000735bf
473045 -> BE 000737d5
473315 -> BE 000738e3
473848 -> BE 00073af8
474131 -> BE 00073c13
Look for datum ce 23 07 00 cd 23
joshua@nyus:~/flash_fpga/sw$ ./look-for-it < flash2.cs1.fixed
ad: 1360256 = 14c180
joshua@nyus:~/flash_fpga/sw$ ./look-for-it < flash2.cs0.fixed
ad: 1360129 = 14c101
ad: 1360130
ad: 1360131
ad: 1360132
ad: 1360133
ad: 1360134
ad: 1360135
ad: 1360136
ad: 1360137
ad: 1360138 = 14c10a
joshua@nyus:~/flash_fpga/sw$ for i in `seq 0 255`; do dd if=flash2.cs0.fixed bs=8832 skip=$((0x14c100+$i)) count=1 2>/dev/null | hd | grep 00002230; done | sort | uniq -c
8 00002230 9b f2 ff 05 fe 8a 40 9e a6 e2 09 7d 71 46 21 76 |.òÿ.þ.@.¦â.}qF!v|
2 00002230 9b f2 ff 05 ff 37 4b ce 65 bc 41 07 98 a0 5b eb |.òÿ.ÿ7KÎe¼A.. [ë|
2 00002230 9b f2 ff 17 fe 49 0f 3c 3c 54 76 0d 7e f4 f8 4c |.òÿ.þI.<<Tv.~ôøL|
2 00002230 9b f2 ff 7d fe 28 aa 39 a3 52 d2 69 0a 96 89 11 |.òÿ}þ(ª9£RÒi....|
6 00002230 9b ff fe 05 fe c4 9c 74 34 f4 2e 3f 2c 74 d4 87 |.ÿþ.þÄ.t4ô.?,tÔ.|
6 00002230 9b ff fe 05 ff 79 97 24 f7 aa 66 45 c5 92 ae 1a |.ÿþ.ÿy.$÷ªfEÅ.®.|
2 00002230 9b ff fe 77 fe 11 5d 9f be b7 75 76 e7 8e 04 4f |.ÿþwþ.].¾·uvç..O|
2 00002230 9b ff fe 7d fe 66 76 d3 31 44 f5 2b 57 a4 7c e0 |.ÿþ}þfvÓ1Dõ+W¤|à|
96 00002230 de f2 e9 ff fe b1 23 15 6d e9 d8 bd a2 cd 0a 0e |Þòéÿþ±#.méؽ¢Í..|
14 00002230 de f2 fe ff fe b1 23 15 6d e9 d8 bd a2 cd 0a 0e |Þòþÿþ±#.méؽ¢Í..|
4 00002230 de ff ff ff fe ff ff ff ff ff ff ff ff cd ff ff |ÞÿÿÿþÿÿÿÿÿÿÿÿÍÿÿ|
112 00002230 de ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff |Þÿÿÿþÿÿÿÿÿÿÿÿÿÿÿ|
joshua@nyus:~/flash_fpga/sw$ for i in `seq 0 255`; do dd if=flash2.cs1.fixed bs=8832 skip=$((0x14c100+$i)) count=1 2>/dev/null | hd | grep 00002230; done | sort | uniq -c
2 00002230 9b f2 ff 18 fe 05 b1 d6 f4 5e 36 7e 16 cb bc b4 |.òÿ.þ.±Öô^6~.˼´|
6 00002230 9b f2 ff 7c fe b1 d7 7d 5c 00 80 e3 c0 9a 53 74 |.òÿ|þ±×}\..ãÀ.St|
2 00002230 9b f2 ff 90 fe 5f 85 6f 39 d1 13 38 73 5c 3e 81 |.òÿ.þ_.o9Ñ.8s\>.|
2 00002230 9b f2 ff f0 fe 49 0b 26 29 24 37 01 b7 14 37 73 |.òÿðþI.&)$7.·.7s|
2 00002230 9b ff fe 04 fe 5d e1 30 cb a6 7c b5 e6 78 0e e2 |.ÿþ.þ]á0˦|µæx.â|
2 00002230 9b ff fe 16 fe 9e ae 92 51 10 03 c5 e9 ca d7 d8 |.ÿþ.þ.®.Q..ÅéÊ×Ø|
2 00002230 9b ff fe 78 fe 5d e3 75 76 bd 35 05 8f b1 40 b7 |.ÿþxþ]ãuv½5..±@·|
6 00002230 9b ff fe 7c fe ff 0b 97 ce 16 a7 a1 9d a8 a6 85 |.ÿþ|þÿ..Î.§¡.¨¦.|
2 00002230 9b ff fe 7e ff cd f1 1e 30 b2 02 b4 09 b1 12 4f |.ÿþ~ÿÍñ.0².´.±.O|
2 00002230 9b ff fe 8e fe 88 24 50 3b d3 b4 9c fe 10 42 80 |.ÿþ.þ.$P;Ó´.þ.B.|
96 00002230 de f2 e9 ff fe b1 23 15 6d e9 d8 bd a2 cd 0a 0e |Þòéÿþ±#.méؽ¢Í..|
16 00002230 de f2 fe ff fe b1 23 15 6d e9 d8 bd a2 cd 0a 0e |Þòþÿþ±#.méؽ¢Í..|
4 00002230 de ff ff ff fe ff ff ff ff ff ff ff ff cd ff ff |ÞÿÿÿþÿÿÿÿÿÿÿÿÍÿÿ|
112 00002230 de ff ff ff fe ff ff ff ff ff ff ff ff ff ff ff |Þÿÿÿþÿÿÿÿÿÿÿÿÿÿÿ|
joshua@nyus:~/flash_fpga/sw$ for i in `seq 255`; do dd if=flash2.cs0.fixed bs=8832 skip=$((0x14c100+$i)) count=1 | dd bs=8752 count=1; dd if=flash2.cs0 bs=8832 skip=$((0x14c100+$i)) count=1 | dd bs=8752 skip=1; done > flash2.cs0.patchblock2 2>/dev/null
joshua@nyus:~/flash_fpga/sw$ for i in `seq 255`; do dd if=flash2.cs1.fixed bs=8832 skip=$((0x14c100+$i)) count=1 | dd bs=8752 count=1; dd if=flash2.cs1 bs=8832 skip=$((0x14c100+$i)) count=1 | dd bs=8752 skip=1; done > flash2.cs1.patchblock2 2>/dev/null
joshua@nyus:~/flash_fpga/sw$ ./patchsec flash2.cs0.patchblock2 flash2.cs0.patchlist2 FAT sector offset e45 (F0 303b, F1 3f40) ( 782 votes) (representative FAT 00000000) (pgn 000 @ flash2.cs0.patchblock2)
FAT sector offset e45 (F0 303b, F1 3f40) ( 932 votes) (representative FAT 00000000) (pgn 001 @ flash2.cs0.patchblock2)
FAT sector offset e45 (F0 303b, F1 3f40) ( 1418 votes) (representative FAT 00000000) (pgn 002 @ flash2.cs0.patchblock2)
FAT sector offset e45 (F0 303b, F1 3f40) ( 1669 votes) (representative FAT 00072981) (pgn 003 @ flash2.cs0.patchblock2)
FAT sector offset e45 (F0 303b, F1 3f40) ( 1900 votes) (representative FAT 00072981) (pgn 004 @ flash2.cs0.patchblock2)
FAT sector offset e45 (F0 303b, F1 3f40) ( 1900 votes) (representative FAT 00072981) (pgn 005 @ flash2.cs0.patchblock2)
FAT sector offset e45 (F0 303b, F1 3f40) ( 1900 votes) (representative FAT 00072981) (pgn 006 @ flash2.cs0.patchblock2)
FAT sector offset e45 (F0 303b, F1 3f40) ( 1900 votes) (representative FAT 00072981) (pgn 007 @ flash2.cs0.patchblock2)
FAT sector offset e45 (F0 303b, F1 3f40) ( 1900 votes) (representative FAT 00072981) (pgn 008 @ flash2.cs0.patchblock2)
FAT sector offset e45 (F0 303b, F1 3f40) ( 1900 votes) (representative FAT 00072981) (pgn 009 @ flash2.cs0.patchblock2)
FAT sector offset e4a (F0 3040, F1 3f45) ( 1900 votes) (representative FAT 00072c01) (pgn 00a @ flash2.cs0.patchblock2)
FAT sector offset e4a (F0 3040, F1 3f45) ( 1900 votes) (representative FAT 00072c01) (pgn 00b @ flash2.cs0.patchblock2)
FAT sector offset 005 (F0 21fb, F1 3100) ( 1888 votes) (representative FAT 00000981) (pgn 00c @ flash2.cs0.patchblock2)
FAT sector offset c05 (F0 2dfb, F1 3d00) ( 1900 votes) (representative FAT 00060981) (pgn 00d @ flash2.cs0.patchblock2)
FAT sector offset e55 (F0 304b, F1 3f50) ( 255 votes) (representative FAT 00000000) (pgn 084 @ flash2.cs0.patchblock2)
FAT sector offset e55 (F0 304b, F1 3f50) ( 505 votes) (representative FAT 00000000) (pgn 085 @ flash2.cs0.patchblock2)
FAT sector offset e55 (F0 304b, F1 3f50) ( 1004 votes) (representative FAT 00000000) (pgn 086 @ flash2.cs0.patchblock2)
FAT sector offset e55 (F0 304b, F1 3f50) ( 1212 votes) (representative FAT 00000000) (pgn 087 @ flash2.cs0.patchblock2)
FAT sector offset e55 (F0 304b, F1 3f50) ( 1706 votes) (representative FAT 00073181) (pgn 088 @ flash2.cs0.patchblock2)
FAT sector offset e55 (F0 304b, F1 3f50) ( 1902 votes) (representative FAT 00073181) (pgn 089 @ flash2.cs0.patchblock2)
FAT sector offset e5a (F0 3050, F1 3f55) ( 1815 votes) (representative FAT 00073401) (pgn 08a @ flash2.cs0.patchblock2)
FAT sector offset e5a (F0 3050, F1 3f55) ( 1902 votes) (representative FAT 00073401) (pgn 08b @ flash2.cs0.patchblock2)
FAT sector offset 015 (F0 220b, F1 3110) ( 1892 votes) (representative FAT 00001181) (pgn 08c @ flash2.cs0.patchblock2)
FAT sector offset c15 (F0 2e0b, F1 3d10) ( 1906 votes) (representative FAT 00061181) (pgn 08d @ flash2.cs0.patchblock2)
joshua@nyus:~/flash_fpga/sw$ ./patchsec flash2.cs1.patchblock2 flash2.cs1.patchlist2
FAT sector offset e6a (F0 3060, F1 3f65) ( 664 votes) (representative FAT 00000000) (pgn 002 @ flash2.cs1.patchblock2)
FAT sector offset e6a (F0 3060, F1 3f65) ( 916 votes) (representative FAT 00000000) (pgn 003 @ flash2.cs1.patchblock2)
FAT sector offset e6a (F0 3060, F1 3f65) ( 1415 votes) (representative FAT 00000000) (pgn 004 @ flash2.cs1.patchblock2)
FAT sector offset e6a (F0 3060, F1 3f65) ( 1679 votes) (representative FAT 00073c01) (pgn 005 @ flash2.cs1.patchblock2)
FAT sector offset e6a (F0 3060, F1 3f65) ( 1901 votes) (representative FAT 00073c01) (pgn 006 @ flash2.cs1.patchblock2)
FAT sector offset bea (F0 2de0, F1 3ce5) ( 1906 votes) (representative FAT 0005fc01) (pgn 009 @ flash2.cs1.patchblock2)
FAT sector offset c2a (F0 2e20, F1 3d25) ( 1902 votes) (representative FAT 00061c01) (pgn 00a @ flash2.cs1.patchblock2)
FAT sector offset be5 (F0 2ddb, F1 3ce0) ( 1906 votes) (representative FAT 0005f981) (pgn 00b @ flash2.cs1.patchblock2)
FAT sector offset c25 (F0 2e1b, F1 3d20) ( 1902 votes) (representative FAT 00061981) (pgn 00c @ flash2.cs1.patchblock2)
FAT sector offset e3a (F0 3030, F1 3f35) ( 1900 votes) (representative FAT 00072401) (pgn 07f @ flash2.cs1.patchblock2)
FAT sector offset e7a (F0 3070, F1 3f75) ( 264 votes) (representative FAT 00000000) (pgn 086 @ flash2.cs1.patchblock2)
FAT sector offset bfa (F0 2df0, F1 3cf5) ( 1892 votes) (representative FAT 00060401) (pgn 089 @ flash2.cs1.patchblock2)
FAT sector offset c3a (F0 2e30, F1 3d35) ( 1891 votes) (representative FAT 00062401) (pgn 08a @ flash2.cs1.patchblock2)
FAT sector offset bf5 (F0 2deb, F1 3cf0) ( 1898 votes) (representative FAT 00060181) (pgn 08b @ flash2.cs1.patchblock2)
FAT sector offset c35 (F0 2e2b, F1 3d30) ( 1895 votes) (representative FAT 00062181) (pgn 08c @ flash2.cs1.patchblock2)
That brings me closer. Still having issues:
/DCIM/31020601/DSC02279.ARW
missing 455936? -> BE 0006f500
/DCIM/31020601/DSC02279.ARW
File size is 16515072 bytes, cluster chain length is 7471104 bytes.
Truncating file to 7471104 bytes.
/MP_ROOT/309MNV01/M4H02203.MP4
File size is 484739781 bytes, cluster chain length is > 484769792 bytes.
Truncating file to 484739781 bytes.
but: Reclaimed 137 unused clusters (4489216 bytes).
maybe a bad powerdown?
needs some intoing, I guess
/.fseventsd/fseventsd-uuid, interestingly:
400839
394014
400838
can't do anything about them, since they're so small
Free cluster summary wrong (76729 vs. really 17744)
probably a sector update somewhere, but I don't care enough to find it
looking for: 01 f5 06 00 02 f5
Oh fuck it is not there :<
01 f5 06 00:
joshua@nyus:~/flash_fpga/sw$ ./look-for-it < flash2.cs0.fixed
ad: 200169
ad: 1350941 = 149d1d
ad: 1418227 = 15a3f3
ad: 1439128 = 15f597
joshua@nyus:~/flash_fpga/sw$ ./look-for-it < flash2.cs1.fixed
ad: 1147462 = 118246
ad: 1147501 = 11826d
ad: 1147502 = 11826e
ad: 1395250 = 154a32
ad: 1424184 = 15bb38
118200 could be a misc block:
joshua@nyus:~/flash_fpga/sw$ for i in `seq 0 255`; do dd if=flash2.cs1.fixed bs=8832 skip=$((0x118200+$i)) count=1 2>/dev/null | hd | grep 00002230; done | sort | uniq -c
2 00002230 9a f2 e8 06 fe ca 36 8f 3b a2 1b 5d 27 9c e5 66 |.òè.þÊ6.;¢.]'.åf|
26 00002230 9a f2 e8 08 fe 1f f5 21 0c fa 09 a4 85 af 7b fb |.òè.þ.õ!.ú.¤.¯{û|
4 00002230 9a f2 e8 0c fe bd 1d c3 b4 51 9b 00 97 b6 9d c9 |.òè.þ½.ôQ...¶.É|
2 00002230 9a f2 e8 0e fe 32 ec 1a 89 ab 76 6f ea 49 53 9e |.òè.þ2ì..«voêIS.|
14 00002230 9a f2 e8 7e fe 68 dc 28 3e 12 c0 49 5c 4c 4d 01 |.òè~þhÜ(>.ÀI\LM.|
2 00002230 9a f2 e8 80 fe 45 c1 98 c1 75 2c e2 e0 38 f9 ce |.òè.þEÁ.Áu,âà8ùÎ|
4 00002230 9a f2 e8 82 fe ca 30 41 fc 8f c1 8d 9d c7 37 99 |.òè.þÊ0Aü.Á..Ç7.|
12 00002230 9a f2 e8 84 fe e7 29 7a 79 de be 46 f2 21 1f fc |.òè.þç)zyÞ¾Fò!.ü|
30 00002230 9a f2 e8 86 fe 68 d8 a3 44 24 53 29 8f de d1 ab |.òè.þhØ£D$S).ÞÑ«|
10 00002230 9a f2 ff 08 fe 1f f5 21 0c fa 09 a4 85 af 7b fb |.òÿ.þ.õ!.ú.¤.¯{û|
4 00002230 9a f2 ff 0a fe 90 04 f8 31 00 e4 cb f8 50 b5 ac |.òÿ.þ..ø1.äËøPµ¬|
4 00002230 9a f2 ff 0e fe 32 ec 1a 89 ab 76 6f ea 49 53 9e |.òÿ.þ2ì..«voêIS.|
2 00002230 9a f2 ff 86 fe 68 d8 a3 44 24 53 29 8f de d1 ab |.òÿ.þhØ£D$S).ÞÑ«|
8 00002230 9a f2 ff 88 ff 00 10 5d b0 22 09 aa c4 0b 35 ab |.òÿ.ÿ..]°".ªÄ.5«|
34 00002230 9a ff fe 08 fe 51 29 cb 9e ec 2e e6 d8 9d 8e 0a |.ÿþ.þQ)Ë.ì.æØ...|
2 00002230 9a ff fe 0a fe de d8 12 a3 16 c3 89 a5 62 40 5d |.ÿþ.þÞØ.£.Ã.¥b@]|
2 00002230 9a ff fe 0c fe f3 c1 29 26 47 bc 42 ca 84 68 38 |.ÿþ.þóÁ)&G¼BÊ.h8|
6 00002230 9a ff fe 0e fe 7c 30 f0 1b bd 51 2d b7 7b a6 6f |.ÿþ.þ|0ð.½Q-·{¦o|
2 00002230 9a ff fe 10 ff 58 46 75 48 f7 99 b1 8e e3 55 02 |.ÿþ.ÿXFuH÷.±.ãU.|
2 00002230 9a ff fe 7e fe 26 00 c2 ac 04 e7 0b 01 4c b8 f0 |.ÿþ~þ&.¬.ç..L¸ð|
16 00002230 9a ff fe 7e fe 26 00 c2 ac 04 e7 0b 01 7e b8 f0 |.ÿþ~þ&.¬.ç..~¸ð|
4 00002230 9a ff fe 80 fe 0b 1d 72 53 63 0b a0 bd 0a 0c 3f |.ÿþ.þ..rSc. ½..?|
2 00002230 9a ff fe 82 fe 84 ec ab 6e 99 e6 cf c0 c7 c2 68 |.ÿþ.þ.ì«n.æÏÀÇÂh|
8 00002230 9a ff fe 82 fe 84 ec ab 6e 99 e6 cf c0 f5 c2 68 |.ÿþ.þ.ì«n.æÏÀõÂh|
14 00002230 9a ff fe 84 fe a9 f5 90 eb c8 99 04 af 13 ea 0d |.ÿþ.þ©õ.ëÈ..¯.ê.|
32 00002230 9a ff fe 86 fe 26 04 49 d6 32 74 6b d2 ec 24 5a |.ÿþ.þ&.IÖ2tkÒì$Z|
8 00002230 9a ff fe 88 ff 4e cc b7 22 34 2e e8 99 39 c0 5a |.ÿþ.ÿNÌ·"4.è.9ÀZ|
patchsec indicates it may be...
note that 118200 is in pages-missing-content, too