Index: head/x11/radare-cutter/Makefile =================================================================== --- head/x11/radare-cutter/Makefile (revision 486092) +++ head/x11/radare-cutter/Makefile (revision 486093) @@ -1,37 +1,36 @@ # $FreeBSD$ PORTNAME= radare-cutter -PORTVERSION= 1.7.1 +PORTVERSION= 1.7.2 DISTVERSIONPREFIX= v -PORTREVISION= 1 CATEGORIES= x11 MAINTAINER= swills@FreeBSD.org COMMENT= GUI for radare2 reverse engineering framework LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/../COPYING LIB_DEPENDS= libr_bin.so:devel/radare2 USES= gl pkgconfig python:3.4+ qmake:outsource qt:5 USE_GITHUB= yes GH_ACCOUNT= radareorg GH_PROJECT= cutter USE_QT= buildtools_build core declarative gui location network printsupport \ svg webchannel webengine widgets USE_GL= gl WRKSRC_SUBDIR= src PLIST_FILES= bin/Cutter \ share/appdata/Cutter.appdata.xml \ share/applications/Cutter.desktop \ share/pixmaps/cutter.svg post-patch: @${REINPLACE_CMD} 's/python3/python-${PYTHON_VER}/' ${WRKSRC}/Cutter.pro .include Index: head/x11/radare-cutter/distinfo =================================================================== --- head/x11/radare-cutter/distinfo (revision 486092) +++ head/x11/radare-cutter/distinfo (revision 486093) @@ -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 Index: head/x11/radare-cutter/files/patch-Cutter.cpp =================================================================== --- head/x11/radare-cutter/files/patch-Cutter.cpp (nonexistent) +++ head/x11/radare-cutter/files/patch-Cutter.cpp (revision 486093) @@ -0,0 +1,132 @@ +--- Cutter.cpp.orig 2018-11-27 21:55:04 UTC ++++ Cutter.cpp +@@ -111,7 +111,7 @@ QList 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(nsi->base.key); + } + } + return list; +@@ -323,26 +323,6 @@ void CutterCore::openFile(QString path, RVA mapaddr) + } + } + +-void CutterCore::analyze(int level, QList 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> CutterCore::get_exec_sections() +-{ +- QList> 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 tmp = QList(); +- 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) Property changes on: head/x11/radare-cutter/files/patch-Cutter.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/x11/radare-cutter/files/patch-Cutter.h =================================================================== --- head/x11/radare-cutter/files/patch-Cutter.h (nonexistent) +++ head/x11/radare-cutter/files/patch-Cutter.h (revision 486093) @@ -0,0 +1,99 @@ +--- Cutter.h.orig 2018-10-08 07:20:46 UTC ++++ Cutter.h +@@ -17,14 +17,9 @@ + #include + #include + +-#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 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 sdbListKeys(QString path); + QString sdbGet(QString path, QString key); + bool sdbSet(QString path, QString key, QString val); +- int get_size(); +- ulong get_baddr(); +- QList> 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; Property changes on: head/x11/radare-cutter/files/patch-Cutter.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/x11/radare-cutter/files/patch-widgets_Dashboard.cpp =================================================================== --- head/x11/radare-cutter/files/patch-widgets_Dashboard.cpp (nonexistent) +++ head/x11/radare-cutter/files/patch-widgets_Dashboard.cpp (revision 486093) @@ -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"); Property changes on: head/x11/radare-cutter/files/patch-widgets_Dashboard.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp =================================================================== --- head/x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp (nonexistent) +++ head/x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp (revision 486093) @@ -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 lines = raw.split("\n", QString::SkipEmptyParts); + for (QString line : lines) { + QList 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)); Property changes on: head/x11/radare-cutter/files/patch-widgets_SidebarWidget.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property