Nowadays flash controllers use scrambling algorithms when recording data to NAND chip. This process converts user data to noise (simple encryption). When chip-off technique of data recovery is used, it’s necessary to convert noise back to the data (decryption). The XOR key (scrambling pattern) is not unique and depends on the controller model. Xor key is like “masterkey” for decryption. Sometimes same controllers use a number of different keys and different controllers can use the same key. One of the main problem lies in choosing the right Xor key, which must be used in a particular task. Typically, the physical image (dump of NAND) contains lot of fragments of the Xor key, because when key scrambled with zeros during data recording process, the dump contains pure key fragments or even whole key [Key + 00 = Key]. The unique method of XOR key identification, that used in Visual Nand Reconstructor, consists in finding and visual recognition of the key fragments in dump, using Bitmap viewer mode (since user’s data contain a lot of zeros, there are many key fragments in dump). Below are XOR key patterns of most popular controllers. Using this Xor key library it’s possible to find and choose the right key to particular case even if controller is unknown or monolithic (microSD, etc). This list of XOR Keys is periodically updated.
AU6990 / ITE1171 / PS3016-P7-T /
FC8708-C / PS2251-33BA / ITE1167BFN-46A /
IT1165E-48B / PS2251-33BB-E
Pattern (XOR key) period: 128/256/258 pages
Page size: 8kb
Visually looks like diagonals.
Controller generates one page of pattern for first page in block, then cyclically shift it -1 byte (-8 bits) for next pages in block. Pattern xored with Data area of page only.
EN2683BBA / SM2683
Pattern (XOR key) period: 64 pages
Page size: 4/8kb
Visually looks like vertical patterns.
Controller generates 64 pages of pattern, then cyclically xor it with groups of 64 pages. Pattern xored with Data area of page only.
EN2683 / SM3257EN-AA
Pattern (XOR key) period: 64 pages
Page size: 4/8kb
Visually looks like vertical patterns.
Controller generates 64 pages of pattern, then cyclically xor it with groups of 64 pages. Pattern xored with Data area of page only.
PS2251-67-5 / PS2251-61-5 / PS8030 /
PS2251-03-V / PS2251-01-L / PS2251-02-Q
Pattern (XOR key) period: 128/256 pages
Page size: 8kb
Visually looks like noisy diagonal patterns.
Controller generates 128/256 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area of page only.
Pattern (XOR key) period: 256 pages
Page size: 8kb
Visually looks like cubical patterns.
Controller generates 256 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area of page only.
PS2251-50-F / PS2251-P / PS2251-50-5 /
PS3105 / PS2251-39-E
Pattern (XOR key) period: 128/256 pages
Page size: 4/8kb
Visually looks like diagonals.
Controller generates one page of pattern for first page in block, then cyclically shift it -1 byte (-8 bits) for next pages in block. Pattern xored with Data area of page only.
SM3257EN Q AA
Pattern (XOR key) period: 256 pages
Page size: 8/16kb
Visually looks like noisy vertical patterns.
Controller generates 256 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area of page only.
Pattern (XOR key) period: 32 pages
Page size: 8kb
Visually looks like vertical patterns.
Controller generates 32 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area of page only.
SM3257
Pattern (XOR key) period: 258 pages
Page size: 8kb
Visually looks like noisy vertical patterns.
Controller generates 258 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area of page only.
SM3255 / SM3255Q AB
Pattern (XOR key) period: 64/128 pages
Page size: 4/8kb
Visually looks like vertical patterns.
Controller generates 64/128 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area of page only.
IS902
Pattern (XOR key) period: 128 pages
Page size: 8k
Visually looks like vertical patterns.
Controller generates 128 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area only.
IS903
Pattern (XOR key) period: 128 pages
Page size: 8832b/9216b (8192b + 640b/1024b SA)
Visually looks like vertical patterns with distinctive triangles.
Controller generates 128 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area and Spare area.
IS916
Pattern (XOR key) period: 256 pages
Page size: 8640b (8192b + 448b SA)
Visually looks like vertical patterns with distinctive triangles.
Controller generates 256 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area and Spare area.
EN3257LTQAB
Pattern (XOR key) period: 192 pages
Page size: 8kb
Visually looks like noise, no distinctive patterns.
Controller generates 192 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area of page only.
JMF616
Pattern (XOR key) period: 1 page
Page size: 8kb
Visually looks like straight vertical lines.
Controller generates 1 pages of pattern, then cyclically xor it with all pages and blocks. Pattern xored with Data area of page only.
AU GLUED (ALCOR MICRO)
Pattern (XOR key) period: 256 pages
Page size: 8kb
Visually looks like vertical patterns.
Controller generates 256 pages of pattern, then cyclically xor it with blocks. Pattern xored with Data area of page only.
Browser mode - XOR analyser
Patterns of XOR keys can be also inspected through XOR analyser. This tool have special "Browser mode" which allows to check pattern of all available XOR keys.
To run it, open XOR analyser and tick "XOR key browser mode".
Now it is possible to select XOR key from the menu on the right site and check its pattern.