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文件是成果,苦逼的研究http://www.diybcq.com/static/image/smiley/default/dizzy.gif LZ 技术菜,受到软件和硬件限制,只能发个简单的 成果,
该软件是USB 直接读取,并非 串口 读数据,所以速度上还可以, 之前用stc 单片机研究过nandflash 的读取(串口的), 那速度,128M 要读1 两天还得开高波特率。。。。。
相关文章提到 该软件有C++ 写的版本,但是没搞懂怎么用,LZ C++ 要学的好一点http://bbs.mydigit.cn/images/post/smile/my1/glad.gif ,然并卵
LZ 测试了下,把一个16M 的U盘(里边有文件的)(这U盘是大学时的 妹子到电脑城买的,发现有问题,给我修了修,结果是扩容盘http://bbs.mydigit.cn/images/post/smile/my1/laugh.gif,就给我了)
用 软件 读出,然后 擦除, 在写回到NandFlash 里,插上U盘,发现里边的文件还在, 没有重新量产
好吧更多的,让网友们研究把
1、 安装python 为了方便文件夹中提供两个版本,其他版本,也许也可以 2、 安装FT2232 驱动 CDM v2.12.00WHQL Certified.exe3、 安装 pyftdipyusbsix 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、该软件是国外开源软件,深入研究可自行googlehttp://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 驱动,pythonlinux一般都有吧,也不用装了,但是版本支持问题,该装还得装 2、在Windows 上用,目前我测试到的问题是: 如果使用 命令行运行(直接运行), 并执行写入操作,软件不能稳定运行,然后就蹦了,异常了;如果用DEBUG 模式运行,目前没发现问题
DEBUG 模式运行:就不会蹦和直接运行比较 速度上有明显区别 DEBUG 模式 要慢很多, 直接运行要快但是 软件会挂掉(linux下速度和DEBUG 差不多,不会挂) 原因未知 懂python 的 可在挂掉的地方 加上 try 能够不挂
8、Nand的一些特性 会和 软件使用 有关系: 比如:写数据前,要先擦除Flash(该软件设计上,有坏块检测) 具体的:自行研究9、所有 根版本有关的:不绝对 依赖于文件夹中提供的版本 10、支持原作者、支持开源:请勿用于商业用途,否则一切后果于本人无关
折腾的过程就是学习;P 厉害,支持支持。。 支持支持 值得学习 学习学习学习 看不懂纯支持了 非常感谢楼主的分享!谢谢! 试了好多次,都没成功,请教楼主了。
直接运行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&2==0x2:
IndexError: array index out of range 运行python dumpflash.py -i 结果是:Device not ready, aborting...
完全照着你的教程做的 折腾的过程就是学习