Flash Extractor
Soft-Center
About     Shop     Downloads     Manual     Library     Forum     Services     Contacts
Bad bytes Editor
I will try explain how it works on example

This method works if we know what layout to use
For this case layout is AU6998 1096 Xor 6771_256

1096 is two sectors by 512 bytes protected by 72 ECC bytes
6771 is Xor type. 256 pages is xor block

All pages in block have same bad bytes positions
But even and odd blocks have different bad bytes positions
So we will need do our work two times. First for even blocks, and after for odd blocks
I think in most cases Xor block will be same with bad bytes block. But can be different
In different dumps bad bytes positions will be different

First add "Cut Bad Bytes" step in mix editor. And select it
Open Bad Bytes Editor



Set in Properties menu Block Size in Pages = 256 and set Enable = on
Open Hex Editor that show sectors after layout is applied
Find place with zeros
Usulay i jump with Block Size from start of dump until i find it (ctrl + page_down)
Check hot keys here: Hex Editor
Or use search function. For example, 00000000/h/0x400000/0



This sector have only zeros in data
But because of one extra byte added at position 0x88, Xor pattern is shifted and data is not unxored. You see it as random bytes

You can see that ECC = Error
We will see ECC = OK, when we remove all bad bytes from sectors protected by ECC (2 x 512)
Page Size is 17664. So, there is 16 pairs of (512x2 + ECC) sectors in one page

At right side of screen you can see raw page
Green bytes is data. Blue bytes is SA (ECC)



Select first wrong byte at left side of screen
It will be automaticaly selected at right side of screen



You can see that there is two bytes with same value
I see two different ways how controller fill bad byte
Some controllers fill it with same value as in our case
Some controllers fill it with FF

You can check that at all pages in block this two bytes have same values
To do it jump with Page size at left side of screen (ctrl + page_down)
Page Size is 17664 = 0x4500, so need set Jump Size = 0x4000

Double click on selected bad byte



You can see that at left side of screen we have more zeros now
And now we have byte byte at position 0x8d
Double click on it to remove

With this method we can clean our two sectors (512 x 2)
If we are lucky and there is no bad bytes in ECC, ECC will be green
0x308000000 (first)
0x308000200 (second)
0x308000400 (first of next pair)
And at first sector of next pair, you will see zeros at start of sector

If we are not lucky, ECC will be Error, and no zeros at next pair,
need search for bytes with same values at ECC area under data area
Last added
Monolith USB_27   98 3a a8 92   1x4 SMI2702BX-2L   2c 84 c1 3c   1x4 IT1181FN-48B   89 84 64 3c   1x1 SM2685BA   ec de d5 7e   1x1 Monolith SD_23   ec de a4 7a   2x4 SM3267L   2c a4 64 32   1x1   Ref IT1168   89 68 04 46   4x4   v2 UT165-L48   2c d5 94 3e   1x1   v2 Monolith USB_27   45 3a 94 93   1x1 KLMAG2GEAC-B002   ec de a4 32   1x2
News
20.04.2018 Sector Number Slow
17.03.2018 Adapter BGA-272
22.02.2018 Bad Bytes Editor
18.10.2017 Power adapter
07.10.2016 Conatiner v9
Other products
Soft-Center ltd.