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调用AmazonAWSAPI?   Java中的渗流   java在dao端使用逻辑不是一个好的实践吗?   java Swing绘制网格。韦尔德结果   java如何设置PlusOneButton对话框的共享选项的默认文本   java如何在firebase存储中管理多个上载/下载?   java Wicket在多个位置显示相同的文本   java使用j2me通过蓝牙从一个手机向另一个手机发送短信   java为什么不让DialogWait框自动关闭?   java Visual Studio代码JDBC访问Derby数据库   在java中如何根据日期从文件夹中获取文件   java如何从数据库加载多个数据   java匿名类和同步以及“this”   java无法使用Selenium上载文件   java多线程JAXR调用parallelStream还是Futures?   获取要编译的Netbeans Java程序   java检查二叉树是否为有效BST的函数中的“min”和“max”是什么?   java有人能解释为什么这段代码只在构造函数中工作吗?   java如何将多种类型的用户重定向到各自的活动?