cfi专题

CFI查询(五)

接着上一篇 1、我们以前说过,CFI闪存芯片还可能提供“主算法扩充查询表”和“次算法扩充查询表”,我们对此尚未进行查询。 回到mtd_do_chip_probe函数的代码中,下面就是对这两个表的补充查询。 struct mtd_info *mtd_do_chip_probe(struct map_info *map, struct chip_probe *cp) { struct mtd_i

CFI查询(四)

读毛德操《嵌入式系统》读书笔记 接着上一篇 1、回到上一篇的cfi_probe_chip函数中 在发出两个命令后,就接连从闪存中读出三次,如果从每个芯片中读出的字节都依次为0x51、0x52和0x59,即“Q”“R”和“Y”,就表示对上号了,这说明在地址base处检测到了闪存芯片,而且确实是4片16位闪存芯片。 这个操作对应的函数是qry_present函数 /* check for Q

CFI查询(三)

1、上一篇通过结构体 static struct chip_probe cfi_chip_probe = { name: "CFI", probe_chip: cfi_probe_chip }; 了解到,主要的查询工作要靠probe_chip: cfi_probe_chip函数完成。 其源码如下: static int cfi_probe_chip(struct map_info *m

CFI查询(二)

1、上一篇说到了genprobe_new_chip函数,这一篇接着 static int genprobe_new_chip(struct map_info *map, struct chip_probe *cp,     struct cfi_private *cfi) { switch (map->buswidth) { #ifdef CFIDEV_BUSWIDTH_1 总线宽度1字节 ca

CFI查询(一)

毛德操《嵌入式系统》读书笔记 1、介绍一些涉及的数据结构: 的mtd_info。 这样,只要抓住一个mtd_part数据结构,就可以找到所属的mtd_info结构,再找到相应的map_info结构,进而cfi_private结构,最后到达cfi_ident结构、cfi_pri_intelext结构,还有flchip结构数组chips[]。 2、 下面我们从sa1100_mtd_in

闪存和CFI

参考:毛德操的《嵌入式系统》和CFI标准协议 1、闪存的特点: 1、不挥发,即在断电是不会失去已经写入的内容。 2、随机可读,就像RAM和ROM一样,可以从任意地址读出,读出的速度与地址无关。 3、对于已经写入的内容可以成片擦除,不过只能成片地擦除,而不能随机擦除,并且必须遵循一定的步骤。 4、对于空白,或已经擦除内容的区间可以按一定规则随机写入,但是一经写入,便不能向相同的地址再写入,

基于二级片内硬件堆栈的后向CFI 验证方法研究,第三章

随着计算机技术的发展,针对计算机系统的恶意攻击越来越多,造成了巨大的经济损失。面向返回导向编程等恶意攻击方式通过修改堆栈中程序返回地址劫持控制流,达到恶意攻击的目的。后向控制流完整性即返回地址的完整性验证,是一种保护函数返回地址的有效手段。 本文提出了一种基于二级硬件堆栈的后向程序控制流完整性验证方法,并在国产玄铁E906 RISC-V处理器中进行了实现和分析。基于现有针对返回地址的攻击方式和后向

spider小案例~https://industry.cfi.cn/BCA0A4127A4128A4141.html

一、获取列表页信息         通过抓包发现列表页信息非正常返回,列表信息如下图: 通过观察发现列表页信息是通过unes函数进行处理的,我们接下来去看下该函数 该函数是对列表页的信息先全局替换"~"为"%u",然后再通过unescape函数对替换后的字符串进行解码,到此我们就可以获取到列表页的信息了,我们用Python来还原一下 import refrom urllib.parse

痞子衡嵌入式:并行NOR接口标准(CFI-JESD68)及SLC Parallel NOR简介

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是CFI标准及SLC Parallel NOR。   NOR Flash是嵌入式世界里最常见的存储器,常常内嵌在微控制器里(Parallel型)或外置作为内存扩展(Serial型),作为代码存储器。对于嵌入式开发而言,NOR主要分为两大类:Serial NOR、Parallel NOR,最早出现的NOR是Parallel NOR