[bug#34512] Add scanmem

Message ID E1gvJSt-0003Yh-6H@rmmprod05.runbox
State Accepted
Headers show
Series [bug#34512] Add scanmem | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

pkill9 Feb. 17, 2019, 10:14 a.m. UTC
Scanmem is a memory scanner that allows you to find the memory address of a variable in a program by scanning the memory multiple times and seeing what has change or stayed the same since the last scan. It lets you change the variable in that memory address as well.

https://github.com/scanmem/scanmem

Comments

Ricardo Wurmus Feb. 17, 2019, 11:26 a.m. UTC | #1
<pkill9@runbox.com> writes:

> Scanmem is a memory scanner that allows you to find the memory address
> of a variable in a program by scanning the memory multiple times and
> seeing what has change or stayed the same since the last scan. It lets
> you change the variable in that memory address as well.
>
> https://github.com/scanmem/scanmem

Thanks.  I pushed this to the master branch with commit a778f2700 after
some minor modifications.

The license was incorrect.  Parts of it are covered under the LGPLv3+,
others are under GPLv3+.

I added a copyright line for you.

I reformatted the description and made sure that there are two spaces
between sentences.  (“guix lint” should have notified you of this.)

~~ Ricardo

Patch

From 01a9c43ecaee76d39e579d713b82765abe95f719 Mon Sep 17 00:00:00 2001
From: Pkill -9 <pkill9@runbox.com>
Date: Sun, 17 Feb 2019 10:09:52 +0000
Subject: [PATCH] gnu: Add scanmem.

* gnu/packages/debug.scm (scanmem): New variable.
---
 gnu/packages/debug.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 0f4a654e6..dc44f8ddf 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -30,11 +30,13 @@ 
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages golang)
   #:use-module (gnu packages code)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages virtualization)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
@@ -336,3 +338,36 @@  conditions.")
 intercepting file operations and changing random bits in the program's
 input.  Zzuf's behaviour is deterministic, making it easy to reproduce bugs.")
     (license (non-copyleft "http://www.wtfpl.net/txt/copying/"))))
+
+(define-public scanmem
+  (package
+    (name "scanmem")
+    (version "0.17")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/scanmem/scanmem")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "17p8sh0rj8yqz36ria5bp48c8523zzw3y9g8sbm2jwq7sc27i7s9"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("libtool" ,libtool)
+       ("intltool" ,intltool)
+       ("automake" ,automake)
+       ("autoconf" ,autoconf)))
+    (inputs
+     `(("readline" ,readline)))
+    (home-page "https://github.com/scanmem/scanmem")
+    (synopsis "Memory scanner")
+    (description "Scanmem is a debugging utility designed to isolate the address
+ of an arbitrary variable in an executing process. scanmem simply needs to be
+told the pid of the process and the value of the variable at several different
+ times.
+
+After several scans of the process, scanmem isolates the position of the
+variable and allows you to modify its value.")
+    (license gpl3)))
-- 
2.20.1