Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,7 @@ jobs:
- name: Build vendor dependencies
run: |
rm -rf screenshots
mkdir -p reai_toolkit/vendor
uv pip install . --target reai_toolkit/vendor --no-cache-dir
rm -rf reai_toolkit/vendor/reai_toolkit
rm -rf reai_toolkit/vendor/reai_toolkit-*.dist-info
bash scripts/build_vendor.sh
shell: bash

- name: Package plugin for release (cross-platform)
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ dependencies = [
"requests>=2.32",
"loguru>=0.7",
"pydantic",
"revengai>=3.123.0",
"revengai>=4.20.0",
"libbs>=2.16.5",
]

Expand Down
8 changes: 7 additions & 1 deletion reai_toolkit/app/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from reai_toolkit.app.services.matching.matching_service import MatchingService
from reai_toolkit.app.services.rename.rename_service import RenameService
from reai_toolkit.app.services.upload.upload_service import UploadService
from reai_toolkit.app.services.data_types.analysis_catalogue import AnalysisDataTypesService
from reai_toolkit.app.services.data_types.data_types_service import ImportDataTypesService
from reai_toolkit.app.services.variable_sync.variable_sync_service import VariableSyncService

Expand Down Expand Up @@ -52,9 +53,14 @@ def __init__(self, ida_version: str = "UNKNOWN", plugin_version: str = "UNKNOWN"
self.rename_service = RenameService(
netstore_service=self.netstore_service, sdk_config=sdk_config
)
self.variable_sync_service = VariableSyncService(
self.data_types_catalogue = AnalysisDataTypesService(
netstore_service=self.netstore_service, sdk_config=sdk_config
)
self.variable_sync_service = VariableSyncService(
netstore_service=self.netstore_service,
sdk_config=sdk_config,
data_types_catalogue=self.data_types_catalogue,
)
self.analysis_sync_service = AnalysisSyncService(
data_types_service=self.data_types_service,
rename_service=self.rename_service,
Expand Down
1 change: 1 addition & 0 deletions reai_toolkit/app/components/dialogs/analyse_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ def _on_ok(self) -> None:
debug_file_path=self.debug_file_path,
tags=self._parse_tags(),
public=self.ui.radioButton_2.isChecked(),
no_cache=self.ui.noCacheCheckBox.isChecked(),
thread_callback=self.callback,
)

Expand Down
29 changes: 23 additions & 6 deletions reai_toolkit/app/components/forms/analyse/analyse_panel_qt5.ui
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@
<x>0</x>
<y>0</y>
<width>520</width>
<height>420</height>
<height>460</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>520</width>
<height>420</height>
<height>460</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>520</width>
<height>420</height>
<height>460</height>
</size>
</property>
<property name="windowTitle">
Expand Down Expand Up @@ -132,13 +132,13 @@
<property name="minimumSize">
<size>
<width>496</width>
<height>200</height>
<height>240</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>496</width>
<height>200</height>
<height>240</height>
</size>
</property>
<property name="title">
Expand Down Expand Up @@ -336,13 +336,30 @@
</layout>
</item>
<item row="5" column="0">
<widget class="QLabel" name="labelCache">
<property name="text">
<string>Cache</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="noCacheCheckBox">
<property name="toolTip">
<string>Skip cached results and re-run every processing stage.</string>
</property>
<property name="text">
<string>Disable cache</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="functionsLabel">
<property name="text">
<string>Functions</string>
</property>
</widget>
</item>
<item row="5" column="1">
<item row="6" column="1">
<widget class="QPushButton" name="selectFuncs">
<property name="minimumSize">
<size>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'analyse_panel_qt5.ui'
# Form implementation generated from reading ui file 'reai_toolkit/app/components/forms/analyse/analyse_panel_qt5.ui'
#
# Created by: PyQt5 UI code generator 5.15.11
#
Expand All @@ -14,9 +14,9 @@
class Ui_AuthPanel(object):
def setupUi(self, AuthPanel):
AuthPanel.setObjectName("AuthPanel")
AuthPanel.resize(520, 420)
AuthPanel.setMinimumSize(QtCore.QSize(520, 420))
AuthPanel.setMaximumSize(QtCore.QSize(520, 420))
AuthPanel.resize(520, 460)
AuthPanel.setMinimumSize(QtCore.QSize(520, 460))
AuthPanel.setMaximumSize(QtCore.QSize(520, 460))
AuthPanel.setAutoFillBackground(False)
AuthPanel.setStyleSheet("\n"
" QGroupBox{font-weight:600;margin-top:8px;}\n"
Expand Down Expand Up @@ -47,7 +47,7 @@ def setupUi(self, AuthPanel):
self.logoArea.setMaximumSize(QtCore.QSize(96, 96))
self.logoArea.setFrameShape(QtWidgets.QFrame.NoFrame)
self.logoArea.setText("")
self.logoArea.setPixmap(QtGui.QPixmap("../../resources/reveng_ai_logo.jpg"))
self.logoArea.setPixmap(QtGui.QPixmap("reai_toolkit/app/components/forms/analyse/../../resources/reveng_ai_logo.jpg"))
self.logoArea.setScaledContents(True)
self.logoArea.setObjectName("logoArea")
self.headerLayout.addWidget(self.logoArea)
Expand All @@ -65,8 +65,8 @@ def setupUi(self, AuthPanel):
self.headerLayout.addLayout(self.titleLayout)
self.rootLayout.addWidget(self.header)
self.groupEndpoints = QtWidgets.QGroupBox(AuthPanel)
self.groupEndpoints.setMinimumSize(QtCore.QSize(496, 200))
self.groupEndpoints.setMaximumSize(QtCore.QSize(496, 200))
self.groupEndpoints.setMinimumSize(QtCore.QSize(496, 240))
self.groupEndpoints.setMaximumSize(QtCore.QSize(496, 240))
self.groupEndpoints.setObjectName("groupEndpoints")
self.formLayout = QtWidgets.QFormLayout(self.groupEndpoints)
self.formLayout.setLabelAlignment(QtCore.Qt.AlignRight)
Expand Down Expand Up @@ -137,15 +137,21 @@ def setupUi(self, AuthPanel):
self.radioButton.setObjectName("radioButton")
self.horizontalLayout.addWidget(self.radioButton)
self.formLayout.setLayout(4, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout)
self.labelCache = QtWidgets.QLabel(self.groupEndpoints)
self.labelCache.setObjectName("labelCache")
self.formLayout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.labelCache)
self.noCacheCheckBox = QtWidgets.QCheckBox(self.groupEndpoints)
self.noCacheCheckBox.setObjectName("noCacheCheckBox")
self.formLayout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.noCacheCheckBox)
self.functionsLabel = QtWidgets.QLabel(self.groupEndpoints)
self.functionsLabel.setObjectName("functionsLabel")
self.formLayout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.functionsLabel)
self.formLayout.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.functionsLabel)
self.selectFuncs = QtWidgets.QPushButton(self.groupEndpoints)
self.selectFuncs.setMinimumSize(QtCore.QSize(296, 32))
self.selectFuncs.setMaximumSize(QtCore.QSize(296, 32))
self.selectFuncs.setAutoDefault(False)
self.selectFuncs.setObjectName("selectFuncs")
self.formLayout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.selectFuncs)
self.formLayout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.selectFuncs)
self.rootLayout.addWidget(self.groupEndpoints)
self.linkRow = QtWidgets.QHBoxLayout()
self.linkRow.setObjectName("linkRow")
Expand Down Expand Up @@ -189,6 +195,9 @@ def retranslateUi(self, AuthPanel):
self.labelScope.setText(_translate("AuthPanel", "Scope"))
self.radioButton_2.setText(_translate("AuthPanel", "Public"))
self.radioButton.setText(_translate("AuthPanel", "Private"))
self.labelCache.setText(_translate("AuthPanel", "Cache"))
self.noCacheCheckBox.setToolTip(_translate("AuthPanel", "Skip cached results and re-run every processing stage."))
self.noCacheCheckBox.setText(_translate("AuthPanel", "Disable cache"))
self.functionsLabel.setText(_translate("AuthPanel", "Functions"))
self.selectFuncs.setText(_translate("AuthPanel", "Select Functions to Upload"))
self.cancelButton.setText(_translate("AuthPanel", "Cancel"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,18 @@
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QFormLayout, QFrame, QGroupBox,
QHBoxLayout, QLabel, QLineEdit, QPushButton,
QRadioButton, QSizePolicy, QSpacerItem, QVBoxLayout,
QWidget)
from PySide6.QtWidgets import (QApplication, QCheckBox, QFormLayout, QFrame,
QGroupBox, QHBoxLayout, QLabel, QLineEdit,
QPushButton, QRadioButton, QSizePolicy, QSpacerItem,
QVBoxLayout, QWidget)

class Ui_AuthPanel(object):
def setupUi(self, AuthPanel):
if not AuthPanel.objectName():
AuthPanel.setObjectName(u"AuthPanel")
AuthPanel.resize(520, 420)
AuthPanel.setMinimumSize(QSize(520, 420))
AuthPanel.setMaximumSize(QSize(520, 420))
AuthPanel.resize(520, 460)
AuthPanel.setMinimumSize(QSize(520, 460))
AuthPanel.setMaximumSize(QSize(520, 460))
AuthPanel.setAutoFillBackground(False)
AuthPanel.setStyleSheet(u"\n"
" QGroupBox{font-weight:600;margin-top:8px;}\n"
Expand Down Expand Up @@ -85,8 +85,8 @@ def setupUi(self, AuthPanel):

self.groupEndpoints = QGroupBox(AuthPanel)
self.groupEndpoints.setObjectName(u"groupEndpoints")
self.groupEndpoints.setMinimumSize(QSize(496, 200))
self.groupEndpoints.setMaximumSize(QSize(496, 200))
self.groupEndpoints.setMinimumSize(QSize(496, 240))
self.groupEndpoints.setMaximumSize(QSize(496, 240))
self.formLayout = QFormLayout(self.groupEndpoints)
self.formLayout.setObjectName(u"formLayout")
self.formLayout.setLabelAlignment(Qt.AlignRight)
Expand Down Expand Up @@ -174,18 +174,28 @@ def setupUi(self, AuthPanel):

self.formLayout.setLayout(4, QFormLayout.ItemRole.FieldRole, self.horizontalLayout)

self.labelCache = QLabel(self.groupEndpoints)
self.labelCache.setObjectName(u"labelCache")

self.formLayout.setWidget(5, QFormLayout.ItemRole.LabelRole, self.labelCache)

self.noCacheCheckBox = QCheckBox(self.groupEndpoints)
self.noCacheCheckBox.setObjectName(u"noCacheCheckBox")

self.formLayout.setWidget(5, QFormLayout.ItemRole.FieldRole, self.noCacheCheckBox)

self.functionsLabel = QLabel(self.groupEndpoints)
self.functionsLabel.setObjectName(u"functionsLabel")

self.formLayout.setWidget(5, QFormLayout.ItemRole.LabelRole, self.functionsLabel)
self.formLayout.setWidget(6, QFormLayout.ItemRole.LabelRole, self.functionsLabel)

self.selectFuncs = QPushButton(self.groupEndpoints)
self.selectFuncs.setObjectName(u"selectFuncs")
self.selectFuncs.setMinimumSize(QSize(296, 32))
self.selectFuncs.setMaximumSize(QSize(296, 32))
self.selectFuncs.setAutoDefault(False)

self.formLayout.setWidget(5, QFormLayout.ItemRole.FieldRole, self.selectFuncs)
self.formLayout.setWidget(6, QFormLayout.ItemRole.FieldRole, self.selectFuncs)


self.rootLayout.addWidget(self.groupEndpoints)
Expand Down Expand Up @@ -254,6 +264,11 @@ def retranslateUi(self, AuthPanel):
self.labelScope.setText(QCoreApplication.translate("AuthPanel", u"Scope", None))
self.radioButton_2.setText(QCoreApplication.translate("AuthPanel", u"Public", None))
self.radioButton.setText(QCoreApplication.translate("AuthPanel", u"Private", None))
self.labelCache.setText(QCoreApplication.translate("AuthPanel", u"Cache", None))
#if QT_CONFIG(tooltip)
self.noCacheCheckBox.setToolTip(QCoreApplication.translate("AuthPanel", u"Skip cached results and re-run every processing stage.", None))
#endif // QT_CONFIG(tooltip)
self.noCacheCheckBox.setText(QCoreApplication.translate("AuthPanel", u"Disable cache", None))
self.functionsLabel.setText(QCoreApplication.translate("AuthPanel", u"Functions", None))
self.selectFuncs.setText(QCoreApplication.translate("AuthPanel", u"Select Functions to Upload", None))
self.cancelButton.setText(QCoreApplication.translate("AuthPanel", u"Cancel", None))
Expand Down
Loading
Loading