Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Aug 2014 05:29:11 +0000 (UTC)
From:      Alexey Dokuchaev <danfe@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r366460 - in head/sysutils/scanmem: . files
Message-ID:  <201408290529.s7T5TBHT025898@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: danfe
Date: Fri Aug 29 05:29:10 2014
New Revision: 366460
URL: http://svnweb.freebsd.org/changeset/ports/366460
QAT: https://qat.redports.org/buildarchive/r366460/

Log:
  - Use EXTRACT_SUFX instead of setting DISTNAME and WRKSRC
  - Allow to build optional PyGTK-based GUI (GameConqueror)
  - Now because package list can be long, utilize pkg-plist
  - Provide better sounding COMMENT; amend port description

Added:
  head/sysutils/scanmem/files/patch-gui-GameConqueror.py   (contents, props changed)
  head/sysutils/scanmem/files/patch-gui-gameconqueror.in   (contents, props changed)
  head/sysutils/scanmem/pkg-plist   (contents, props changed)
Modified:
  head/sysutils/scanmem/Makefile
  head/sysutils/scanmem/pkg-descr

Modified: head/sysutils/scanmem/Makefile
==============================================================================
--- head/sysutils/scanmem/Makefile	Thu Aug 28 22:34:41 2014	(r366459)
+++ head/sysutils/scanmem/Makefile	Fri Aug 29 05:29:10 2014	(r366460)
@@ -5,10 +5,10 @@ PORTNAME=	scanmem
 PORTVERSION=	0.13
 CATEGORIES=	sysutils
 MASTER_SITES=	GOOGLE_CODE
-DISTNAME=	${PORTNAME}-${PORTVERSION}_
+EXTRACT_SUFX=	_.tar.gz
 
 MAINTAINER=	danfe@FreeBSD.org
-COMMENT=	Locate and modify a variable in an executing process
+COMMENT=	Locate and modify various data in an executing process
 
 LICENSE=	GPLv3
 
@@ -18,14 +18,16 @@ ONLY_FOR_ARCHS_REASON=	requires linprocf
 USES=		readline
 GNU_CONFIGURE=	yes
 
-WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
+OPTIONS_DEFINE=	X11 DOCS
+OPTIONS_SUB=	yes
 
-PLIST_FILES=	bin/scanmem man/man1/scanmem.1.gz
-PORTDOCS=	README
-
-OPTIONS_DEFINE=	DOCS
+X11_DESC=	Install PyGTK-based GUI (GameConqueror)
+X11_CATEGORIES=	python
+X11_RUN_DEPENDS=	${LOCALBASE}/libdata/pkgconfig/pygtk-2.0.pc:${PORTSDIR}/x11-toolkits/py-gtk2
+X11_CONFIGURE_ON=	--enable-gui
 
 post-patch:
 	@${REINPLACE_CMD} -e 's,/proc/,/compat/linux&,' ${WRKSRC}/configure
+	@${REINPLACE_CMD} -e 's, COPYING,,' ${WRKSRC}/gui/Makefile.in
 
 .include <bsd.port.mk>

Added: head/sysutils/scanmem/files/patch-gui-GameConqueror.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/scanmem/files/patch-gui-GameConqueror.py	Fri Aug 29 05:29:10 2014	(r366460)
@@ -0,0 +1,30 @@
+--- gui/GameConqueror.py.orig	2011-12-02 14:22:35 UTC
++++ gui/GameConqueror.py
+@@ -749,7 +749,7 @@ class GameConqueror():
+         self.cheatlist_liststore.prepend(['=', False, description, addr, vt, value, True])
+ 
+     def get_process_list(self):
+-        return [map(str.strip, e.strip().split(' ',2)) for e in os.popen('ps -wweo pid=,user=,command= --sort=-pid').readlines()]
++        return [map(str.strip, e.strip().split(' ',2)) for e in reversed(os.popen('ps -axww -o pid= -o user= -o command=').readlines())]
+ 
+     def select_process(self, pid, process_name):
+         # ask backend for attaching the target process
+@@ -778,7 +778,7 @@ class GameConqueror():
+             self.cheatlist_liststore[i][1] = False
+ 
+     def read_maps(self):
+-        lines = open('/proc/%d/maps' % (self.pid,)).readlines()
++        lines = open('/compat/linux/proc/%d/maps' % (self.pid,)).readlines()
+         self.maps = []
+         for l in lines:
+             item = {}
+@@ -980,7 +980,9 @@ class GameConqueror():
+         gtk.main_quit()
+ 
+     def main(self):
++        gtk.threads_enter()
+         gtk.main()
++        gtk.threads_leave()
+ 
+     def check_backend_version(self):
+         if self.backend.version != VERSION:

Added: head/sysutils/scanmem/files/patch-gui-gameconqueror.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/scanmem/files/patch-gui-gameconqueror.in	Fri Aug 29 05:29:10 2014	(r366460)
@@ -0,0 +1,18 @@
+--- gui/gameconqueror.in.orig	2012-09-02 15:26:56 UTC
++++ gui/gameconqueror.in
+@@ -1,13 +1,5 @@
+-#!/bin/bash
++#!/bin/sh
+ 
+ DATADIR=@PKGDATADIR@
+ 
+-if [[ "$(id -u)" != "0" ]]; then
+-    if [ -e "/usr/bin/gksu" ]; then
+-        exec gksu --description "GameConqueror" "python -OO $DATADIR/GameConqueror.py"
+-    else
+-        exec beesu - "python -OO $DATADIR/GameConqueror.py"
+-    fi
+-else
+-    exec python -OO "$DATADIR/GameConqueror.py"
+-fi
++exec python -OO "$DATADIR/GameConqueror.py"

Modified: head/sysutils/scanmem/pkg-descr
==============================================================================
--- head/sysutils/scanmem/pkg-descr	Thu Aug 28 22:34:41 2014	(r366459)
+++ head/sysutils/scanmem/pkg-descr	Fri Aug 29 05:29:10 2014	(r366460)
@@ -1,7 +1,21 @@
 Scanmem is a simple interactive debugging utility for Linux, used to locate
-the address of a variable in an executing process. This can be used for the
-analysis or modification of a hostile process on a compromised machine,
-reverse engineering, or as a "pokefinder" to cheat at video games.
+various data in an executing process.  This can be used for the analysis or
+modification of a hostile process on a compromised machine, help in reverse
+engineering, or to cheat at video games.  Brief list of its features:
+
+  - Interactive command mode, with internal help
+  - Efficient and easy-to-use syntax
+  - Support for different data types: integers, floats, bytearrays, strings
+  - Support for different scan (comparison) types: equal, greater/less than,
+    changed, unchanged, increased/decreased
+  - Set any variable to any value
+  - Detailed information about mappings, allow users to eliminate regions
+
+More in GameConqueror, optional PyGTK-based GUI:
+
+  - User-friendly CheatEngline-alike interface
+  - Modify and lock (freeze) variables
+  - Memory viewer/editor
 
 It requires linprocfs(5) to be mounted under /compat/linux/proc to operate.
 

Added: head/sysutils/scanmem/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/scanmem/pkg-plist	Fri Aug 29 05:29:10 2014	(r366460)
@@ -0,0 +1,19 @@
+%%X11%%bin/gameconqueror
+bin/scanmem
+%%X11%%man/man1/gameconqueror.1.gz
+man/man1/scanmem.1.gz
+%%X11%%share/applications/GameConqueror.desktop
+%%X11%%share/gameconqueror/GameConqueror.py
+%%X11%%share/gameconqueror/GameConqueror.xml
+%%X11%%share/gameconqueror/GameConqueror_128x128.png
+%%X11%%share/gameconqueror/GameConqueror_72x72.png
+%%X11%%share/gameconqueror/backend.py
+%%X11%%share/gameconqueror/consts.py
+%%X11%%share/gameconqueror/hexview.py
+%%X11%%share/gameconqueror/misc.py
+%%X11%%share/pixmaps/GameConqueror_128x128.png
+%%X11%%share/pixmaps/GameConqueror_72x72.png
+%%X11%%@dirrm share/gameconqueror
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%X11%%%%PORTDOCS%%%%DOCSDIR%%/TODO
+%%PORTDOCS%%@dirrm %%DOCSDIR%%



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201408290529.s7T5TBHT025898>