Giter VIP home page Giter VIP logo

scanmem's Introduction

scanmem & GameConqueror

Build Status Coverity Status

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.

GUI

GameConqueror is a GUI front-end for scanmem, providing more features, such as:

  • Flexible syntax for searching
  • Easier and multiple variable locking
  • Better process finder
  • Memory browser/editor

See gui/README.md for more details.

Requirements

scanmem requires libreadline to read commands interactively, and /proc must be mounted. GameConqueror requirements are documented in gui/README.md.

Documentation

To read documentation:

  • man scanmem
  • man gameconqueror
  • scanmem --help
  • enter help at the scanmem prompt
  • use the interactive help of GameConqueror

Build Requirements

The build requires autotools-dev, libtool, libreadline-dev, intltool, and python.

Build and Install

To generate files required for the build:

./autogen.sh

To build with GUI:

./configure --prefix=/usr --enable-gui && make
sudo make install

To build without GUI:

./configure --prefix=/usr && make
sudo make install

scanmem and GameConqueror use static paths to libscanmem. So executing ldconfig is not required. Consider setting --libdir=/usr/lib/scanmem or --libdir=/usr/lib64/scanmem to avoid that libscanmem is in a library search path.

Run ./configure --help for more details.

Android Build

You need a standalone toolchain of Android NDK (Advanced method) to build interactive capabilities for Android. For more information, run:

./build_for_android.sh help

License:

GPLv3, LGPLv3 for libscanmem

scanmem's People

Contributors

12345ieee avatar 3vi1 avatar bkazemi avatar calculuswhiz avatar cizra avatar coolwanglu avatar fizzfaldt avatar funmungus avatar greizgh avatar hraban avatar ignatenkobrain avatar khonkhortisan avatar kouta-kun avatar mark7 avatar mattiasmun avatar mrdulldev avatar ndowens avatar pr0ps avatar shenada avatar sriemer avatar thesamesam avatar vido89 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scanmem's Issues

Allow wildcards in bytearray replacements

Wilcard values are currently not supported when writing a bytearray, but they 
are supported when searching.
Several Cheat Engine hacks are in a bytearray format with wildcards in both 
search and replacement bytearray.

Original issue reported on code.google.com by [email protected] on 29 Nov 2011 at 12:02

Cannot resize process list window [NT]

What steps will reproduce the problem?
1.
2.
3.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 19 Dec 2010 at 8:13

Crash when exiting attached program with a value frozen.

What steps will reproduce the problem?
1. Run a program
2. Attach to program and freeze a value
3. Exit the program
4. Crash

What is the expected output? What do you see instead?
I expect to see the program still running and not being asked to be killed by 
the system

What version of the product are you using? On what operating system?
Latest Ubuntu, Linux (2.6.38-10-generic)

Please provide any additional information below.
Some error code:

Traceback (most recent call last):
  File "/usr/share/gameconqueror/GameConqueror.py", line 856, in data_worker
    row[1] = str(self.read_value(addr, TYPENAMES_S2G[scanmem_type.strip()], cur_value))
  File "/usr/share/gameconqueror/GameConqueror.py", line 874, in read_value
    return self.bytes2value(typestr, self.read_memory(addr, self.get_type_size(typestr, prev_value)))
  File "/usr/share/gameconqueror/GameConqueror.py", line 596, in bytes2value
    return struct.unpack(TYPENAMES_G2STRUCT[typename], bytes)[0]
struct.error: unpack requires a string argument of length 4

Original issue reported on code.google.com by [email protected] on 9 Aug 2011 at 10:22

Segfault - ptrace.c line 195

What steps will reproduce the problem?
1. Load a large program like firefox
2. Search for a common value like 1 which yields lots of results
3. Try searching again with =

What is the expected output? What do you see instead?
Should get the values that have not changed, instead segfaults

The reason is that because on like 195 of ptrace.c there is:
*((long *)&peekbuf.cache[peekbuf.size - j]) = ptraced_long;

However if there was a cache miss before hand and the cache was invalidated, 
the peekbuf.size was just reset to 0. So when you try to access 
peekbuf.cache[peekbuf.size-j] you get a setfault.

To fix, replace like 195 with:
if(peekbuf.size >= j)
{
   *((long *)&peekbuf.cache[peekbuf.size - j]) = ptraced_long;
}
else
{
   *((long *)&peekbuf.cache[peekbuf.size]) = ptraced_long;
}


Original issue reported on code.google.com by [email protected] on 10 Apr 2012 at 1:48

Process list windows doesn't show up

Using scanmem and Gameconqueror 0.12-2 (svn20110113r16-0ubuntu1).

If user have one or more process that doesn't return a name with 
get_process_list() the process windows doesn't pop. You get an error :

Traceback (most recent call last):
  File "/usr/share/gameconqueror/GameConqueror.py", line 409, in SelectProcess_Button_clicked_cb
    self.processlist_liststore.append([p[0], p[1][:50]]) # limit the length here, otherwise it may crash (why?)
IndexError: list index out of range

==============================
I have replaced line 409 by :

if(len(p) < 2):
        proc = 'None ?'
    else:
        proc = p[1][:50]
    self.processlist_liststore.append([p[0], proc]) # limit the length here, otherwise it may crash (why?)


Original issue reported on code.google.com by [email protected] on 23 Jun 2011 at 9:27

Feature Requests

A few features I'd like to see added to this:
1) Search operators. 
-Greater Than, Lesser Than, Equal To, Not Equal To, etc.
2) Unknown value searching. 
--This would be accomplished by dumping the memory for the selected app, and 
then using Greater Than, Equal To, Less Than operators to filter results.
3) Cheat save files. Having one file for all is silly and can be a mess.
-Load, Save, Save As functions for the above.

Original issue reported on code.google.com by [email protected] on 21 Apr 2011 at 8:05

Typo in help (0.12)

When running scanmem, "help" in part states:
!=         match all variables that have not changed since last scan
=          match all variables that have not changed since last scan

Original issue reported on code.google.com by [email protected] on 25 Mar 2012 at 8:02

add pager

message of help is too long
a pager is needed

Original issue reported on code.google.com by [email protected] on 12 Jan 2011 at 10:07

居然没有汉语报告bug,我来当第一个

What steps will reproduce the problem?
1.GameConqueror.py的第683行
原来是start_addr = max(addr - 1024, selected_region['start_addr'])
应改为
start_addr = max((addr | 15) - 15 - 1024, selected_region['start_addr'])
这样左边地址最后一位都是0了。
2.游戏数据锁定后,如果用户先退出游戏,就会导致无法正常
关闭修改器
解决方法:有2种。
a:每次循环锁定前,先检查一下游戏pid。
b:不每次循环检查游戏pid,但是锁定出错后异常代码里,自动
解除锁定!


3.热键呼出并且选定游戏pid问题?(玩家玩游戏,当前窗口肯
定是游戏窗口。因此只要获得聚焦的pid就是游戏pid。)
4.图形修改必须暂停游戏吧?我目前测试过魔法门7就无法修��
�,切换后只
要搜索游戏,就游戏挂。


What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?
我使用的是ubuntu10.04  2.6.32-33-generic
使用的修改器是目前最新的r239

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 18 Aug 2011 at 3:29

Enhancement: freeze

In some cases, I want to keep the value of a memory location the same.  For 
example, I'm playing a certain game and want to keep my health from dropping 
below 100.

Original issue reported on code.google.com by [email protected] on 25 Mar 2012 at 8:25

Never-ending error message

What steps will reproduce the problem?
Select process. Search for something that returns a result. Double click 
result. Edit result. Don't enter any information in the value section. Error 
pops up telling you to check out "help write". Click ok, it pops up again. 
Click ok, it pops up again. Etc etc.

What is the expected output? What do you see instead?
The error popping up only once. What happened was it kept popping up again and 
again when you press ok.

What version of the product are you using? On what operating system?
Latest version from the Launchpad repo, Ubuntu 10.10 x64

Original issue reported on code.google.com by [email protected] on 8 Jan 2011 at 4:49

Blank window

What steps will reproduce the problem?
1. Start GameConqueror.py with python 2.7

What is the expected output?
  To see the GameConqueror window
What do you see instead?
  A blank window

What version of the product are you using? 
  Trunk / GameConqueror 0.13
On what operating system?
  Gentoo Linux

The process takes 100% CPU.
There's no error output from the console.

Original issue reported on code.google.com by [email protected] on 21 Oct 2011 at 6:14

better process list dialog

a column for the filename of the process

full cmdline (current limited by the 'ps' command, don't know why)

icons?

filter by users

process tree

Original issue reported on code.google.com by [email protected] on 17 Mar 2011 at 11:02

Feature Request

First of all, nice program thumbs up & thank you!

It would be even more great if it would be possible to change more than one 
adress simultaneously.
It's very annoying to change 20+ adresses step by step to the same value...


What version of the product are you using? On what operating system?
0.12; Ubuntu 10.10

Please provide any additional information below.
-

Original issue reported on code.google.com by [email protected] on 18 Mar 2011 at 7:52

Distribution friendly

For example

On Fedora there is no gksu
beesu could be used as an alternative, but actually su is not necessary on 
Fedora

Original issue reported on code.google.com by [email protected] on 8 Jul 2011 at 3:16

GUI broke

What steps will reproduce the problem?
1. Install the latest update
2. search a value
3. try clicking a value and it will freeze

What is the expected output? What do you see instead?
when you click it is supposed to move to cheat list/change value

What version of the product are you using? On what operating system?
say's 0.11 but it is the latest as of today (20th of September 2010)

Please provide any additional information below.
please downgrade version or fix to fix

Original issue reported on code.google.com by [email protected] on 20 Sep 2010 at 11:30

Infinite error message loop

What steps will reproduce the problem?
1. open a process
2. freeze a random address
3. close process before closing GameConqueror


I tried to fix that issue, but no luck yet, hope you make better ;)

Btw, I tried the trunk version, I like the new value input (increased values, 
decreased values, ...) - I'm trying to add a graphical selection for that in 
the near future. 
The file consts.py is missing, is that purposely?


Original issue reported on code.google.com by [email protected] on 27 Nov 2011 at 8:00

Attachments:

0.08 Segfault

What steps will reproduce the problem?
1. ./scanmem --pid `pidof <something>`
2. dregion <any id>

What is the expected output? What do you see instead?
Killed by signal 11.

What version of the product are you using? On what operating system?
scanmem version 0.08, Gentoo Linux x86_64

Happy new year :)

Original issue reported on code.google.com by aparicio99 on 1 Jan 2010 at 8:24

data overwrite

When setting a byte (8-bit) variable, actually scanmem writes a 'long'
variable, which is word-size, resulting in overwriting other positions.

To reproduce this:
1. suppose you have a program such that you can change a value interactively
2. set the value to be 257 and search for 1 in scanmem
3. set the value to be 256 and search for 0 in scanmem
... repeat until only a few (probably 1) matches left
4. set the value to be 256 
5. execute 'set 1' in scanmem

expected result is the value is changed to 257, but actually it'll changed to 1

This happens in the svn version, but not in v0.07-7 in Ubuntu repository.


POSSIBLE LOCATION
the last few lines of setaddr() in ptrace.c
or those places where setaddr() is called

we need to read data from target process first, and play with bits (use
set_xxx functions?) before write it back



Original issue reported on code.google.com by [email protected] on 16 Dec 2009 at 10:16

Allow using "set" to modify byte arrays

You're forced to use "write" in order to write to byte arrays, but this makes 
it inconvenient to:

1. Edit a value the memory editor matched (you have to type the full address 
out)
2. Edit multiple values at once (you have to edit addresses you matched one at 
a time).

I suggest a syntax like this:

1> set 0={FF 00 00}
2> set 0,1={FF 00 00},{DE AD BE EF}

Basically, you specify the values of a single byte array with curly braces {}.

Original issue reported on code.google.com by [email protected] on 18 Sep 2010 at 5:16

Support for pointer following write

Not really a problem, but an enhancment. 
I wrote a patch to support pointer following for write.
As I had to change the syntax, I added it as "pwrite".

pwrite <addr> <type> <value>

does what the old "write" did.

pwrite <addr> ptr <offset> <type> <value>

follows a pointer at <addr>. Adds <offset> to the new address and writes there.

the "ptr <offset>" clause can be repeated multiple times.



Original issue reported on code.google.com by [email protected] on 21 Mar 2012 at 10:40

Attachments:

Can't edit bytearrays! Scanmem finds them, but can't edit them.

When I'm trying to edit a bytearray with the write-command, Scanmem does 
nothing (I'm running scanmem as root with the sudo command).

For example:
When I've searched for d0 4e e2 05 00, the program says:

Code:
    info: we currently have 7 matches.

But when I'm trying to change the addresses, my Scanmem don't even display an 
error message, it just displays an empty "7>" line. 

Code:
    7> write bytearray d04ee20500 02 02 02 02 02
    7>

I can change bytearrays inside of GameConqueror.
The reason why I'm not using the GUI GameConqueror, is that I've done a 
script/program with help of Scanmem.
Because of this problem, I've been forced to convert all bytearrays to int4. 
The script is working now, but it will be a huge job to update it again if I'm 
forced to convert all bytearrays to int4 again.

What version of the product are you using? On what operating system?
0.13-1~svn20110419r224-0ubuntu1 in Ubuntu 10.04 LTS (64-bit)

Is this only a problem with my operating system?


Original issue reported on code.google.com by [email protected] on 17 Aug 2011 at 4:39

GameConqueror cannot select process

What steps will reproduce the problem?
1. Launch GameConqueror from terminal
2. Click "Select a process" button
3. No action from the gui

What is the expected output? What do you see instead?
I expect to see a process list, instead I will get the following on the 
terminal:
$ sudo gameconqueror 
Traceback (most recent call last):
  File "/usr/local/share/gameconqueror/GameConqueror.py", line 409, in SelectProcess_Button_clicked_cb
    self.processlist_liststore.append([p[0], p[1][:50]]) # limit the length here, otherwise it may crash (why?)
IndexError: list index out of range

What version of the product are you using? On what operating system?
I've tried v0.11, installed from Ubuntu Software Center and compiled v0.12 on 
Ubuntu 10.10 (Linux u 2.6.35-25-generic-pae #44-Ubuntu SMP Fri Jan 21 19:01:46 
UTC 2011 i686 GNU/Linux)

Please provide any additional information below.
scanmem operates normally without the gui.

Original issue reported on code.google.com by [email protected] on 18 Feb 2011 at 3:26

Simple example worked in 0.07, work no more since 0.08

What steps will reproduce the problem?

Compile this minimal c++ program :

#include <iostream>

using namespace std;
int main(){
  int b=10;
  while(1){
    cout << " ->  b="<< b << endl;
    int tmp; cin >> tmp; // just to pause the execution
    b++;
  }
}


Run this program then inspect it with scanmem.
With 0.07, I have this session :

Please enter current value, or "help" for other commands.
0> 10
info: 01/11 searching  0x8049000 -  0x804a000...........ok
info: 02/11 searching 0xb747d000 - 0xb747f000...........ok
info: 03/11 searching 0xb75dc000 - 0xb75dd000...........ok
info: 04/11 searching 0xb75dd000 - 0xb75e0000...........ok
info: 05/11 searching 0xb75fc000 - 0xb75fd000...........ok
info: 06/11 searching 0xb7624000 - 0xb7625000...........ok
info: 07/11 searching 0xb770d000 - 0xb770e000...........ok
info: 08/11 searching 0xb770e000 - 0xb7715000...........ok
info: 09/11 searching 0xb7734000 - 0xb7737000...........ok
info: 10/11 searching 0xb7754000 - 0xb7755000...........ok
info: 11/11 searching 0xbff04000 - 0xbff1a000...........ok
info: we currently have 26 matches.
26> 11
info: we currently have 1 matches.
info: match identified, use "set" to modify value.
info: enter "help" for other commands.
1> watch 0
info: [10:00:17] monitoring 0xbff17cac for changes until interrupted...
info: [10:00:21] 0xbff17cac -> CSILfnz, 12
... etc ...


With 0.08 and higher the session is :

localhost[830]:scanmem-0.08> ./scanmem `pidof a.out`
scanmem version 0.08, Copyright (C) 2006-2009 Tavis Ormandy
scanmem comes with ABSOLUTELY NO WARRANTY; for details type `show warranty'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show copying' for details.

info: maps file located at /proc/31309/maps opened.
info: 6 suitable regions found.
Please enter current value, or "help" for other commands.
0> 10
info: 01/06 searching  0x8049000 -  0x804a000...........ok
info: 02/06 searching 0xb7554000 - 0xb7556000.ok
info: 03/06 searching 0xb76b4000 - 0xb76b7000.ok
info: 04/06 searching 0xb77e5000 - 0xb77ec000.ok
info: 05/06 searching 0xb780b000 - 0xb780e000.ok
info: 06/06 searching 0xbfdb5000 - 0xbfdcb000.ok
info: we currently have 5 matches.
5> 11
info: we currently have 0 matches.
0> 


I expect both versions to behave the same on such a simple test case.
Is there a bug in higer versions ?

And btw, thanks for this excellent piece of software !

Original issue reported on code.google.com by [email protected] on 15 Jan 2010 at 9:06

Unknown Initial Value

At this point this is getting quite silly, why isn't there an obvious command 
for an unknown inital value in scanmem, when it's implemented in GameConqueror? 
It should be as simple as typing in ?, as it is in GameConqueror, but nowhere 
in the scanmem help command or manpages does it mention anything of this.

An unknown initial value function should be a fundamental feature, when the 
value isn't clearly displayed (the majority of cases?). Please tell me that 
this is already implemented, and that this is just an issue of poor 
documentation.

Original issue reported on code.google.com by [email protected] on 25 Jul 2011 at 8:21

Error code

Now the frontend cannot understand the types of error from backend. bascially 
there are at least two types, fatal and non-fatal. 

An error code mechanism is necessary such that the frontend won't hang (or even 
display) due to a non-fatal error, and may quit or reset when a fatal error 
happens.

Original issue reported on code.google.com by [email protected] on 1 Jan 2011 at 6:41

String search problem

1. Select a process
2. Search for a string which will produce result
3. The results list is buggy, and application begin to use a lot of system's 
ressource.

Using Ubuntu 10.04
GameConqueror version: 0.11-1~svn20100516-0ubuntu1


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 31 Aug 2010 at 3:09

Cannot attach to process of applications packed with UPX.

What steps will reproduce the problem?
1. Attempt to attach to process of application packed with UPX.
2.
3.

What is the expected output? What do you see instead?
Attach to process.  Get message "failed to read executable link." instead.

What version of the product are you using? On what operating system?
All versions of scanmem.  Using Ubuntu 10.10.

Please provide any additional information below.
"/proc/<pid>/exe" becomes an invalid symlink when the application is packed 
using UPX.  scanmem is unable to "readlink" for these applications.

Original issue reported on code.google.com by [email protected] on 12 Jan 2011 at 12:04

GUI isn't installed when running make install with DESTDIR

What steps will reproduce the problem?
1. ./configure --enable-gui
2. make
3. mkdir tmp && make DESTDIR=tmp install
4. find tmp

What is the expected output? What do you see instead?
I expect to see the GUI (GameConqueror) somewhere in the directory
tmp, but instead I only see:

$ find tmp
tmp
tmp/usr
tmp/usr/local
tmp/usr/local/bin
tmp/usr/local/bin/scanmem
tmp/usr/local/share
tmp/usr/local/share/man
tmp/usr/local/share/man/man1
tmp/usr/local/share/man/man1/scanmem.1
tmp/usr/local/share/doc
tmp/usr/local/share/doc/scanmem
tmp/usr/local/share/doc/scanmem/README

What version of the product are you using? On what operating system?
Version 0.10 on Arch Linux.

Original issue reported on code.google.com by [email protected] on 12 Feb 2010 at 7:18

SyntaxError: invalid syntax

Seems to be an error in last 0.12 version

$ gameconqueror 
  File "/usr/share/gameconqueror/GameConqueror.py", line 654
    except IOError,e:
                  ^
SyntaxError: invalid syntax

Original issue reported on code.google.com by [email protected] on 26 Mar 2011 at 8:02

cannot select process

What steps will reproduce the problem?
1. start gameconqueror from terminal
2. click "Select a process" button
3. read error message from terminal

What is the expected output? What do you see instead?
I assume I was supposed to be able to select a process.
I just get an error in the terminal and nothing happens in the GUI.

What version of the product are you using? On what operating system?
I am using GameConqueror 0.11 with scanmem version 0.11. Operation system is 
Debian GNU/Linux (squeeze) amd64.

Please provide any additional information below.
Installed from repository. Scanmem itself works. Python is version 
2.6.6.

The terminal output including the error message follows:
natirips@nati-desk:~$ gameconqueror 
Traceback (most recent call last):
  File "/usr/share/gameconqueror/GameConqueror.py", line 406, in SelectProcess_Button_clicked_cb
    self.processlist_liststore.append([p[0], p[1][:50]]) # limit the length here, otherwise it may crash (why?)
IndexError: list index out of range

I have attached a screenshot of the window where I highlighted the only button 
that I pressed.

Original issue reported on code.google.com by [email protected] on 6 Feb 2012 at 5:49

Attachments:

Dumping to file does not write any data

When dumping a variable's contents to a newly created file with scanmem's
dump command, but nothing is written to it.

Steps to reproduce:
1. Isolate the address of a 32-bit integer variable with a known value
using scanmem.
2. Dump the value to a file with "dump <address> 4 /tmp/filedump".
3. Check the contents of /tmp/filedump. It will have been created if it
didn't already exist, but it will be empty.

I've reproduced this bug under Ubuntu 10.04 with both the x86 and x86_64
versions.

Original issue reported on code.google.com by [email protected] on 27 Apr 2010 at 10:12

Cannot search

What steps will reproduce the problem?
1. Choose process
2. Enter value
3. Click search button

What is the expected output? What do you see instead?
Expected: list of values? Instead I get two popup errors:
"Backend error:  failed to attach to #####, Operation not permitted"
"Backend error:  failed to search target address space."

What version of the product are you using? On what operating system?
Version: 0.11-1 on Ubuntu 10.10.

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 19 Dec 2010 at 4:55

Support writing into all matches

scanmem does not support automatically writing into all matches. Maybe 
something like "write <value_type> allmatches <value>"?

Original issue reported on code.google.com by [email protected] on 29 Nov 2011 at 12:06

  • Merged into: #23

Backend Error: Read Memory Fail

What steps will reproduce the problem?
1. target pid
2. search for int/string
3. click on result(s)

What is the expected output? What do you see instead?
I am supposed to be able to add it to my cheat list and overlook the results

What version of the product are you using? On what operating system?
Ubuntu Lucid, gameconqueror version 0.11

Please provide any additional information below.
in short, I target plugin-container (firefox), searhc for a string, click on a 
result and I get these two messages:

Backend Error: read memory fail
Cannot Access Target memory

then all the text just messes up. 

Original issue reported on code.google.com by [email protected] on 4 Dec 2010 at 10:40

Patch for bug 35

Patch checks if process is still running (if /proc/PID exists). If not, it will 
break both 'for' loops and run self.clear().
This patch fixes bug 35.
os.path don't have to be imported, because 'os' is already.

Please make sure your code is python3 compatible (just the syntax, not the gtk 
thing): e.g. print('') instead of print ''.

Original issue reported on code.google.com by [email protected] on 28 Nov 2011 at 12:58

Attachments:

Enhancement: Unknown initial value

Is there currently an option to search for an unknown initial value?  I don't 
see anything in help, and "reset" "<" tells me "error: cannot use that search 
without matches".  If I try to start scanning with "!= 0", scanmem exits:
0> != 0
info: 01/21 searching  0x80de000 -  0x80e8000.scanmem: scanroutines.c:83: 
scan_routine_INTEGER8_CHANGED: Assertion `old_value' failed.
error: 
Killed by signal 6.
$

Original issue reported on code.google.com by [email protected] on 25 Mar 2012 at 8:01

Support for array dump

What steps will reproduce the problem?
1. use a game with an array/vector of an unit class in memory 
2. imagine that you don't want to make opponents immortal
3. you need to compare the elements in order to find out the differences
4. if you have many units, the "dump" command isn't flexible enough

What is the expected output? What do you see instead?
- many binary files with a single array element inside
- only the dump of a single file is possible

What version of the product are you using? On what operating system?
- 0.12, OpenSuse 11.4 x86_64

Please provide any additional information below.
- I've created a patch on scanmem 0.12 which introduces the "dumparr" command
- the output files can be converted e.g. with "xxd" and then compared with a 
diff tool (e.g. "meld")
- I've tested the "dumparr" command with the game "Magic & Mayhem"


Original issue reported on code.google.com by [email protected] on 2 Jul 2012 at 7:30

Attachments:

Writing of values is broken

What steps will reproduce the problem?
1. Run a program and locate a match
2. set 1

What is the expected output?

scanmem should set the match to the value of 1 as an integer
What do you see instead?

20> 4
info: we currently have 3 matches.
3> set 1
info: setting *0xbfff90a8 to 3f800000...
info: setting *0xbfff9404 to 3f800000...
info: setting *0xbfff947c to 3f800000...

What version of the product are you using? On what operating system?

SVN revision 167. Linux, x86, gcc (GCC) 4.4.3 20100316 (prerelease)

Please provide any additional information below.

Experimentation shows that if you take a C language float of value 1.0, its 
in-memory representation is 3f800000. Therefore it appears that scanmem is 
interpreting the 1 in my "set 1" as a float, which is clearly unintuitive, 
if not a bug.

Original issue reported on code.google.com by [email protected] on 28 Apr 2010 at 8:54

Cannot search for a value while there's something in the cheat list

What steps will reproduce the problem?
1. search for a variable until you got something
2. save the address and save it to the cheat list
3. reset and scan again, gameconqueror will freeze

The reason is (or might be) the data_worker will try to read a new data
periodically, even when searching. Therefore we'll have two command sent to
the backend at the same time, while the backend (the backend object in
GameConqueror) cannot handle parallel commands.

May need a lock, or a variable for this.

Original issue reported on code.google.com by [email protected] on 4 May 2010 at 5:00

Feature request: New search features

Many common memory scanning tools on Windows have features that are similar to:

* Search for all values in memory
* Has value increased, decreased, or stayed the same
* Keep searching until you find it

These features might be very helpful, as people may not always know the exact 
value to search for.

Original issue reported on code.google.com by [email protected] on 14 Jan 2011 at 8:36

A lot of memory use when multiple searchs are performed

What steps will reproduce the problem?
1. Start a new scan and keep scanning until you find what you where looking for
2. Repeat step 1 many times

What is the expected output? What do you see instead?
Each time a new scan is started, memory usage is increased, but never 
decreases. Probably memory is not released correctly when a new scan is started

What version of the product are you using? On what operating system?
Version used: 0.11 on Ubuntu 10.04 (64 bit)

Please provide any additional information below.
Maybe it will be easier to notice the memory increase when scanning a high 
memory using game. I tried with "Battle for Wesnoth"

Original issue reported on code.google.com by [email protected] on 11 Aug 2010 at 12:16

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.