u盘数据恢复的原理_U盘数据恢复技术

本文详细介绍了U盘的基础知识,包括主控型号、Flash存储芯片类型、芯片型号及编号规则,以及Flash的逻辑结构,如页和块的概念。讨论了Flash芯片ID、ECC校验的重要性以及数据存储算法,如块间页交换、通道间页交换等。此外,还涉及数据恢复过程中的FE闪存颗粒读取、手动分析和自动分析方法,以及常见主控的分析讲解。
摘要由CSDN通过智能技术生成

U盘技术

一、U盘基础知识

1、物理结构:

563b841b165c8f34495e92d7f36ca662.png

2、主控型号的识别:

(1)SM(慧荣)

74535294917f723b25f4a35098736fb2.png

(2)PS(群联)

4dc92a337f13c8defb9c1936e31d81e4.png

(3)CBM(芯邦)

2da81612c816244ce730661b5c6badb3.png

(4)AU(安国)

cfd7c31efc1d49f20cebf782fe4b1dd5.png

(5)UT(联盛)

a44c435743f9c9a727467a71b7ebf1aa.png

(6)其它:ITE(联阳)、SK(擎泰)、SSS(鑫创)、iCreate(我想)、ALC(安国群胜)等

3、Flash存储芯片的分类

按照存储的技术的不同,可以将Flash芯片分为SLC、MLC、TLC。

(1)SLC英文全称(Single Level Cell——SLC)即单层式储存 ,原理是在1个存储器储存单元(cell)中存放1位元(bit)的资料。

(2)MLC英文全称(Multi Level Cell——MLC)即多层式储存,原理是在1个存储器储存单元(cell)中存放2位元(bit)的资料。

(3)TLC英文全称(Triple Level Cell ——TLC)即三层式储存,原理是在1个存储器储存单元(cell)中存放3位元(bit)的资料。

SLC、MLC、TLC闪存芯片的区别:

b2dbac33902a29d4912e1852ef9f79db.png

注:闪存的寿命指的是写入(擦写)的次数,不是读出的次数,因为读取对芯片的寿命影响不大。

4、Flash芯片的型号:

由此可以识别出芯片所属的厂家、规格、容量以及制程分类等信息。以NAND Flash芯片为例,TOSHIBA的芯片型号一般以TC58或TH58开头;Samsung的芯片型号一般以K9F开头;Hynix的芯片型号一般以HY开头;Micron的芯片型号一般以MT29F开头;Intel公司现已收购了Micron,其芯片型号一般以I29F开头;SanDisk的芯片型号一般以SDTNL开头。

以Samsung公司的NAND Flash芯片型号为例,其命名规则如下:

K 9 X X X X X X X X

1 2 3 4 5 6 7 8 9 10

组成部分编号

组成部分含义

组成部分值

1

表示 Memory

K

2

表示NAND Flash

9

3

表示芯片所属分类

A:SLC + Muxed I/F Chip

B:Muxed I/F Chip

F:SLC Normal

G:MLC Normal

4-5

表示芯片容量

1G:1G

2G:2G

4G:4G

8G:8G

AG:16G

BG:32G

CG:64

DG:128G

6-7

表示芯片的规格

08:x8

16:x16

8

表示电源VC

A:1.65V-3.6V

B:2.7V(2.5V-2.9V)

C:5.0V(4.5-5.5V)

D:2.65V(2.4V-2.9V)

E:2.3V-3.6V

R:1.8V(1.65V-1.95V)

Q:1.8V(1.7V-1.95V)

T:2.4V-3.0V

U:2.7V-3.6V

V:3.3V(3.0V-3.6V)

W:2.7V-5.5V;3.0V-5.5V

9

表示模式

0:Normal

10

表示第几代

M:1st Generation

A:2nd Generation

B:3rd Generation

C:4th Generation

D:5th Generation

例如:K9GAG08U0M:表示Memory NAND Flash MLC Normal 16G x8 2.7V-3.6V Normal 1st Generation MCL 存储芯片 容量16G 带宽8 供电2.7V-3.6V 普通模式第一代。

5、Flash芯片ID

Flash芯片ID是由芯片生产厂家设定的4个字节的16进制编码。芯片ID第1个字节表示其厂家信息:

8ef03bde79469e1bb5d20ad3333beb77.png

6、Flash芯片编号规则:

(1)U盘

c1ad5dc3f0fb7bf22fbd4b12e91ff402.png

(2)CF卡

d6765403e289ee03253e89246fe7aecf.png

(3)SSD

249c356a8d56d551230d0fc300822dd3.png

7、逻辑结构

(1)存取单位:

和硬盘以扇区为最小存取单位不同,Flash存储芯片的操作单位是页和块,其擦除是以块为单位,而写入是在为空或已擦除的块中以页为单位进行的

(2)Flash 存储芯片的组织结构

就像硬盘中的盘片会划分成不同的磁道、扇区、柱面一样,Flash存储芯片也可以进一步划分为通道、总线宽度、页和块。

①通道:

Flash存储芯片由于材质、设计等原因限制,单个芯片的容量不可能达到很大,为了增加容量,提高读写速度,生产厂商将多个晶圆封装在一个芯片内,其中的晶圆个数即为通道个数。例如:一个U盘包含2个Flash芯片,而每个Flash芯片中封装4个晶圆,则该U盘的通道个数为8。

②总线宽度:

一个晶圆可能由上亿个晶体管组成,这些晶体管就是Flash存储芯片的最小存储单元,每个晶体管可以存储1bit数据。和硬盘一样,存储在Flash存储芯片中的数据也是用0和1表示。最小存储单元以8位(byte,字节,x8器件)或16位(word,字,x16器件)为单位组成总线宽度(位线 bit line),具体是8位还是16位,由Flash存储芯片的规格决定。

③页:

因为在NAND Flash中,数据是以bit的方式保存在存储单元中,一个存储单元只能保存一个bit。而这些存储单元以8个或16个为单位,连成bit line,形成所谓的byte(x8)/word(x16)。这就是NAND Flash器件的总线宽度。这些总线宽度再根据一定的规则组成页。

页是NANDFlash器件中的最小读写单位,就类似于硬盘中的扇区,但和硬盘扇区容量为512 byte的倍数不同,页的大小通常为528 byte的倍数,即512+16。其中512 byte为数据存储区,16 byte为服务区,用于管理页中的校验信息、ID号、标记值等。其实硬盘也有服务区,只是硬盘的服务区存储于硬盘的负磁道中。

Flash存储芯片中页的大小一般为528字节的倍数,即(512+16)字节,其中512字节为数据区(DATA),用于存放写入的数据,16字节为服务区(SA),用于管理数据区中的数据,每528字节称之为一个扇区,以2112字节大小的页为例,其共包含4个大小为528字节的扇区。

Dump>块>页>扇区(DATA+SA+ECC)

硬盘数>块>簇>扇区

不同的Flash存储芯片,其页结构可能各不相同,大致可以分为以下几种情况:

a、服务区平均分布在扇区。

以页大小为2112字节的页为例,假定当前页无页头页尾,其数据存储结构为每个扇区中存储512字节数据后再加上16字节的服务区,这样的扇区可以有4个。

a9dcff95a5b0c1728614514d7630ebd6.png

(1024+x)x4

b、服务区集中在页尾。

服务区集中放置在页尾的结构即在一个页中将所有的数据放在前面,而将所有的服务信息放在最后面。如果一个页为2112字节,则先存储4份512字节的数据,再在页尾存储4份16字节的服务信息。

b9901b0254f63bba9ab63dd020b8d59a.png

c、有页头页尾的结构。

前面两种页结构中,每页都没有页头页尾,在Flash存储芯片中还有一种有页头页尾的页结构,即每页中除数据区和服务区外,还有页头和页尾区域,页头页尾均为存储服务信息的区域。这类结构也包括有页头页尾服务区平均分布和有页头页尾服务区集中在页后两种情况。

7210fd40ae8d66e7cc19ec360dd35876.png

④块:

块是NAND Flash器件中的最小擦除单位,由多个页组成。每个块的擦除时间几乎相同,所以NAND Flash器件的块容量将决定擦除的性能。大容量NAND Flash的页容量提高,而每个块的页数量也有所提高,对于单页容量为528 byte的小容量的Flash 器件,每个块包含32个页,即16KB,而单页容量为2112 byte的大容量Flash器件,每个块包含64个页,即128KB,可以看出,在相同时间之内,后者的擦除速度为前者的8倍。

典型的NAND Flash组织结构如下图所示:

4f159cde354bb5987558c5c691425f8f.png

8、ECC校验:

(DATA+SA) ECC用来校验前面的(DATA+SA)

ECC(Error Checking and Correction,数据检查和修复)检验,它是一种用于NAND的差错检测和修正算法,具有修复和检测功能。因为如果NAND Flash的操作时序和电路稳定性不存在问题的话,NAND Flash 出错的时候一般不会造成整个块或是页不能读取或全部出错,而是整个页(例如512字节)中只有一位或几位出错,而ECC能纠正1个比特错误和检测2个比特错误,而且计算速度很快,但对1比特以上的错误无法纠正,对2比特以上的错误不保证能检测。

9、数据存储算法:

在Flash芯片中写入数据时,采用了相应的交换算法,即数据存储时在通道、块、页间进行了相应的交换写入,这样的设计提高了写入速度。在进行数据恢复时要读取正确的数据,也需要采用相应的逆交换算法,才能还原出正确的数据。

(1)块间页交换:

块间页交换是一种相对简单的数据存储算法,采用这种算法的数据写入速度很快,其操作顺序如图所示,即在两个块之间交替写入,首先从0块的0页写入,再写入1块的0页,之后返回0块的1页进行写入,再跳转到1块的1页写入,以此类推进行循环。因为写入以页为单位进行写入,在双通道芯片中同时在两个块中进行写入,大大提高写入速度。

4c62a5f2dd6710fc95fd587509a8c3c4.png

1 2 3 4 5 6

Dump 0 1 ……..

0块 0页 1 块 0页

1 2

1页 1页

3 4

(2)通道(dump )间页交换:

通道间页交换算法即在两个通道或两个芯片间进行并行的交替写入操作。和RAID 0的结构类似。其操作顺序如图所示,首先从0通道的0页写入,再写入1通道的0页,之后返回0通道的1页进行写入,再跳转到1通道的1页写入,以此类推进行循环。

f9dabdd26a3f92cefa2e2d26411c54ac.png

(3)通道间块交换:

通道间块交换算法即以块为单位进行交替写入操作,这种算法一般用于擦除操作,因为擦除是以块为单位进行的。其操作顺序如图所示,先在0通道中对0块进行操作,再转到1通道对其中的0块进行操作,接着转回0通道对1块进行操作,以此类推。

0140e0479c9bccba72e06cb0a9fab7f0.png

(4)通道间块间页交换:

通道间块间页交换算法是块间页交换和通道间块交换进行复合交替操作,速度很快,操作示意如图所示。首先在0通道0块的0页中进行操作,完成后转到0通道1块的0页进行操作,再转到1通道0块的0页进行操作,再转到1通道1块的0页进行操作,之后返回0通道0块的1页进行操作,以此类推。

e250182077d1687ccf05fea550530706.png

字节交换

FE数据恢复

Dump0 dump1

FLH3 0 AS 00

0页 0页

FLASH3000

F E数据

Boot

二、FE闪存颗粒读取

1、芯片的放置

(1)芯片:U盘芯片左上角有点的为1脚,如果芯片对角都有点,一般小的为1脚。

f062538d9af4808ecb9e03d030518801.png

(2)FE座子:标记 pin_1的对应芯片的第1脚。

b0f6eee0e1d3d758c5336919d54a205a.png

将芯片的第1脚对应FE座子上的pin_1放入。

三、FE手动分析讲解

Ctrl + Page Up 向上查找

Ctrl + Page Down 向下查找

Ctrl + 光标上键↑ 块大小调大

Ctrl + 光标下键 ↓ 块大小调小

55aa/h/512/510

574c21326bd0c3473810dab02b04fd0b.png

0 1 3

( MBR DBR FAT1 ) FAT2(1) (2)ROOT

55aa f8ffff FAT最后一条记录

四、FE自动分析讲解

五、PC3000 FLASH闪存颗粒读取

六、PC3000 FLASH 分析的常用操作

分析流程:

1、 拆芯片读取

2、 查看是否有坏字节

3、 ECC修复(有的要先做XOR后再做ECC)

4、 判断有没有XOR

5、 判断有没有分离结合

6、 选择算法

七、常见主控分析讲解

1、创建图形

2、以位图方式查看有无坏字节

3、坏字节的处理

DP ——> 033 剪切坏字节

CTRL+鼠标左键双击

4、ECC修复BIT错误

5、分析页结构:

DATA :用于存放用户数据

SA:服务信息,管理用户数据

ECC:校验DATA与SA是否正确,用于修复DATA与SA中的BIT错误

最终分离出DATA和SA

常见的页结构:

(1)(DATA+SA+ECC)x 8(16)

(2)(DATA+ECC)x 8(16)+SA

(3)(DATA+SA+ECC)+(DATA1+SA1+ECC1)x 7(15)

DATA大小一般为512,

        1024,

        2048

   1024+106 1024+106 1130x8+27

6、查看有无XOR

去除XOR DP——》023

有XOR的,会自动把页结构编辑出来

7、查看有无分离结合操作

DP——》014

RAW

8、编译

DA

程序自带的编译

手动编译

八、一体U盘技术讲解

1、使用玻璃纤维扫笔打磨

9cdb0743926a5d33c17166733963336d.png

玻璃纤维

919c55b871fcd216868f8df078778566.png

玻璃纤维扫笔打磨后

2、按引脚定义飞线

a68631d22cc35aa6581a42163aaa9fb7.png

3、芯片的读取

55aee9ba91d5dab8ea57251e9d1263d4.png

4、分析

1130(1024+106),1130,1130

(1024+106)x8+27

C卡 SM2236 分析流程

1、ECC修复(通过ECC修复我们可以得到卡的页结构)

2、选择页结构一致的XOR(注:不要使用3K自带的页结构)

3、手动编辑页结构(服务大小用8字节)

4、通过分析服务区调整芯片顺序

5、做026操作 (根据每组里的芯片数量,选择相应的数值)

6、再做一次页编辑

7、做014操作

8、做006操作

9、选择SM2236编译

0x07FF

2、运行程序,并创建一个任务

3、识别芯片ID

4、读取芯片

二、分析数据

1、创建图形

2、查看有无坏字节

3、处理坏字节 DP (033)

4、通过ECC修复DATA+SA的数据

5、查看有无异或XOR

(1)通过查看图形判断

(2)通过RAW扫描

6、根据页结构选择适合的异或KEY DP 023

分析页结构

7、编辑页(如果有XOR,会自动执行此步骤)

8、分析有无分离、结合操作(块间的页交换运算)

(1)通过RAW扫描,只有小文件是好的,大文件都是坏的

(2)通过FAT分析

9、选择编译方式

10、验证数据,如果有问题,分析服务区并再次编译

MASK值:

没有变化的为0

变的最大值为MASK

07FF

0,3,7,C,E,F

7CFC

PC3000 FLash

一、读取芯片:

1、拆芯片并放到座子上

2、创建日志

3、读取芯片ID

4、读取芯片

二、分析芯片

1、创建图形

2、查看芯片

(1)查看有无坏字节

(2)有没有异或运算(XOR)

三、处理坏字节(有坏字节的情况下做此操作)

DP——》033

坏字节的大小有1个和2个 FE只能处理2个的坏字节

Ctrl+左键双击

四、分析页结构

芯片读出来的文件DMP

Dump----》块---》页----》扇区

HDD 扇区512

CHIP扇区528(512(DATA)+16(SA))

数据区(DATA)512、1024、2048、4096

常见的页结构

1、分布均等 512 1024

(1)(DATA+SA+ECC)x 8(x16)

(2)(DATA+ECC)x 8(x16)+SA SM主控

(3)SA+(DATA+ECC)x 8(x16) SANDISK

2、非均等

(1)(DATA+SA+ECC)+(DATA+ECC)x 7(x15)

(2)(DATA+ECC)x 7(x15)+(DATA+SA+ECC)

(3)(DATA+SA+ECC)+(DATA+ECC)x 6(x14)+(DATA+SA+ECC)

(1024+106)x 8+27

五、选择适合的XOR

DP—》023

当符合的页结构XOR较多时用

DI—》010

DATA 1024

DATA ECC 图形一样,无法直接判断ECC大小,可通过分析来确定大小

六、页编辑:(如果有XOR,会自动编辑)

把DATA、SA、ECC划分出来,将无用的ECC去除,并把SA分配到每个扇区

读取出来的文件数据是打乱,最终我们要使用SA将这些数据排列

七、去除分离结合(有分离结合时做此操作)

(1)使用RAW,查看有无1M文件好的

(2)通过FAT表判断

(3)通过SA值判断

DP--->005 分离

DP--->006 结合

DP---》014 是005与006的结合操作

八、选择编译方式

当RAW有大文件完好后做此操作

D A

九、如果编译后数据不对,分析服务区数据SA

DUMP 块 页

分析的目的是使块内的页连续,再使块连续

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值