This tool captures traces from scopes while is also capable of synchronize it with different targets devices.
- View the wave form of each trace;
- Save/load/import/edit/manage the traces;
- Run custom capture scripts;
- Automated glitch exploring with a nice scatterplot widget to visualize the result;
- Convenient firmware programmer to flash files to the target board;
- Record traces using fixed/random encryption keys and fixed/random plaintext inputs;
- Serial Terminal
The capture tool comes with a list of built-in scripts to connect to different pairs of target-scope hardwares. The easiest way to start using it is accessing the "Project"->"Example Scripts" menu and select the appropriate item in the list.
If you want more advanced setups, you will have to configure the capture environment manually using the Setting tabs, starting with the "Generic Settings":
- Select the desired "Scope Module" (e.g., ChipWhisperer/OpenADC). Leave it as None if you only want to use the target.
- Select the desired "Target Module" (e.g., Simple Serial). Leave it as None if you only want to use the scope.
- Select the desired "Trace Format" (e.g., ChipWhisperer/Native). Leave it as None if you don't need to save the traces, as often happen when executing the Glitching attack.
- Switch to the "Scope Settings" tab and setup your scope connection (e.g., selecting 'NewAE USB (CWLite/CW1200)').
- Switch to the "Target Settings" tab and setup your target connection (e.g., selecting 'NewAE USB (CWLite/CW1200)').
- Connect to the desired scope/target pair, using the toolbar buttons. The master button connects to both at the same time.
- At this point, you may want to flash the desired firmware to the target, using the Programmer option in the Tools' menu.
- Once connected, both the "Scope Settings" and "Target Settings" list of parameters may expand, giving access to more advanced settings. You will have to setup these parameters which depend on what you want to capture. It usually involves setting the following parameters:
- Trigger Pins
- Target IOn Pins
- Target HS IO-Out
- Clock Setup
- Trigger Setup->Total Samples
- Trigger Setup->Offset
- Trigger Setup->Mode
- Relock/reset the DCM in case it is lost.
- TIP: check the content of the "Example Scripts" at chipwhisperer/software/chipwhisperer/capture/scripts if you are lost.
- You may want to check if everything is working properly by clicking in the "Capture 1" button and adjusting the above settings if necessary.
- Once it is working as expected, you can set the "Generic Settings"->"Acquisition Settings"->"Number of Traces" option to the desired amount (i.e. 50-100) and click the "Capture M" button in the toolbar. This time the traces will be saved to the "Trace Manager" if you specified a "Trace Format".
- In order to view the saved traces, you will have to change the "Result"->"Trace Output Plot"->"Input" from the scope channel to the "Trace Manager". You may also want to change the "X Axis" temporal sequence from Samples to Time.
- You can also import, delete, edit or select/deselect the trace segments by opening the "Trace Manager" in the Project menu.
- Don't forget to save the Project after each change in the traces. A "Consolidate" option is also available to move/copy all the trace files to the current project directory. It is useful if you imported existing traces or captured it before creating the project.
Once you master this procedure and get tired of doing it over and over again, there are two things you can do about it:
- Create your own script (based on the existing ones) and add it to the chipwhisperer/software/chipwhisperer/capture/scripts or ~/chipwhisperer_projects/chipwhisperer/capture/scripts directories. You may want to copy/paste the lines from the "Script Commands" window, once the environment is already set, in order to make it easier.
- Set your capture environment and save the parameter groups using the Save buttons in the top of the Settings tabs. Other possibility would be to use the "Project"->"Save Settings" option to save all the settings at the same time to the "settings.cwset" file inside your project directory. The settings are NOT loaded automatically when the project is opened. Instead, you should click in the Load button for each group of settings that you want to restore. It is possible to have multiple settings profiles using different settings files. The capture tool also records the settings with the traces when they are captured. If you want to configure the tool to the same environment used in a previous capture, it is possible by loading the setting file saved inside the traces directory.
Follow the B5 tutorial to learn how to use it with different targets.
Click in this link to learn how to use the Glitch Explorer.