Skip to content

Commit 2e844f5

Browse files
committed
v0.3
1 parent 6fd9b75 commit 2e844f5

File tree

16 files changed

+236
-213
lines changed

16 files changed

+236
-213
lines changed

ChangeLog

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,17 @@
4646
- Change search_value(). First get a block memory, then compare the content
4747
by the type.
4848
- v0.2 release.
49+
50+
# 2005-08-11 Alf <h980501427@hotmail.com>
51+
- Change unsigned int to unsigned long. Type int under 32-bit and 64-bit
52+
paltform is 32-bit length, long is same bit-length with platform. Modify
53+
all the places which use GUINT_TO_POINTER macro. Under 64-bit platform,
54+
pointer is 64-bit length. For 64-bit compatibility.
55+
- Change cheater->value type to guint64;
56+
- Change ADDRESS_COLUMN, using GTYPE_ULONG.
57+
- Change spin_button to text_entry for accept hexadecimal number.
58+
- Rename str2uint() to str2u64(), convert string to MAX supported number.
59+
- Enable uint64 type.
60+
61+
# 2005-08-12 Alf <h980501427@hotmail.com>
62+
- v0.3 release.

README

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ under my i386 GNU/Linux. If you have any suggestion or problem under other
77
platform, please email to me. Thanks.
88

99
Requirements:
10-
1. Linux-2.6.6
10+
1. Linux-2.6
1111
2. Glib-2.6 (with gthread).
1212
3. Gtk+-2.6
1313
4. Libglade-2.4

README.zh_CN.UTF8

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,30 @@
11
休息不好就不可能工作好,偶尔打打游戏,可是GNU/Linux下游戏真是少啊。
22

3+
如果你是电脑高手的话,那么用gdb (The GNU Debugger) 吧,比这个功能强大多了。
4+
35
这一阵子在用dosbox玩一些老游戏,没有修改器玩的真是辛苦。怎么原来的游戏大多要练级? 不爽!
4-
郁闷。。。。。。 于是写了一个修改器,帮助我迅速通关。哈哈。 ^_^
6+
郁闷。。。。。。 gdb用起来太复杂。于是写了一个修改器,帮助我迅速通关。哈哈。 ^_^
57

68
这个修改器还很初级,没有什么人性化的设计。 我想没有帮助也能使用吧。先选择你要修改的进程,双击
79
对应的列。在新的对话框里输入你要查找的数据类型和数值。在数值输入框上按回车开始搜索。状态栏会报告
810
有多少命中的数据。但是只显示前面8个地址。重复搜索后找到你希望更改的地址后双击填入新的数值。好运。
911

10-
由于我对GTK+的了解不是非常深入,也是为了图快,都用GtkTreeView来显示数值,没有设计什么
11-
对象,结构之类的。如果你有好的建议,可以给我 email,告诉我,我尽量改进。或者你写了一个更好的,
12-
那么请告诉我,我也要用。
12+
为了图省事,都用GtkTreeView来显示数值。在搜索的过程中也没有设计什么对象,结构之类的。就是用
13+
个单链表来存储内存地址。而且现在也没有获得精确的进程所使用的内存的范围,所有/proc/pid/maps里面
14+
的地址可读写的都扫描了一遍。等有时间好好看看gdb代码,看看是否有帮助。如果你这方面的知识,或者有
15+
好的建议,可以给我 email,告诉我,我尽量改进。或者你写了一个更好的程序,那么请告诉我,我也要用。
1316

14-
数据类型是要查找的数据在机器中的长度,都是无符号的整数,浮点数(游戏中很少用)暂时还不支持。
15-
如果是32-bit机器,64位查找暂时没弄(用64位数的游戏数据也不多)。这个查找也不是全内存搜索,
16-
它读取/proc/pid/maps文件,只搜索可读写的部分,另外库文件的内存和设备文件的内存不扫描。扫描
17-
时按照数据类型来处理。如果是uint16,就两个字节(一个字节8-bit,char类型)两个字节的扫描。
17+
数据类型是要查找的数据在机器中的长度,要求输入的查找数值都是无符号的整数。这个查找也不是全内存
18+
搜索,它读取/proc/pid/maps文件,只搜索可读写的部分,另外库文件的内存和设备文件的内存不扫描。
19+
扫描时按照数据类型来处理。如果是uint16,就两个字节(一个字节8-bit,char类型)两个字节的扫描。
1820
如果你要找的数据是以奇地址开始的,那么很不幸的将被略过。一个十六位的数据存在奇数地址上,这种情
1921
况非常少。还有如果是模拟器游戏,可能模拟的CPU数据字节位序和你的机器不一样。我的X86是
2022
little-endian,如果模拟器的存储是big-endian。那么大于8-bit的内存表示的数值是不同解释的。
2123

22-
修改器还很弱,如果你找不到数据的话,请先检查数据类型是否选择正确,一般只有DOS游戏是16位的,
23-
现在以32位为主,8位的更少了。然后判断是否是浮点数?是的话就不要用这个程序来改了。如果是模拟器
24-
游戏,你知道字节位序和你的机器不一样,你可以把数值变成16进制表示,按uint8来搜索其中一个字节,
25-
找到的话再用内存编辑修改对应地址的内容,对以上描述不清楚的不要使用这种方法。
26-
27-
编辑内存的时候要小心。由于用字符串来显示内存,回写的时候我没有限制输入,如果格式不是两个十六
28-
进制字符一组,中间有空格的话,那么更新到内存中的数据肯定不是你希望的。小心!小心!以防万一,
29-
存档先。还是一次只查找一个数据,用对话框更新比较安全。
24+
负数和浮点数搜索其实也可以实现,不过这要你有一定的计算机知识了。实际上搜索的实质就是在内存中
25+
的数据和你要求的数据的比较。如在x86上的int类型是32-bit长。如果你想搜索-1,其实32-bit的-1和
26+
4294967295(0xFFFFFFFF)在内存中是一样的,只是解释不同而已。那么你搜索4294967295等于搜索-1。
27+
同理,你知道浮点数的表示方法的话,也可以转成整形数来搜索。只是要小心精度。
3028

3129
我的邮箱是h980501427@hotmail.com,欢迎来信指导。不过上网对我来说现在还不是很随意。惨啊!
3230
如不能及时回复,请见谅。

configure

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/sh
22
# Guess values for system-dependent variables and create Makefiles.
3-
# Generated by GNU Autoconf 2.59 for gamecheater 0.2.
3+
# Generated by GNU Autoconf 2.59 for gamecheater 0.3.
44
#
55
# Report bugs to <h980501427@hotmail.com>.
66
#
@@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
269269
# Identity of this package.
270270
PACKAGE_NAME='gamecheater'
271271
PACKAGE_TARNAME='gamecheater'
272-
PACKAGE_VERSION='0.2'
273-
PACKAGE_STRING='gamecheater 0.2'
272+
PACKAGE_VERSION='0.3'
273+
PACKAGE_STRING='gamecheater 0.3'
274274
PACKAGE_BUGREPORT='h980501427@hotmail.com'
275275

276276
ac_unique_file="src/gamecheater.c"
@@ -792,7 +792,7 @@ if test "$ac_init_help" = "long"; then
792792
# Omit some internal or obsolete options to make the list less imposing.
793793
# This message is too long to be a string in the A/UX 3.1 sh.
794794
cat <<_ACEOF
795-
\`configure' configures gamecheater 0.2 to adapt to many kinds of systems.
795+
\`configure' configures gamecheater 0.3 to adapt to many kinds of systems.
796796
797797
Usage: $0 [OPTION]... [VAR=VALUE]...
798798
@@ -854,7 +854,7 @@ fi
854854

855855
if test -n "$ac_init_help"; then
856856
case $ac_init_help in
857-
short | recursive ) echo "Configuration of gamecheater 0.2:";;
857+
short | recursive ) echo "Configuration of gamecheater 0.3:";;
858858
esac
859859
cat <<\_ACEOF
860860
@@ -977,7 +977,7 @@ fi
977977
test -n "$ac_init_help" && exit 0
978978
if $ac_init_version; then
979979
cat <<\_ACEOF
980-
gamecheater configure 0.2
980+
gamecheater configure 0.3
981981
generated by GNU Autoconf 2.59
982982
983983
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -991,7 +991,7 @@ cat >&5 <<_ACEOF
991991
This file contains any messages produced by compilers while
992992
running configure, to aid debugging if configure makes a mistake.
993993
994-
It was created by gamecheater $as_me 0.2, which was
994+
It was created by gamecheater $as_me 0.3, which was
995995
generated by GNU Autoconf 2.59. Invocation command line was
996996
997997
$ $0 $@
@@ -1634,7 +1634,7 @@ fi
16341634
16351635
# Define the identity of the package.
16361636
PACKAGE=gamecheater
1637-
VERSION=0.2
1637+
VERSION=0.3
16381638
16391639
16401640
cat >>confdefs.h <<_ACEOF
@@ -3878,12 +3878,12 @@ echo $ECHO_N "checking for DEPS... $ECHO_C" >&6
38783878
38793879
if test -n "$PKG_CONFIG"; then
38803880
if test -n "$PKG_CONFIG" && \
3881-
{ (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0\"") >&5
3882-
($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0") 2>&5
3881+
{ (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0 >= 2.4\"") >&5
3882+
($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0 >= 2.4") 2>&5
38833883
ac_status=$?
38843884
echo "$as_me:$LINENO: \$? = $ac_status" >&5
38853885
(exit $ac_status); }; then
3886-
pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0" 2>/dev/null`
3886+
pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0 >= 2.4" 2>/dev/null`
38873887
else
38883888
pkg_failed=yes
38893889
fi
@@ -3892,12 +3892,12 @@ else
38923892
fi
38933893
if test -n "$PKG_CONFIG"; then
38943894
if test -n "$PKG_CONFIG" && \
3895-
{ (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0\"") >&5
3896-
($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0") 2>&5
3895+
{ (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0 >= 2.4\"") >&5
3896+
($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0 >= 2.4") 2>&5
38973897
ac_status=$?
38983898
echo "$as_me:$LINENO: \$? = $ac_status" >&5
38993899
(exit $ac_status); }; then
3900-
pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0" 2>/dev/null`
3900+
pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0 >= 2.4" 2>/dev/null`
39013901
else
39023902
pkg_failed=yes
39033903
fi
@@ -3906,18 +3906,18 @@ else
39063906
fi
39073907
39083908
if test $pkg_failed = yes; then
3909-
DEPS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0"`
3909+
DEPS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0 >= 2.4"`
39103910
# Put the nasty error message in config.log where it belongs
39113911
echo "$DEPS_PKG_ERRORS" 1>&5
39123912
3913-
{ { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0) were not met.
3913+
{ { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0 >= 2.4) were not met.
39143914
Consider adjusting the PKG_CONFIG_PATH environment variable if you
39153915
installed software in a non-standard prefix.
39163916
39173917
Alternatively you may set the DEPS_CFLAGS and DEPS_LIBS environment variables
39183918
to avoid the need to call pkg-config. See the pkg-config man page for
39193919
more details." >&5
3920-
echo "$as_me: error: Package requirements (gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0) were not met.
3920+
echo "$as_me: error: Package requirements (gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0 >= 2.4) were not met.
39213921
Consider adjusting the PKG_CONFIG_PATH environment variable if you
39223922
installed software in a non-standard prefix.
39233923
@@ -7038,7 +7038,7 @@ _ASBOX
70387038
} >&5
70397039
cat >&5 <<_CSEOF
70407040
7041-
This file was extended by gamecheater $as_me 0.2, which was
7041+
This file was extended by gamecheater $as_me 0.3, which was
70427042
generated by GNU Autoconf 2.59. Invocation command line was
70437043
70447044
CONFIG_FILES = $CONFIG_FILES
@@ -7101,7 +7101,7 @@ _ACEOF
71017101
71027102
cat >>$CONFIG_STATUS <<_ACEOF
71037103
ac_cs_version="\\
7104-
gamecheater config.status 0.2
7104+
gamecheater config.status 0.3
71057105
configured by $0, generated by GNU Autoconf 2.59,
71067106
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
71077107

configure.in

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
# Process this file with autoconf to produce a configure script.
33

44
PACKAGE=gamecheater
5-
VERSION=0.2
5+
VERSION=0.3
66
EMAIL=h980501427@hotmail.com
77

8-
AC_INIT(gamecheater, 0.2, h980501427@hotmail.com)
9-
AM_INIT_AUTOMAKE(gamecheater, 0.2)
8+
AC_INIT(gamecheater, 0.3, h980501427@hotmail.com)
9+
AM_INIT_AUTOMAKE(gamecheater, 0.3)
1010
AM_CONFIG_HEADER([config.h])
1111
AM_MAINTAINER_MODE
1212

@@ -19,7 +19,7 @@ AC_PROG_CC
1919
AM_PROG_CC_STDC
2020

2121
# Checks for pkg-config.
22-
PKG_CHECK_MODULES(DEPS, gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0)
22+
PKG_CHECK_MODULES(DEPS, gtk+-2.0 >= 2.6 gthread-2.0 >= 2.6 libglade-2.0 >= 2.4)
2323
AC_SUBST(DEPS_CFLAGS)
2424
AC_SUBST(DEPS_LIBS)
2525

glade/input.glade

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,16 +96,16 @@
9696
</child>
9797

9898
<child>
99-
<widget class="GtkSpinButton" id="spinbutton">
99+
<widget class="GtkEntry" id="entry">
100100
<property name="visible">True</property>
101101
<property name="can_focus">True</property>
102-
<property name="climb_rate">1</property>
103-
<property name="digits">0</property>
104-
<property name="numeric">True</property>
105-
<property name="update_policy">GTK_UPDATE_ALWAYS</property>
106-
<property name="snap_to_ticks">False</property>
107-
<property name="wrap">False</property>
108-
<property name="adjustment">1 0 1.84467440737e+19 1 100 100</property>
102+
<property name="editable">True</property>
103+
<property name="visibility">True</property>
104+
<property name="max_length">0</property>
105+
<property name="text" translatable="yes"></property>
106+
<property name="has_frame">True</property>
107+
<property name="invisible_char">*</property>
108+
<property name="activates_default">False</property>
109109
</widget>
110110
<packing>
111111
<property name="padding">8</property>

glade/search.glade

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -260,16 +260,16 @@
260260
<property name="is_important">False</property>
261261

262262
<child>
263-
<widget class="GtkSpinButton" id="spin">
263+
<widget class="GtkEntry" id="entry">
264264
<property name="visible">True</property>
265265
<property name="can_focus">True</property>
266-
<property name="climb_rate">1</property>
267-
<property name="digits">0</property>
268-
<property name="numeric">True</property>
269-
<property name="update_policy">GTK_UPDATE_ALWAYS</property>
270-
<property name="snap_to_ticks">False</property>
271-
<property name="wrap">False</property>
272-
<property name="adjustment">1 0 1.84467440737e+19 1 100 100</property>
266+
<property name="editable">True</property>
267+
<property name="visibility">True</property>
268+
<property name="max_length">0</property>
269+
<property name="text" translatable="yes"></property>
270+
<property name="has_frame">True</property>
271+
<property name="invisible_char">*</property>
272+
<property name="activates_default">False</property>
273273
</widget>
274274
</child>
275275
</widget>

po/gamecheater.pot

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,37 @@ msgid ""
88
msgstr ""
99
"Project-Id-Version: PACKAGE VERSION\n"
1010
"Report-Msgid-Bugs-To: \n"
11-
"POT-Creation-Date: 2005-08-10 16:18+0800\n"
11+
"POT-Creation-Date: 2005-08-12 02:21+0800\n"
1212
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414
"Language-Team: LANGUAGE <LL@li.org>\n"
1515
"MIME-Version: 1.0\n"
1616
"Content-Type: text/plain; charset=CHARSET\n"
1717
"Content-Transfer-Encoding: 8bit\n"
1818

19-
#. g_object_set(G_OBJECT (renderer), "font", "MonoSpace", NULL);
20-
#: src/editor.c:160 src/search.c:68
19+
#: src/editor.c:160 src/search.c:67
2120
msgid "MEMORY ADDRESS"
2221
msgstr ""
2322

2423
#: src/editor.c:176
2524
msgid "MEMORY CONTENT"
2625
msgstr ""
2726

28-
#: src/gamecheater.c:163
27+
#: src/gamecheater.c:172
2928
msgid "My process ID"
3029
msgstr ""
3130

32-
#: src/gamecheater.c:173
31+
#: src/gamecheater.c:182
3332
msgid "My process name"
3433
msgstr ""
3534

36-
#: src/gamecheater.c:356
35+
#: src/gamecheater.c:365
3736
msgid ""
3837
"A Game Cheater Program. Just for fun.\n"
3938
"It use \"ptrace\" system call to search and edit memory"
4039
msgstr ""
4140

42-
#. g_object_set(G_OBJECT (renderer), "font", "MonoSpace", NULL);
43-
#: src/search.c:80
41+
#: src/search.c:79
4442
msgid "MEMORY PREVIEW"
4543
msgstr ""
4644

po/zh_CN.gmo

0 Bytes
Binary file not shown.

po/zh_CN.po

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,43 +4,41 @@
44
#
55
msgid ""
66
msgstr ""
7-
"Project-Id-Version: gamecheater 0.1\n"
7+
"Project-Id-Version: gamecheater 0.3\n"
88
"Report-Msgid-Bugs-To: \n"
9-
"POT-Creation-Date: 2005-08-10 16:18+0800\n"
10-
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
9+
"POT-Creation-Date: 2005-08-12 02:21+0800\n"
10+
"PO-Revision-Date: 2005-08-12 02:21+0800\n"
1111
"Last-Translator: Alf <h980501427@hotmail.com>\n"
1212
"Language-Team: LANGUAGE <LL@li.org>\n"
1313
"MIME-Version: 1.0\n"
1414
"Content-Type: text/plain; charset=UTF-8\n"
1515
"Content-Transfer-Encoding: 8bit\n"
1616

17-
#. g_object_set(G_OBJECT (renderer), "font", "MonoSpace", NULL);
18-
#: src/editor.c:160 src/search.c:68
17+
#: src/editor.c:160 src/search.c:67
1918
msgid "MEMORY ADDRESS"
2019
msgstr "内存地址"
2120

2221
#: src/editor.c:176
2322
msgid "MEMORY CONTENT"
2423
msgstr "内存数据"
2524

26-
#: src/gamecheater.c:163
25+
#: src/gamecheater.c:172
2726
msgid "My process ID"
2827
msgstr "我的进程ID"
2928

30-
#: src/gamecheater.c:173
29+
#: src/gamecheater.c:182
3130
msgid "My process name"
3231
msgstr "我的进程名称"
3332

34-
#: src/gamecheater.c:356
33+
#: src/gamecheater.c:365
3534
msgid ""
3635
"A Game Cheater Program. Just for fun.\n"
3736
"It use \"ptrace\" system call to search and edit memory"
3837
msgstr ""
3938
"一个游戏作弊器。 娱乐娱乐。\n"
4039
"使用 \"ptrace\" 系统调用来查找和编辑内存"
4140

42-
#. g_object_set(G_OBJECT (renderer), "font", "MonoSpace", NULL);
43-
#: src/search.c:80
41+
#: src/search.c:79
4442
msgid "MEMORY PREVIEW"
4543
msgstr "内存快照"
4644

0 commit comments

Comments
 (0)