Scanmem Versions Save

memory scanner for Linux

v0.17

6 years ago

Features:

  • Add ! as an alias for shell
  • Working snapshot and update for string/bytearray scans
  • list gained a max_to_print parameter (default: 10k)
  • delete, dregion and set learned to work with full featured sets of values
  • Add custom pager support (env $PAGER)
  • Remove dependence of libscanmem from libreadline, it is now needed only for scanmem
  • Feature removed: obsolete detect_reverse_change mechanism
  • Add a -c/--command switch to give commands to run before the interactive mode
  • Add a -e/--errexit switch to exit on initial commands errors, for robust scripting
  • library API: Add a function to clean up memory used
  • library API: Export only the intended sm_* interface
  • gui: Show up to 10k entries, thanks to underlying optimizations
  • gui: Add button to interrupt mid-scan
  • gui: Keyboard-only navigation
  • gui: Add a refresh button in Hexview
  • Collaboration: Added a scanmem Slack chat, come say hi if you're interested in the project

Performance:

  • Inline nested scan functions: 40-60% less time in anytype scans
  • Optimize searchregions() main loop: ~20% less time in initial scans
  • Add optimizations for small string/bytearray: ~50% less time if len<=8
  • Rehaul bytearray storage: ~10% less scan time
  • Complete rewrite of the incoming memory handling: 10-40% less first scan time and string/bytearray scan speed generally improved by 2x-100x (yes, 100x)
  • Improvements to add_element(), for ~30% faster snapshot time.
  • Rework of the match flags type: ~10% faster scans and ~30% faster snapshot

Overall scanning should be much faster, ranging from 1.5x of single types, 2x of anytypes, 2.5x of snapshot and 3x-100x of string/bytearray.

Fixes:

  • Improved documentation (help, manpages, readme)
  • list works correctly with >100 digits floats
  • Allocate copy of input strings, to fix unaligned access on ARM
  • Negative numbers aren't parsed as uint64 anymore
  • Check if a scan can possibly match anything before going on
  • gui: fix erroneous hexview caching

Internal clean-up:

  • Fixed the C standard: gnu99
  • Clean up includes (twice!)
  • Move common functions to common.h
  • Use size_t for sizing
  • Add testing framework
  • Use travis CI for automagic testing
  • gui: Use the backend communication mechanism for data_worker
  • gui: Free memory allocated by libsm at exit

New GUI translations:

  • German
  • Italian
  • Serbian (sr_ME)
  • Spanish

People:

Andrea Stacchiotti ( @12345ieee , me) was added as maintainer Bijan Kazemi-Shirkadeh ( @bkazemi ) was added as committer

Notes for packagers:

The split of scanmem (CLI frontend) from libscanmem (library that actually does the work) should be completed. They can therefore be offered as separate packages, if desired.

libscanmem should not depend on libreadline/libtinfo anymore. gameconqueror should depend only on libscanmem and not on the whole scanmem.

Known issues:

  • gui: not using Python 3 shebang by default (#300)
  • configure: AM_PROG_CC_C_O macro missing for older distros (#289)
  • gui: appdata to metainfo conversion missing (#295)
  • gui: exception due to empty process name (c7cb19cc5c347299ba71eea509a43908d1866c69)

v0.16.1

6 years ago

Features:

  • gui: Use case-insensitive filtering in Processlist (#214)

Code fixes:

  • ptrace: Fix the Android build (#247)
  • gui: Replace icon 'gtk-jump-to' with 'go-jump' (#236)
  • gui: Show the process name in its label
  • gui: Use 'save' button in save cheat dialog
  • gui: Fix selected for context menu in scan/cheatlist (#230)
  • handlers: Document the "write string <addr> <value>" option

Clean-up:

  • scanmem.1: Escape leading dot in scanmem output
  • scanmem.1: Fix a typo to 'address'
  • gui: misc: Fix some comments
  • gui: Remove some unused pieces
  • gui: Replace some deprecated calls
  • gui: Remove search_count attribute
  • autotools: Don't make po/ files without GUI

v0.16

7 years ago

Features:

  • ranges support ("n..m" command)
  • exact float matching (depends on ranges)
  • Android support
  • GTK 3.22 support
  • GUI usability improvements
  • GUI command line option parsing
  • GUI uses absolute path to libscanmem.so.1
  • GUI: setting the length when manually adding a string/bytearray
  • license change to LGPL-3 for libscanmem
  • deployment of include headers for a libscanmem-dev package

Code fixes:

  • Python 3 Unicode conversion bugfixes
  • scan input handling bugfixes
  • GUI resize issues resolved
  • several further GUI issues fixed
  • fixed the watch handler to respect match flags

Clean-up:

  • full rework of the man pages of scanmem and the GUI
  • file renaming, public function renaming, wrapping long lines
  • reviewing and updating all source files
  • rework of scanmem version printing and root warning
  • rework of GameConqueror.xml

Known issues:

  • major: Android only: #247
  • minor: #236, c31690dd43f33e4710043247247fc996c0a57994, 5179ad28185b9e3fdd9eb997555ebf41a604d55c, 419d51ec1db2962e1680a96cd3698a6350287821, #230, 90e666f61f3ddf56583f09c645546aac30cd586a - apply patches on top
  • feature #214 might be useful - use v0.16.1 or apply patches on top

v0.15.8

7 years ago

Clean-up:

  • fixed project links
  • removed superfluous/auto-generated files
  • updated NEWS, ChangeLog, gameconqueror.1, scanmem.1

Code fixes:

  • gui: Hide the AddCheatDialog if trying to delete it (#160)
  • menu: Fix the prototype of printversion()
  • gui: Set Gtk 3.0 requirement to avoid a warning
  • autogen: Run autoheader to generate config.h.in
  • gameconqueror.in: Get the pkexec path from shell
  • gameconqueror.in: Directly execute GameConqueror.py
  • scanmem: Initialize the reverse_endianness option
  • replaced deprecated GtkButton:use-stock and GtkImage:stock

Performance:

  • targetmem: Optimize memset() in add_element()

Known issues:

  • #164, #166 - apply patches on top
  • #167, #171, #174, #176 - use v0.16

v0.15.7

8 years ago
  • handlers: watch: Respect the scan data type (#136)
  • scanmem: Use only async-signal-safe functions in sighandler() (#131)
  • fixes for security bugs found by Coverity (#159)
    • handlers: list: Fix a memory leak if no matches
    • handlers: dump: Fix file pointer leaks
    • handlers: dregion: Fix a list leak in invert case
    • maps: Fix an out-of-bounds write to exename
    • treewide: Drop ineffective number_of_bytes checks
  • known issues: old automake files checked in, #160 - apply patches on top

v0.15.6

8 years ago
  • gui: Don't run gtk-update-icon-cache, inform instead (#155)
  • known issues: #131, #136, #159 - apply patches on top

v0.15.5

8 years ago
  • fixed support for GTK >= 3.16 (#144)
  • fixed starting GC from .desktop launcher (bug in pkexec call, #148)
  • icon fixes: e.g. running gtk-update-icon-cache after installation (a2b1405c209e03e842d49f7c36e9a369b9e55ea9)
  • added Darwin support and fixed a warning in autogen.sh (#151)
  • gui: Load cheats in same order as they were saved (#152)
  • gui: Fix clicking at lock checkbox outside selection (#153)
  • known issues: #155 because of a2b1405c209e03e842d49f7c36e9a369b9e55ea9 - apply patches on top

v0.15.4

8 years ago
  • minor fix for rare builds without libreadline
  • fixed GUI input check for certain float numbers with Python 3 (#140)
  • fixed saving/loading cheat list files with Python 3 (#141)
  • fixed a GUI crash with matches and region ID > 99 (#142)
  • known issues: #144, #148, #151, PR #152, #153 - apply patches on top

v0.15.3

8 years ago
  • important python cache bugfix (PR #121)
  • Python 2 and 3 Unicode conversion bugfix (PR #121)
  • important PIE bugfix (PR #124)
  • gui: Export DISPLAY and XAUTHORITY (Ubuntu 14.04 with MATE bugfix)
  • scan performance optimization: -38% time if all matches, -13% time if nothing matches, -21% time if all and then nothing matches
  • some clean-ups
  • known issues: #140, #141, #142, 64d5e762bc5f9d970c08d04bcbd222b605ce8941 - apply patches on top

v0.15.2

8 years ago
  • scan performance optimization: up to half the scan time than before in scanmem, further up to 40% less scan time when using the GUI - all that due to scan progress optimization
  • Python 3 GUI fixes for the string and bytearray search as well as for the hexview
  • Python 2 and 3 GUI fixes for the differential number search and cursor movement in the hexview
  • version set to 0.15.2
  • known issues: PR #121, PR #124 - apply patches on top