CW521弹道凝胶通信库

ballisticgel的Python项目详细描述


ChipSHOUTER®CW521防弹凝胶

CW521是电磁故障注入(EMFI)目标。它是专门为帮助您理解给定提示的故障注入模式而设计的。在

它使用一个大的SRAM芯片作为目标,布局相对简单。这可以让你知道你在腐蚀多少芯片。在

GIT布局

GIT存储库包含以下内容:

  1. PCB gerber文件(TODO)
  2. 微控制器固件。在
  3. Python库/PC应用程序。在

PC应用程序

PC应用程序是使用Python库的一个简单示例。此应用程序执行以下操作(通过库)

  1. 将模式下载到SRAM芯片。在
  2. 等待故障注入。在
  3. 上载SRAM芯片内容并确定损坏位置。在
  4. 物理SRAM位置图(注:尚未完全工作)。在

SRAM模式可以是随机模式之外的一些东西,但是随机模式确保了“奇怪”的损坏(例如缩短地址线等)很容易被发现。在

最后给出了一个使用该文件的示例弹道凝胶.py,请参见以下内容:

cw521 = CW521()
cw521.con()

doplot = False
savefile = None
#savefile = 'error_locations.bin' 

#Raw method is slower but more flexible
use_raw_method = True

while True:
    try:        
        if use_raw_method:
            print "Writing data..."
            cw521.raw_test_setup()
            raw_input("Hit enter when glitch inserted")
            results = cw521.raw_test_compare()
        else:
            print "Writing data..."
            cw521.seed_test_setup()
            raw_input("Hit enter when glitch inserted")
            results = cw521.seed_test_compare()
        
        errdatay = results['errdatay']
        errdatax = results['errdatax']
        errorlist = results['errorlist']
        
        if doplot:
            plt.plot(errdatax, errdatay, '.r')
            plt.axis([0, 8192, 0, 4096])
            plt.show()

        if savefile:
            with open(savefile, "wb") as errfile:
                errfile.write(bytearray(errorlist))
    except:
        cw521.close()

随后弹出的“图形”有点虚假——SRAM的物理图还不准确。但最有趣的是,您可以看到位翻转的数量(正/负),以及损坏的总字节数。在

也可以切换到不提供位损坏信息的更快的方法。但它提供了总的腐败规模,这往往是非常有趣的。在

弹道凝胶依赖于安装ChipWhisper,因为USB程序是从ChipWhisper导入的。你可以用

^{pr2}$

如果你没有的话。在

结果格式

结果信息在字典中提供。根据您使用的是快速(但不太详细)方法还是慢速(但更详细)方法,您可能没有所有这些字段。它目前为您提供:

  • “errorlist”:每个字节错误的地址列表。这个长度是字节错误的数量。在
  • “errdatax”,“errdatay”:errdatax&errdatay试图提供SRAM芯片上发生错误的位置的映射。在映射完成之前,这是不完全准确的。在
  • “set_errors”:发生的位集错误数。注意位错误数与字节错误数不同。在
  • “重置错误”:发生的位重置错误数。注意位错误数与字节错误数不同。在

正在生成固件

固件是使用Atmel Studio 7构建的,但也可以使用ARM工具链在Linux上构建。在

合法的

弹道凝胶是ChipSHOUTER项目的一部分(该项目本身与ChipWhisper项目有关)。它也被称为CW521目标板。在

弹道凝胶是一个开源项目,发布时有GPL许可证。组装板可从NewAE Technology Inc.购买,网址为https://store.newae.com。在

ChipSHOUTER是NewAE Technoloy Inc.的注册商标。请注意,未经许可,您不能销售使用ChipSHOUTER名称的电路板,并且您不能在您自己的产品上使用NewAE Technology Inc.的USB视频,因为USB-IF许可证不允许以这种方式再授权。如果您更改了VID/PID,只需根据需要更改.inf(驱动程序)文件中关联的VID/PID。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是从此类字符串中提取数据的最佳方法   filenotfoundexception Java FileOutputStream Windows/Linux   java在SQLite数据库Android SDK中搜索特定字符串   java使用键值访问jsp中Map<Long,Map<String,Object>>的内容   java奇怪的HTMLeditor工具包问题   在java中使用数组只计算字母   每个应用程序都可以有自己独立的Java SDK吗   java如何将jasper报告生成的PDF文件保存在一个项目文件夹中   java BigDecimal包装器:静态字段为零   解码Base64图像时出现java IllegalArgumentException(非法的Base64字符)   将int转换为字节在Java和Actionscript中产生不同的结果   java什么使不可变对象在没有安全发布技术的情况下发布?   java将字节数据写入目录   一个计算器中有多个操作的java问题   面向对象Java重写是如何工作的   带hibernate的java ClassCastException   指向最后一个对象的java对象列表   java单元测试spring项目中的Get请求