mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-30 01:15:52 +00:00
x11/radare-cutter: update to 1.7.2
This commit is contained in:
parent
898fbce0b3
commit
92d43ad56a
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=486093
@ -1,9 +1,8 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= radare-cutter
|
||||
PORTVERSION= 1.7.1
|
||||
PORTVERSION= 1.7.2
|
||||
DISTVERSIONPREFIX= v
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= x11
|
||||
|
||||
MAINTAINER= swills@FreeBSD.org
|
||||
|
@ -1,3 +1,3 @@
|
||||
TIMESTAMP = 1537225612
|
||||
SHA256 (radareorg-cutter-v1.7.1_GH0.tar.gz) = e9b737d75a6d5b6f27c1406ee6b09f4e570db226c3a52f2f6c5f3b8bdd4050f8
|
||||
SIZE (radareorg-cutter-v1.7.1_GH0.tar.gz) = 1100528
|
||||
TIMESTAMP = 1543350663
|
||||
SHA256 (radareorg-cutter-v1.7.2_GH0.tar.gz) = 48ecdb0fdfc9791014bc08b116d6186a63e0145953564ca9c92a7333206e3da1
|
||||
SIZE (radareorg-cutter-v1.7.2_GH0.tar.gz) = 1126217
|
||||
|
132
x11/radare-cutter/files/patch-Cutter.cpp
Normal file
132
x11/radare-cutter/files/patch-Cutter.cpp
Normal file
@ -0,0 +1,132 @@
|
||||
--- Cutter.cpp.orig 2018-11-27 21:55:04 UTC
|
||||
+++ Cutter.cpp
|
||||
@@ -111,7 +111,7 @@ QList<QString> CutterCore::sdbListKeys(QString path)
|
||||
SdbList *l = sdb_foreach_list(root, false);
|
||||
ls_foreach(l, iter, vsi) {
|
||||
SdbKv *nsi = (SdbKv *)vsi;
|
||||
- list << nsi->key;
|
||||
+ list << reinterpret_cast<char *>(nsi->base.key);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
@@ -323,26 +323,6 @@ void CutterCore::openFile(QString path, RVA mapaddr)
|
||||
}
|
||||
}
|
||||
|
||||
-void CutterCore::analyze(int level, QList<QString> advanced)
|
||||
-{
|
||||
- CORE_LOCK();
|
||||
- /*
|
||||
- * Levels
|
||||
- * Level 1: aaa
|
||||
- * Level 2: aaaa
|
||||
- */
|
||||
-
|
||||
- if (level == 1) {
|
||||
- r_core_cmd0(core_, "aaa");
|
||||
- } else if (level == 2) {
|
||||
- r_core_cmd0(core_, "aaaa");
|
||||
- } else if (level == 3) {
|
||||
- for (QString option : advanced) {
|
||||
- r_core_cmd0(core_, option.toStdString().c_str());
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
void CutterCore::renameFunction(const QString &oldName, const QString &newName)
|
||||
{
|
||||
cmdRaw("afn " + newName + " " + oldName);
|
||||
@@ -549,11 +529,6 @@ ut64 CutterCore::math(const QString &expr)
|
||||
return r_num_math(this->core_ ? this->core_->num : NULL, expr.toUtf8().constData());
|
||||
}
|
||||
|
||||
-QString CutterCore::itoa(ut64 num, int rdx)
|
||||
-{
|
||||
- return QString::number(num, rdx);
|
||||
-}
|
||||
-
|
||||
void CutterCore::setConfig(const QString &k, const QString &v)
|
||||
{
|
||||
CORE_LOCK();
|
||||
@@ -716,51 +691,6 @@ QString CutterCore::createFunctionAt(RVA addr, QString
|
||||
return ret;
|
||||
}
|
||||
|
||||
-void CutterCore::markString(RVA addr)
|
||||
-{
|
||||
- cmd("Cs @" + RAddressString(addr));
|
||||
-}
|
||||
-
|
||||
-int CutterCore::get_size()
|
||||
-{
|
||||
- CORE_LOCK();
|
||||
- RBinObject *obj = r_bin_get_object(core_->bin);
|
||||
- //return obj->size;
|
||||
- return obj != nullptr ? obj->obj_size : 0;
|
||||
-}
|
||||
-
|
||||
-ulong CutterCore::get_baddr()
|
||||
-{
|
||||
- CORE_LOCK();
|
||||
- ulong baddr = r_bin_get_baddr(core_->bin);
|
||||
- return baddr;
|
||||
-}
|
||||
-
|
||||
-QList<QList<QString>> CutterCore::get_exec_sections()
|
||||
-{
|
||||
- QList<QList<QString>> ret;
|
||||
-
|
||||
- QString text = cmd("S*~^S");
|
||||
- for (QString line : text.split("\n")) {
|
||||
- QStringList fields = line.split(" ");
|
||||
- if (fields.length() == 7) {
|
||||
- if (fields[6].contains("x")) {
|
||||
- QList<QString> tmp = QList<QString>();
|
||||
- tmp << fields[2];
|
||||
- tmp << fields[3];
|
||||
- tmp << fields[5];
|
||||
- ret << tmp;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
-QString CutterCore::getOffsetInfo(QString addr)
|
||||
-{
|
||||
- return cmd("ao @ " + addr);
|
||||
-}
|
||||
-
|
||||
QJsonDocument CutterCore::getRegistersInfo()
|
||||
{
|
||||
return cmdj("aeafj");
|
||||
@@ -1219,29 +1149,6 @@ QStringList CutterCore::getStats()
|
||||
stats << cmd("f~?").trimmed();
|
||||
|
||||
return stats;
|
||||
-}
|
||||
-
|
||||
-QString CutterCore::getSimpleGraph(QString function)
|
||||
-{
|
||||
- // New styles
|
||||
- QString graph = "graph [bgcolor=invis, splines=polyline];";
|
||||
- QString node =
|
||||
- "node [style=\"filled\" fillcolor=\"#4183D7\" shape=box fontname=\"Courier\" fontsize=\"8\" color=\"#4183D7\" fontcolor=\"white\"];";
|
||||
- QString arrow = "edge [arrowhead=\"normal\";]";
|
||||
-
|
||||
- // Old styles
|
||||
- QString old_graph = "graph [bgcolor=white fontsize=8 fontname=\"Courier\"];";
|
||||
- //QString old_node = "node [color=lightgray, style=filled shape=box];";
|
||||
- QString old_node = "node [fillcolor=gray style=filled shape=box];";
|
||||
- QString old_arrow = "edge [arrowhead=\"vee\"];";
|
||||
-
|
||||
- QString dot = cmd("aga @ " + function).trimmed();
|
||||
- dot.replace(old_graph, graph);
|
||||
- dot.replace(old_node, node);
|
||||
- dot.replace(old_arrow, arrow);
|
||||
- dot.replace("fillcolor=blue", "fillcolor=\"#EC644B\", color=\"#EC644B\"");
|
||||
-
|
||||
- return dot;
|
||||
}
|
||||
|
||||
void CutterCore::setGraphEmpty(bool empty)
|
99
x11/radare-cutter/files/patch-Cutter.h
Normal file
99
x11/radare-cutter/files/patch-Cutter.h
Normal file
@ -0,0 +1,99 @@
|
||||
--- Cutter.h.orig 2018-10-08 07:20:46 UTC
|
||||
+++ Cutter.h
|
||||
@@ -17,14 +17,9 @@
|
||||
#include <QJsonDocument>
|
||||
#include <QErrorMessage>
|
||||
|
||||
-#define HAVE_LATEST_LIBR2 false
|
||||
-
|
||||
#define CutterRListForeach(list, it, type, x) \
|
||||
if (list) for (it = list->head; it && ((x=(type*)it->data)); it = it->n)
|
||||
|
||||
-#define __alert(x) QMessageBox::question (this, "Alert", QString(x), QMessageBox::Ok)
|
||||
-#define __question(x) (QMessageBox::Yes==QMessageBox::question (this, "Alert", QString(x), QMessageBox::Yes| QMessageBox::No))
|
||||
-
|
||||
#define APPNAME "Cutter"
|
||||
|
||||
#define Core() (CutterCore::getInstance())
|
||||
@@ -60,8 +55,6 @@ class RCoreLocked (public)
|
||||
~RCoreLocked();
|
||||
operator RCore *() const;
|
||||
RCore *operator->() const;
|
||||
- RVA seek(RVA offset);
|
||||
- RVA getSeek();
|
||||
};
|
||||
|
||||
inline QString RAddressString(RVA addr)
|
||||
@@ -398,7 +391,6 @@ class CutterCore: public QObject (public)
|
||||
QString cmdFunctionAt(QString addr);
|
||||
QString cmdFunctionAt(RVA addr);
|
||||
QString createFunctionAt(RVA addr, QString name);
|
||||
- void markString(RVA addr);
|
||||
|
||||
/* Flags */
|
||||
void delFlag(RVA addr);
|
||||
@@ -434,9 +426,6 @@ class CutterCore: public QObject (public)
|
||||
void loadScript(const QString &scriptname);
|
||||
QJsonArray getOpenedFiles();
|
||||
|
||||
- /* Analysis functions */
|
||||
- void analyze(int level, QList<QString> advanced);
|
||||
-
|
||||
/* Seek functions */
|
||||
void seek(QString thing);
|
||||
void seek(ut64 offset);
|
||||
@@ -464,7 +453,6 @@ class CutterCore: public QObject (public)
|
||||
|
||||
/* Math functions */
|
||||
ut64 math(const QString &expr);
|
||||
- QString itoa(ut64 num, int rdx = 16);
|
||||
|
||||
/* Config functions */
|
||||
void setConfig(const QString &k, const QString &v);
|
||||
@@ -491,12 +479,8 @@ class CutterCore: public QObject (public)
|
||||
QList<QString> sdbListKeys(QString path);
|
||||
QString sdbGet(QString path, QString key);
|
||||
bool sdbSet(QString path, QString key, QString val);
|
||||
- int get_size();
|
||||
- ulong get_baddr();
|
||||
- QList<QList<QString>> get_exec_sections();
|
||||
- QString getOffsetInfo(QString addr);
|
||||
|
||||
- // Debug
|
||||
+ /* Debug */
|
||||
QJsonDocument getRegistersInfo();
|
||||
QJsonDocument getRegisterValues();
|
||||
QString getRegisterName(QString registerRole);
|
||||
@@ -531,6 +515,7 @@ class CutterCore: public QObject (public)
|
||||
int currentlyAttachedToPID = -1;
|
||||
QString currentlyOpenFile;
|
||||
|
||||
+ /* Pseudocode */
|
||||
QString getDecompiledCodePDC(RVA addr);
|
||||
bool getR2DecAvailable();
|
||||
QString getDecompiledCodeR2Dec(RVA addr);
|
||||
@@ -540,7 +525,6 @@ class CutterCore: public QObject (public)
|
||||
QJsonDocument getSignatureInfo();
|
||||
QJsonDocument getFileVersionInfo();
|
||||
QStringList getStats();
|
||||
- QString getSimpleGraph(QString function);
|
||||
void setGraphEmpty(bool empty);
|
||||
bool isGraphEmpty();
|
||||
|
||||
@@ -629,7 +613,6 @@ signals:
|
||||
void refreshCodeViews();
|
||||
void stackChanged();
|
||||
|
||||
- void notesChanged(const QString ¬es);
|
||||
void projectSaved(const QString &name);
|
||||
|
||||
/*!
|
||||
@@ -654,8 +637,6 @@ signals:
|
||||
|
||||
void newMessage(const QString &msg);
|
||||
void newDebugMessage(const QString &msg);
|
||||
-
|
||||
-public slots:
|
||||
|
||||
private:
|
||||
MemoryWidgetType memoryWidgetPriority;
|
11
x11/radare-cutter/files/patch-widgets_Dashboard.cpp
Normal file
11
x11/radare-cutter/files/patch-widgets_Dashboard.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- widgets/Dashboard.cpp.orig 2018-10-08 07:20:46 UTC
|
||||
+++ widgets/Dashboard.cpp
|
||||
@@ -62,7 +62,7 @@ void Dashboard::updateContents()
|
||||
this->ui->relroEdit->setText(relro);
|
||||
}
|
||||
|
||||
- this->ui->baddrEdit->setText("0x" + QString::number(Core()->get_baddr(), 16));
|
||||
+ this->ui->baddrEdit->setText(RAddressString(item2["baddr"].toVariant().toULongLong()));
|
||||
|
||||
if (item2["va"].toBool() == true) {
|
||||
this->ui->vaEdit->setText("True");
|
17
x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp
Normal file
17
x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp
Normal file
@ -0,0 +1,17 @@
|
||||
--- widgets/SidebarWidget.cpp.orig 2018-10-08 07:20:46 UTC
|
||||
+++ widgets/SidebarWidget.cpp
|
||||
@@ -188,10 +188,13 @@ void SidebarWidget::fillOffsetInfo(QString off)
|
||||
.set("scr.color", COLOR_MODE_DISABLED);
|
||||
|
||||
ui->offsetTreeWidget->clear();
|
||||
- QString raw = Core()->getOffsetInfo(off);
|
||||
+ QString raw = Core()->cmd(QString("ao@") + off).trimmed();
|
||||
QList<QString> lines = raw.split("\n", QString::SkipEmptyParts);
|
||||
for (QString line : lines) {
|
||||
QList<QString> eles = line.split(":", QString::SkipEmptyParts);
|
||||
+ if (eles.length() < 2) {
|
||||
+ continue;
|
||||
+ }
|
||||
QTreeWidgetItem *tempItem = new QTreeWidgetItem();
|
||||
tempItem->setText(0, eles.at(0).toUpper());
|
||||
tempItem->setText(1, eles.at(1));
|
Loading…
Reference in New Issue
Block a user