立聪堂德州十三局店 发表于 2024-9-28 15:04:28

Chipwhisperer 使用指南-1

chipwhisperer是用于功耗采集的装备平台,由于其官网介绍都是英文,为便于国内读者使用,作者把平台使用的部分功能做了一个主要介绍
1、软件下载
下载地点:Releases · newaetech/chipwhisperer (github.com)
https://i-blog.csdnimg.cn/blog_migrate/65956cf177b6affe42aafea3cc67856a.png
图中的第一个链接
 2、本文使用的是chipwhisperer pro 和cw308目的板,芯片是STM32芯片,装备连接图:
https://i-blog.csdnimg.cn/blog_migrate/5e2d980f049db08b7296c434edb9fe21.jpeg
左边另有一根usb线连接到电脑,黑线用于功耗采集,白色的用于数据传输 (不同装备的连接线不同,后面会有各种装备的详细介绍)
3、装备连接测试,首先打开安装好的软件,本文安装在C盘子目录下, 是一个python的jupyter,已经集成好了各种python脚本

https://i-blog.csdnimg.cn/blog_migrate/98abea1555985904f532a3efa2f4d7e8.png
点开第一个 ,界面:
https://i-blog.csdnimg.cn/blog_migrate/57978d1f118b419cc2a5ffaed5e85b1e.png
打开这个界面下的jupyter/1 - Connecting to Hardware ,会打开连接到硬件的脚本
我们按Run逐行执行
https://i-blog.csdnimg.cn/blog_migrate/0bff2aecae6f259a9dc37809a45a6b5e.png
有时候会出现装备无法连接的题目 
https://i-blog.csdnimg.cn/blog_migrate/c6048bc24adedb753b2b66d15974ec6a.png
这意思是无法识别chipwhisperer,那就看看装备管理器 ,如果装备管理器中能显示CW1200这个装备,那错误可能变为
USBErrorPipe: LIBUSB_ERROR_PIPE [-9] 这个错误是驱动没设置好,需要下载一个软件来设置,zadig-2.8.exe,我把这个软件放在云盘上,地点为分享文件:zadig-2.8.exe
链接:https://pan.xunlei.com/s/VO-FqmYtEwLwa5c7OHsv-O2cA1#
提取码:q6zs
 
点开options-----list all devices则可以看到识别的CW1200,如果是别的装备,好比CWlite,就选cwlite
https://i-blog.csdnimg.cn/blog_migrate/2e89e9335f37fcfec58ad5b798c55f89.png
绿色箭头右边选择winUSB选项,然后点击install wcid driver,等待一会可以看到安装驱动乐成
https://i-blog.csdnimg.cn/blog_migrate/0aa9b294f9f144bbfa5db59112734b05.png
这样应该可以了,再回到python脚本中执行,应该不会报错 
https://i-blog.csdnimg.cn/blog_migrate/ee95478e3b6c3ac2ad595c2d81449c4e.png界面未报错 
代表乐成连接,此时装备上的CLK模块的灯应该是全亮的,代表连接乐成
https://i-blog.csdnimg.cn/blog_migrate/70cb2ae92cdb88426befd9a4a7971970.jpeg
这时候可以接着执行脚本,到这一步 
https://i-blog.csdnimg.cn/blog_migrate/13d416a3382921400e1fe03fce07aa53.png
这里需要设置好装备的参数,我是安装在C盘,以是全路径为 C:\ChipWhisperer5_64\cw\home\portable\chipwhisperer\hardware\victims\firmware\simpleserial-base记得这个文件夹位置
执行这个下令后可以看到报错和提示
 https://i-blog.csdnimg.cn/blog_migrate/e27e2c55ff90736b23333782ebb1f766.png
这是说PLATFORM未设置,本文使用的是
CW308目标板和STM32F3芯片的组合,所以参数设置为 CW308_STM32F3,读者所用的芯片和目标板不同,就选择相应的参数 https://i-blog.csdnimg.cn/blog_migrate/d6036c543153543fe09ae09a39fbd565.png可以看到执行乐成,在文件夹中也天生了hex文件 
https://i-blog.csdnimg.cn/blog_migrate/192868481bdef16bae29a9b0a2956614.png
通过这个hex文件可以把简朴的串口通信程序烧录到芯片中,就可以开始数据传输测试了
https://i-blog.csdnimg.cn/blog_migrate/4703511325f11d074a1e39ec1e2d3f53.png
执行到这一行,把STM32这一行取消注释,把地点换为之宿世成的hex文件的地点,如果是别的芯片种类就换别的,执行 (注意:直接复制的地点是'\',python识别的是反斜杠'/'需要替换),执行完可以看到
https://i-blog.csdnimg.cn/blog_migrate/808c54ad3826f44a8307048f20133658.png
代表烧录乐成,接下来可以开始测试串口通信程序是否可用 
https://i-blog.csdnimg.cn/blog_migrate/a8b93521469561a7b64e98c08a9ec527.png
这两句代码代表通过串口向芯片发送16个'0'数据,而串口读到的也是16个'0',代表串口通信没题目 ,这段代码中的'p'代表发送数据标记,这是串口程序的默认设置,如果发送'k'标记,则不会显示数据,只会返回0
https://i-blog.csdnimg.cn/blog_migrate/c33680839b470fcc4154b0f7cf3aa67a.png
固然,你还可以发送别的数据看看串口可否接收和转发
 https://i-blog.csdnimg.cn/blog_migrate/35c4d8cea9157baeaec367989055c44f.png
可以看到了发送了16个'ff' ,串口接收到了'r'代表读取下令,然后是16个ff字符,然后是'z'和'00',这部分代表字符串是以回车键竣事。

至此,已经完成chipwhisperer软件的前期工作,连接和串口部分都没有题目,下篇文章就开始介绍如何把AES加密的hex烧录到芯片中,并采集加密功耗数据和生存。这部分我会细致的把每一步都介绍清楚,以便读者可以通过更改代码采集到任意加密算法的功耗数据

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Chipwhisperer 使用指南-1