Download Latest Version v0.17_ Speed improvements and sets support source code.zip (265.7 kB)
Email in envelope

Get an email when there's a new version of scanmem & GameConqueror

Home / v0.17
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2017-10-13 3.4 kB
v0.17_ Speed improvements and sets support source code.tar.gz 2017-10-13 220.6 kB
v0.17_ Speed improvements and sets support source code.zip 2017-10-13 265.7 kB
Totals: 3 Items   489.7 kB 30

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)
Source: README.md, updated 2017-10-13