Skip to content

Commit

Permalink
Rizin update
Browse files Browse the repository at this point in the history
  • Loading branch information
r3yc0n1c committed Apr 11, 2024
1 parent 91f64a7 commit 4448ce1
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 44 deletions.
3 changes: 1 addition & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[submodule "rizin"]
path = rizin
url = https://github.com/rizinorg/rizin
branch = dev
[submodule "src/translations"]
path = src/translations
url = https://github.com/rizinorg/cutter-translations
url = https://github.com/rizinorg/cutter-translations
7 changes: 3 additions & 4 deletions cmake/BundledRizin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,9 @@ endif()
# instead of being hardcoded.
set (Rizin_VERSION 0.8)

set (RZ_LIBS rz_core rz_config rz_cons rz_io rz_util rz_flag rz_asm rz_debug
rz_hash rz_bin rz_lang rz_il rz_analysis rz_parse rz_bp rz_egg rz_reg
rz_search rz_syscall rz_socket rz_magic rz_crypto rz_type rz_diff rz_sign
rz_demangler)
set (RZ_LIBS rz_core rz_config rz_cons rz_io rz_util rz_flag rz_arch rz_debug
rz_hash rz_bin rz_lang rz_il rz_bp rz_egg rz_reg rz_search rz_syscall
rz_socket rz_magic rz_crypto rz_type rz_diff rz_sign rz_demangler)
set (RZ_EXTRA_LIBS rz_main)
set (RZ_BIN rz-bin rizin rz-diff rz-find rz-gg rz-hash rz-run rz-asm rz-ax)

Expand Down
10 changes: 4 additions & 6 deletions src/core/Cutter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1295,7 +1295,7 @@ RVA CutterCore::getLastFunctionInstruction(RVA addr)
if (!fcn) {
return RVA_INVALID;
}
RzAnalysisBlock *lastBB = (RzAnalysisBlock *)rz_list_last(fcn->bbs);
RzAnalysisBlock *lastBB = (RzAnalysisBlock *)rz_pvector_tail(fcn->bbs);
return lastBB ? rz_analysis_block_get_op_addr(lastBB, lastBB->ninstr - 1) : RVA_INVALID;
}

Expand Down Expand Up @@ -1641,7 +1641,7 @@ QVector<Chunk> CutterCore::getHeapChunks(RVA arena_addr)
rz_list_free(arenas);
return chunks_vector;
}
m_arena = ((RzArenaListItem *)rz_list_get_head_data(arenas))->addr;
m_arena = ((RzArenaListItem *)rz_list_first(arenas))->addr;
rz_list_free(arenas);
} else {
m_arena = arena_addr;
Expand Down Expand Up @@ -3061,7 +3061,7 @@ QList<FunctionDescription> CutterCore::getAllFunctions()
function.linearSize = rz_analysis_function_linear_size(fcn);
function.nargs = rz_analysis_arg_count(fcn);
function.nlocals = rz_analysis_var_local_count(fcn);
function.nbbs = rz_list_length(fcn->bbs);
function.nbbs = rz_pvector_len(fcn->bbs);
function.calltype = fcn->cc ? QString::fromUtf8(fcn->cc) : QString();
function.name = fcn->name ? QString::fromUtf8(fcn->name) : QString();
function.edges = rz_analysis_function_count_edges(fcn, nullptr);
Expand Down Expand Up @@ -4334,10 +4334,9 @@ QString CutterCore::getVersionInformation()
const char *name;
const char *(*callback)();
} vcs[] = {
{ "rz_analysis", &rz_analysis_version },
{ "rz_arch", &rz_arch_version },
{ "rz_lib", &rz_lib_version },
{ "rz_egg", &rz_egg_version },
{ "rz_asm", &rz_asm_version },
{ "rz_bin", &rz_bin_version },
{ "rz_cons", &rz_cons_version },
{ "rz_flag", &rz_flag_version },
Expand All @@ -4350,7 +4349,6 @@ QString CutterCore::getVersionInformation()
#if !USE_LIB_MAGIC
{ "rz_magic", &rz_magic_version },
#endif
{ "rz_parse", &rz_parse_version },
{ "rz_reg", &rz_reg_version },
{ "rz_sign", &rz_sign_version },
{ "rz_search", &rz_search_version },
Expand Down
2 changes: 1 addition & 1 deletion src/widgets/DisassemblerGraphView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ void DisassemblerGraphView::loadCurrentGraph()
return;
}

for (const auto &bbi : CutterRzList<RzAnalysisBlock>(fcn->bbs)) {
for (const auto &bbi : CutterPVector<RzAnalysisBlock>(fcn->bbs)) {
RVA bbiFail = bbi->fail;
RVA bbiJump = bbi->jump;

Expand Down
31 changes: 14 additions & 17 deletions src/widgets/ProcessesWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,21 @@

#define DEBUGGED_PID (-1)

enum ColumnIndex {
COLUMN_PID = 0,
COLUMN_UID,
COLUMN_STATUS,
COLUMN_PATH,
};

ProcessesWidget::ProcessesWidget(MainWindow *main)
: CutterDockWidget(main), ui(new Ui::ProcessesWidget)
{
ui->setupUi(this);

// Setup processes model
modelProcesses = new QStandardItemModel(1, 4, this);
modelProcesses->setHorizontalHeaderItem(COLUMN_PID, new QStandardItem(tr("PID")));
modelProcesses->setHorizontalHeaderItem(COLUMN_UID, new QStandardItem(tr("UID")));
modelProcesses->setHorizontalHeaderItem(COLUMN_STATUS, new QStandardItem(tr("Status")));
modelProcesses->setHorizontalHeaderItem(COLUMN_PATH, new QStandardItem(tr("Path")));
modelProcesses->setHorizontalHeaderItem(ProcessesWidget::COLUMN_PID,
new QStandardItem(tr("PID")));
modelProcesses->setHorizontalHeaderItem(ProcessesWidget::COLUMN_UID,
new QStandardItem(tr("UID")));
modelProcesses->setHorizontalHeaderItem(ProcessesWidget::COLUMN_STATUS,
new QStandardItem(tr("Status")));
modelProcesses->setHorizontalHeaderItem(ProcessesWidget::COLUMN_PATH,
new QStandardItem(tr("Path")));
ui->viewProcesses->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter);
ui->viewProcesses->verticalHeader()->setVisible(false);
ui->viewProcesses->setFont(Config()->getFont());
Expand Down Expand Up @@ -129,10 +126,10 @@ void ProcessesWidget::setProcessesGrid()
rowStatus->setFont(font);
rowPath->setFont(font);

modelProcesses->setItem(i, COLUMN_PID, rowPid);
modelProcesses->setItem(i, COLUMN_UID, rowUid);
modelProcesses->setItem(i, COLUMN_STATUS, rowStatus);
modelProcesses->setItem(i, COLUMN_PATH, rowPath);
modelProcesses->setItem(i, ProcessesWidget::COLUMN_PID, rowPid);
modelProcesses->setItem(i, ProcessesWidget::COLUMN_UID, rowUid);
modelProcesses->setItem(i, ProcessesWidget::COLUMN_STATUS, rowStatus);
modelProcesses->setItem(i, ProcessesWidget::COLUMN_PATH, rowPath);
i++;
}

Expand All @@ -155,7 +152,7 @@ void ProcessesWidget::onActivated(const QModelIndex &index)
if (!index.isValid())
return;

int pid = modelFilter->data(index.sibling(index.row(), COLUMN_PID)).toInt();
int pid = modelFilter->data(index.sibling(index.row(), ProcessesWidget::COLUMN_PID)).toInt();
// Verify that the selected pid is still in the processes list since dp= will
// attach to any given id. If it isn't found simply update the UI.
for (const auto &value : Core()->getAllProcesses()) {
Expand Down Expand Up @@ -185,7 +182,7 @@ ProcessesFilterModel::ProcessesFilterModel(QObject *parent) : QSortFilterProxyMo
bool ProcessesFilterModel::filterAcceptsRow(int row, const QModelIndex &parent) const
{
// All columns are checked for a match
for (int i = COLUMN_PID; i <= COLUMN_PATH; ++i) {
for (int i = ProcessesWidget::COLUMN_PID; i <= ProcessesWidget::COLUMN_PATH; ++i) {
QModelIndex index = sourceModel()->index(row, i, parent);
if (qhelpers::filterStringContains(sourceModel()->data(index).toString(), this)) {
return true;
Expand Down
7 changes: 7 additions & 0 deletions src/widgets/ProcessesWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@ class ProcessesWidget : public CutterDockWidget
Q_OBJECT

public:
enum ColumnIndex {
COLUMN_PID = 0,
COLUMN_UID,
COLUMN_STATUS,
COLUMN_PATH,
};

explicit ProcessesWidget(MainWindow *main);
~ProcessesWidget();

Expand Down
24 changes: 10 additions & 14 deletions src/widgets/ThreadsWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,17 @@

#define DEBUGGED_PID (-1)

enum ColumnIndex {
COLUMN_PID = 0,
COLUMN_STATUS,
COLUMN_PATH,
};

ThreadsWidget::ThreadsWidget(MainWindow *main) : CutterDockWidget(main), ui(new Ui::ThreadsWidget)
{
ui->setupUi(this);

// Setup threads model
modelThreads = new QStandardItemModel(1, 3, this);
modelThreads->setHorizontalHeaderItem(COLUMN_PID, new QStandardItem(tr("PID")));
modelThreads->setHorizontalHeaderItem(COLUMN_STATUS, new QStandardItem(tr("Status")));
modelThreads->setHorizontalHeaderItem(COLUMN_PATH, new QStandardItem(tr("Path")));
modelThreads->setHorizontalHeaderItem(ThreadsWidget::COLUMN_PID, new QStandardItem(tr("PID")));
modelThreads->setHorizontalHeaderItem(ThreadsWidget::COLUMN_STATUS,
new QStandardItem(tr("Status")));
modelThreads->setHorizontalHeaderItem(ThreadsWidget::COLUMN_PATH,
new QStandardItem(tr("Path")));
ui->viewThreads->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter);
ui->viewThreads->verticalHeader()->setVisible(false);
ui->viewThreads->setFont(Config()->getFont());
Expand Down Expand Up @@ -120,9 +116,9 @@ void ThreadsWidget::setThreadsGrid()
rowStatus->setFont(font);
QStandardItem *rowPath = new QStandardItem(path);
rowPath->setFont(font);
modelThreads->setItem(i, COLUMN_PID, rowPid);
modelThreads->setItem(i, COLUMN_STATUS, rowStatus);
modelThreads->setItem(i, COLUMN_PATH, rowPath);
modelThreads->setItem(i, ThreadsWidget::COLUMN_PID, rowPid);
modelThreads->setItem(i, ThreadsWidget::COLUMN_STATUS, rowStatus);
modelThreads->setItem(i, ThreadsWidget::COLUMN_PATH, rowPath);
i++;
}

Expand All @@ -146,7 +142,7 @@ void ThreadsWidget::onActivated(const QModelIndex &index)
if (!index.isValid())
return;

int tid = modelFilter->data(index.sibling(index.row(), COLUMN_PID)).toInt();
int tid = modelFilter->data(index.sibling(index.row(), ThreadsWidget::COLUMN_PID)).toInt();

// Verify that the selected tid is still in the threads list since dpt= will
// attach to any given id. If it isn't found simply update the UI.
Expand All @@ -169,7 +165,7 @@ ThreadsFilterModel::ThreadsFilterModel(QObject *parent) : QSortFilterProxyModel(
bool ThreadsFilterModel::filterAcceptsRow(int row, const QModelIndex &parent) const
{
// All columns are checked for a match
for (int i = COLUMN_PID; i <= COLUMN_PATH; ++i) {
for (int i = ThreadsWidget::COLUMN_PID; i <= ThreadsWidget::COLUMN_PATH; ++i) {
QModelIndex index = sourceModel()->index(row, i, parent);
if (qhelpers::filterStringContains(sourceModel()->data(index).toString(), this)) {
return true;
Expand Down
6 changes: 6 additions & 0 deletions src/widgets/ThreadsWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ class ThreadsWidget : public CutterDockWidget
Q_OBJECT

public:
enum ColumnIndex {
COLUMN_PID = 0,
COLUMN_STATUS,
COLUMN_PATH,
};

explicit ThreadsWidget(MainWindow *main);
~ThreadsWidget();

Expand Down

0 comments on commit 4448ce1

Please sign in to comment.