diff options
author | Steve Wills <swills@FreeBSD.org> | 2018-11-28 14:23:18 +0000 |
---|---|---|
committer | Steve Wills <swills@FreeBSD.org> | 2018-11-28 14:23:18 +0000 |
commit | 92d43ad56a55d6c17f818012c83134898d53af0b (patch) | |
tree | b04f531eaef630c241c3a82f715d84590eb395dc /x11/radare-cutter | |
parent | 898fbce0b327fe15e5cdfdb3dac025143be2eca7 (diff) | |
download | ports-92d43ad56a55d6c17f818012c83134898d53af0b.tar.gz ports-92d43ad56a55d6c17f818012c83134898d53af0b.zip |
Notes
Diffstat (limited to 'x11/radare-cutter')
-rw-r--r-- | x11/radare-cutter/Makefile | 3 | ||||
-rw-r--r-- | x11/radare-cutter/distinfo | 6 | ||||
-rw-r--r-- | x11/radare-cutter/files/patch-Cutter.cpp | 132 | ||||
-rw-r--r-- | x11/radare-cutter/files/patch-Cutter.h | 99 | ||||
-rw-r--r-- | x11/radare-cutter/files/patch-widgets_Dashboard.cpp | 11 | ||||
-rw-r--r-- | x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp | 17 |
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 ¬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; 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)); |