218
edits
As of August 2020 the site you are on (wiki.newae.com) is deprecated, and content is now at rtfm.newae.com. |
Changes
→Class Diagram
The general architectural idea is to start the Flow with a TraceSource, allow the connection off multiple preprocessing modules (that are both a TraceObserver and a TraceSource) and end the chain in an TraceObserver (that can be a widget or an AnalysisSource). The sigTracesChanged signal (in the TraceSource objects) is used to propagate this notification through the chain and activate a callback method (processTraces) in the ActiveTraceObserver objects (like the WaveFormWidget) to read the new data. The PassiveTraceObservers (like the AnalysisSource and the TraceRecorder widget) will ignore this signal, so the processSignal() should be called manually.
In the diagram bellow, the arrows shows the data flow (the requests are made in the opposite direction), and the vertical lines the inheritance: [TraceSource] -> [(Active)TraceObserverActiveTraceObserver, TraceSource] -> [(PassiveActiveTraceObserver/Active)TraceObserverPassiveTraceSource] AnalysisSource -> AnalysisObserver | | | | \ / | Channel PreprocessingBase AnalysisSource -----------> [AnalysisObserver](jitter, SAD,...) | | AttackBaseClass(CPA, Template) AttackObserver TraceManager TraceRecorder | WaveFormWidget [AttackObserver] | | Analysis Widgets ( TraceRecorder [ResultsTable, CorrelationVsTrace, ...)]