Skip to content

Instantly share code, notes, and snippets.

@M0nteCarl0
Created May 4, 2023 13:19
Show Gist options
  • Save M0nteCarl0/e4ec3fc4e63a7b7249fb268a0d3f83db to your computer and use it in GitHub Desktop.
Save M0nteCarl0/e4ec3fc4e63a7b7249fb268a0d3f83db to your computer and use it in GitHub Desktop.
TraceView via IDA Pro
import sys
import time
import numpy as np
from matplotlib.backends.qt_compat import QtWidgets
from matplotlib.backends.backend_qtagg import (
FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
from matplotlib.figure import Figure
import trsfile as trs
from trsfile import trs_open, Trace, SampleCoding, TracePadding, Header
from trsfile.parametermap import TraceParameterMap, TraceParameterDefinitionMap
from trsfile.traceparameter import ByteArrayParameter, ParameterType, TraceParameterDefinition
class ApplicationWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self._main = QtWidgets.QWidget()
self.setCentralWidget(self._main)
layout = QtWidgets.QVBoxLayout(self._main)
static_canvas = FigureCanvas(Figure(figsize=(5, 3)))
layout.addWidget(NavigationToolbar(static_canvas, self))
layout.addWidget(static_canvas)
#dynamic_canvas = FigureCanvas(Figure(figsize=(5, 3)))
#layout.addWidget(dynamic_canvas)
#layout.addWidget(NavigationToolbar(dynamic_canvas, self))
self._static_ax = static_canvas.figure.subplots()
t = np.linspace(0, 10, 501)
#self._dynamic_ax = dynamic_canvas.figure.subplots()
#t = np.linspace(0, 10, 101)
# Set up a Line2D.
#self._line, = self._dynamic_ax.plot(t, np.sin(t + time.time()))
#self._timer = dynamic_canvas.new_timer(50)
#self._timer.add_callback(self._update_canvas)
#self._timer.start()
def _update_canvas(self):
t = np.linspace(0, 10, 101)
# Shift the sinusoid as a function of time.
self._line.set_data(t, np.sin(t + time.time()))
self._line.figure.canvas.draw()
def show_trace_trs(self, trs_filename):
with trs.open(trs_filename, 'r') as traces:
self._static_ax.plot(traces[0])
if __name__ == "__main__":
qapp = QtWidgets.QApplication.instance()
if not qapp:
qapp = QtWidgets.QApplication(sys.argv)
app = ApplicationWindow()
app.show()
app.show_trace_trs("D:\Python staff\TraceAnalyzer\ECC DPA.trs")
app.activateWindow()
app.raise_()
qapp.exec()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment