DIY编程器网

标题: NANDReader(用ft2232h做的nand读取器)研究了一番 发发成果 [打印本页]

作者: fangyushuma    时间: 2016-9-21 15:14
标题: NANDReader(用ft2232h做的nand读取器)研究了一番 发发成果
本帖最后由 fangyushuma 于 2016-9-23 01:56 编辑

http://www.diybcq.com/ 首发:      从这里发现的就先发这里了;之前搜索到坛主 发的 NANDReader(用ft2232h做的nand读取器) 相关帖子 ,研究了一番 有部分截图 就不贴到帖子上了 ,
首先这是一个 编程器 : 到底能干嘛 请看如何逆向嵌入式设备的NAND Flash》一文http://www.wtoutiao.com/p/120zlN4.html
应用举例: 路由器、 U盘 等采用nandflash 芯片存储数据的设备 ,需要重写数据
像这位网友就使用单片机自己写程序修复了路由器:http://www.right.com.cn/forum/thread-158635-1-1.html
当然,由于Nandflash 的特性: 实际 并非如此 容易, 最麻烦的是 Nandflash ECC 校验问题


之前搜索到该坛坛主 发的 《NANDReader(用ft2232h做的nand读取器)》系列 相关帖子 ,
研究了一番 有部分截图 就不贴到帖子上了,文件里有 ,感兴趣的点这里 http://pan.baidu.com/s/1nuT86YP   
FT2232 NandFlash 编程器.rar  文件是成果,苦逼的研究     LZ 技术菜,受到软件和硬件限制,只能发个简单的 成果,
该软件是USB 直接读取,并非 串口 读数据,所以速度上还可以, 之前用stc 单片机研究过nandflash 的读取(串口的), 那速度,128M 要读1 两天还得开高波特率。。。。。
相关文章提到 该软件有C++ 写的版本,但是没搞懂怎么用,  LZ C++ 要学的好一点 ,然并卵
LZ 测试了下,把一个16M 的U盘(里边有文件的)(这U盘是大学时的 妹子到电脑城买的,发现有问题,给我修了修,结果是扩容盘,就给我了)
用 软件 读出,然后 擦除, 在写回到NandFlash 里,  插上U盘,发现里边的文件还在, 没有重新量产
好吧更多的,让网友们研究把




1 安装python   为了方便文件夹中提供两个版本,其他版本,也许也可以
2 安装FT2232 驱动 CDM v2.12.00WHQL Certified.exe
3 安装 pyftdi  pyusb  six 3个库: 解压后在命令行中 执行 setup.py install
   pyftdi pyusb 文件夹中都提供了两个版本,任意选择一个版本安装
4 运行 zadig_2.2.exe FT2232驱动更新为  libusbK (v3.0.7.0)驱动: Options - list all devices 可显示所有设备(我的已经安装了,所以是Upgrade Driver 且版本是3.0.6.0
成功后设备管理其中应该 libusbK USB Devices 设备(我的是USB <-> Serial Converter(Interface 0)

5 、使用: 运行 DumpFlash.py -h  自行查看帮助选项 以及 文件夹中其他文档;我也没摸透
比如DumpFlash.py -i 可查看 NandFlash芯片 信息
                 DumpFlash.py -r read.bin 可读取整个Flash 数据到read.bin文件
                 DumpFlash.py -w data.bin 可将data.bin文件 写入到Flash

6、该软件是国外开源软件,深入研究可自行google
http://spritesmods.com/?art=ftdinand&page=2开源项目
https://github.com/ohjeongwook/DumpFlash软件
http://www.wtoutiao.com/p/120zlN4.html这篇是翻译文档,可以了解下
https://community.hpe.com/t5/Security-Research/Reverse-Engineering-NAND-Flash-Memory-POS-device-case-study-part/ba-p/6581528#.V-IuuPmPUfF

7、我遇到的一些问题: 该软件,感觉并不成熟,
       1、该软件是可以在linux 下运行的,我使用的是Rea Hat 7
linux 好像不需要安装ibusbK 驱动,python  linux一般都有吧,也不用装了,但是版本支持问题,该装还得装
       2、在Windows 上用,目前我测试到的问题是:
如果使用 命令行运行(直接运行), 并执行写入操作,软件不能稳定运行,然后就蹦了,异常了;如果用DEBUG 模式运行,目前没发现问题

       DEBUG 模式运行:就不会蹦  和直接运行比较      速度上有明显区别 DEBUG 模式 要慢很多, 直接运行要快但是 软件会挂掉(linux下速度和DEBUG 差不多,不会挂) 原因未知 python 可在挂掉的地方 加上 try 能够不挂

8Nand的一些特性 会和 软件使用 有关系:
比如:写数据前,要先擦除Flash(该软件设计上,有坏块检测)
   具体的:自行研究
9、所有 根版本有关的:不绝对 依赖于文件夹中提供的版本
10、支持原作者、支持开源:请勿用于商业用途,否则一切后果于本人无关









作者: liyf    时间: 2016-9-21 17:15
折腾的过程就是学习
作者: uuuxxx    时间: 2016-9-22 18:55
厉害,支持支持。。
作者: czc    时间: 2016-9-24 14:48
支持支持 值得学习
作者: iopjklbnm    时间: 2016-9-27 16:20
学习学习学习
作者: cctv180    时间: 2016-9-29 00:58
看不懂纯支持了
作者: lzqblt    时间: 2016-10-25 09:48
非常感谢楼主的分享!谢谢!
作者: fnto    时间: 2017-8-21 14:21
试了好多次,都没成功,请教楼主了。
直接运行dumpflash.py -i,结果是:
PS C:\Python27\DumpFlash> .\DumpFlash.py -i
Traceback (most recent call last):
  File "C:\Python27\DumpFlash\DumpFlash.py", line 65, in <module>
    flash_util=FlashUtil(options.filename,options.page_size, options.oob_size, options.pages_per_block,options.slow)
  File "C:\Python27\DumpFlash\FlashUtil.py", line 18, in __init__
    self.io = NandIO(slow)
  File "C:\Python27\DumpFlash\FlashDevice.py", line 160, in __init__
    self.WaitReady()
  File "C:\Python27\DumpFlash\FlashDevice.py", line 173, in WaitReady
    if data[0]&2==0x2:
IndexError: array index out of range
作者: fnto    时间: 2017-8-21 14:23
运行python dumpflash.py -i 结果是evice not ready, aborting...

完全照着你的教程做的
作者: dna-jm    时间: 2017-10-18 23:59
折腾的过程就是学习
作者: zjs423315    时间: 2017-11-28 20:03
看不懂,小白路过
作者: jy11    时间: 2017-11-30 17:00
努力挣钱努力挣钱努力挣钱努力挣钱努力挣钱
作者: jy11    时间: 2017-11-30 17:12
努力挣钱努力挣钱努力挣钱努力挣钱努力挣钱努力挣钱努力挣钱努力挣钱努力挣钱努力挣钱
作者: jy11    时间: 2017-11-30 17:16
努力挣钱努力挣钱努力挣钱努力挣钱努力挣钱
作者: yaoyuanzy    时间: 2018-4-27 09:44
fnto 发表于 2017-8-21 14:21
试了好多次,都没成功,请教楼主了。
直接运行dumpflash.py -i,结果是:
PS C:\Python27\DumpFlash> .\Du ...

哥们最后你解决了吗 我也是困在这块了,python不是太明白查不到这个错误改怎么改。
作者: yaoyuanzy    时间: 2018-4-27 09:46
楼主我也一样按照你的教程来的,最后核楼下一样困在python错误了,蛋疼求教
d:\dump>python DumpFlash.py -i
Traceback (most recent call last):
  File "DumpFlash.py", line 65, in <module>
    flash_util=FlashUtil(options.filename,options.page_size, options.oob_size, options.pages_per_block,options.slow)
  File "d:\dump\FlashUtil.py", line 18, in __init__
    self.io = NandIO(slow)
  File "d:\dump\FlashDevice.py", line 160, in __init__
    self.WaitReady()
  File "d:\dump\FlashDevice.py", line 173, in WaitReady
    if data[0]&2==0x2:
IndexError: array index out of range
作者: qiner1984    时间: 2018-6-16 00:04
正需要nand编程器
作者: ackye    时间: 2018-7-13 14:53
FT2232的USB功能还是很强大的可以直接把算法层面都丢给PC去设计
作者: ackye    时间: 2018-7-13 14:55
还有一个nandflash的坏块问题 一般nandflash都会坏块,这个对编程器其实很有挑战   因为nandflash出厂时候会自动绕过坏块
作者: ackye    时间: 2018-7-13 15:29
前阵子拆的一个  编程器里用的是  FT232+CPLD的构架,809  不过IO口电平不兼容多种电平,也不是全管脚的
作者: muelfox    时间: 2018-8-12 23:45
学习一下,谢谢楼主
作者: 9999jim    时间: 2018-10-6 11:32
学习一下,谢谢楼主
作者: gsm123    时间: 2019-3-27 18:14

为了赚银子只能回50次同样的帖子了,先谢楼主啦!
作者: bocomo    时间: 2019-4-17 11:17
好帖必须顶
作者: bocomo    时间: 2019-4-17 11:47
目测论坛最强的贴就是你了
作者: wyn20007    时间: 2019-5-2 14:42
支持支持 值得
作者: kgdyinpv    时间: 2020-3-25 23:08
厉害了1111
作者: kgdyinpv    时间: 2020-3-26 09:21
折腾的过程就是学习

作者: saiyifu    时间: 2020-4-23 14:27
折腾人啊。。。这东西
作者: maithon    时间: 2020-4-23 18:46
最近也在折腾NAND,发现这个跟openocd 开源项目有点类似。
作者: whmph    时间: 2022-1-26 18:07
天外有天 山外有山  都是高手
作者: 1986a    时间: 2022-6-8 16:43
厉害,支持支持。。




欢迎光临 DIY编程器网 (http://www.diybcq.com/) Powered by Discuz! X3.2