aboutsummaryrefslogtreecommitdiff
path: root/x11/radare-cutter
diff options
context:
space:
mode:
authorSteve Wills <swills@FreeBSD.org>2018-11-28 14:23:18 +0000
committerSteve Wills <swills@FreeBSD.org>2018-11-28 14:23:18 +0000
commit92d43ad56a55d6c17f818012c83134898d53af0b (patch)
treeb04f531eaef630c241c3a82f715d84590eb395dc /x11/radare-cutter
parent898fbce0b327fe15e5cdfdb3dac025143be2eca7 (diff)
downloadports-92d43ad56a55d6c17f818012c83134898d53af0b.tar.gz
ports-92d43ad56a55d6c17f818012c83134898d53af0b.zip
Notes
Diffstat (limited to 'x11/radare-cutter')
-rw-r--r--x11/radare-cutter/Makefile3
-rw-r--r--x11/radare-cutter/distinfo6
-rw-r--r--x11/radare-cutter/files/patch-Cutter.cpp132
-rw-r--r--x11/radare-cutter/files/patch-Cutter.h99
-rw-r--r--x11/radare-cutter/files/patch-widgets_Dashboard.cpp11
-rw-r--r--x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp17
6 files changed, 263 insertions, 5 deletions
diff --git a/x11/radare-cutter/Makefile b/x11/radare-cutter/Makefile
index 43d2d49d16cd..cad66bd31ff4 100644
--- a/x11/radare-cutter/Makefile
+++ b/x11/radare-cutter/Makefile
@@ -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
diff --git a/x11/radare-cutter/distinfo b/x11/radare-cutter/distinfo
index 9a939b486480..7225729d23a5 100644
--- a/x11/radare-cutter/distinfo
+++ b/x11/radare-cutter/distinfo
@@ -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
diff --git a/x11/radare-cutter/files/patch-Cutter.cpp b/x11/radare-cutter/files/patch-Cutter.cpp
new file mode 100644
index 000000000000..1daca66252f5
--- /dev/null
+++ b/x11/radare-cutter/files/patch-Cutter.cpp
@@ -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)
diff --git a/x11/radare-cutter/files/patch-Cutter.h b/x11/radare-cutter/files/patch-Cutter.h
new file mode 100644
index 000000000000..169e2e7ea895
--- /dev/null
+++ b/x11/radare-cutter/files/patch-Cutter.h
@@ -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 &notes);
+ 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;
diff --git a/x11/radare-cutter/files/patch-widgets_Dashboard.cpp b/x11/radare-cutter/files/patch-widgets_Dashboard.cpp
new file mode 100644
index 000000000000..dda206cc8a86
--- /dev/null
+++ b/x11/radare-cutter/files/patch-widgets_Dashboard.cpp
@@ -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");
diff --git a/x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp b/x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp
new file mode 100644
index 000000000000..e7e926df04a8
--- /dev/null
+++ b/x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp
@@ -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));