游戏修改程序是什么原理?
21182
通用内存修改器,金山游侠、FPE、GM等等。这一类属于内存修改,也就是动态修改,原理就是游戏跟程序一样,运行的时候需要内存来处理数据,通过查找游戏内存中的数据变化,锁定或改变这些发生变化的地址的数值。但是很多时候不能关闭修改器,游戏的内存是不停变化的,一旦失去修改器的锁定就有可能回复到修改之前的数值。
比如一个游戏的金钱是300,就在修改器里搜索300,得到一堆地址,这些就是游戏在内存中运行的地址。增加或减少金钱后再搜索,地址就会变少,这是修改器在排除没有发生变化的内存地址。多搜索几次往往就会剩下极少数地址,这些有很大就是金钱地址了,锁定就OK了。
而很多高手都会针对某个游戏编写修改器,针对型的修改器分为动态和静态两种,动态的通用的差不多,但是针对性的把这个游戏需要的数据数值都写好了,不用玩家再辛苦找数据了。静态的就是针对游戏本身的文件进行修改了,也是写好数据的,这会修改到游戏文件。有修改存档的,有修改游戏主程序的,通常修改后的效果是永久的。...
21182
只要不是网络的 你到网络上找个无病毒版的金山游侠5 然后打开再进游戏搜索你要改的数字 都有说明 大家都认识汉字哈~~~...
17450
先看网站是否能拿下管理权限,有了权限才能修改数据库的主库和备份库啊...
13741
恩,最近开始修改游戏,有了一点自己的体会和心得,当然要感谢kim,yy,sofy,小召等人的帮助和指点,这篇文章也来之不易,共写了两次,同样的字打了两片……汗……
看过众多高手的文章,觉得都有点偏向于复杂化和深奥化,这里我尽量写的简单一点,大家也好明白的快一点,好了废话不多说,直奔主题(这么多废话,拖出去砍了)狂汗…………
对于修改来说,首先要备齐工具,这里推荐winhex(16位进制编辑器)ultraedit,Java源代码反编译专家,当然还有你的手机所对应的模拟器,至于java环境一类的你也可以选装,我现在没有装。
首先,我们先来看看一般情况下的全屏解决的问题,对于阿尔卡特ot735i的手机来说,受着黑条的痛苦很久了(什么是黑条??就是游戏时屏幕下方的黑黑的一条,moto c650等一些机子也有这种情况,对此,可以直接用fulljava来处理,735i注意调成128*128的哦^-^
然后,我们再来看看关于中文字体的显示问题,这点在于735i和三星x108/x608中尤为明显,这点winfy和其他高手也都说过了,在这里我简单的说一下就行了(对了,关于字体,主要是游戏调用了小号字体的缘故,而735i和三星用的是中号字体,而且无法和moto一样自动调用中号字体,所以一般的中文游戏都没有任何显示……)
在修改时,一般就针对于getfont(0,0,8)就可以了,那些使用getfont(0,0,16),getfont(32,0,8)一类的游戏大致也差不多主要的差异也就是在16位进制的转换上有所不同……
在开始时,打开游戏jar文件,从第一个class文件开始,挨个打开,在里面查找getfont或者getfong(0,0,8),在找到后,看一下getfont的位置,大概记一下,改完后在来看看有些什么变化,注意,多看看程序的习惯要养成!^_^
之后把有getfont的class拉到jar文件之外,用winhex打开,在搜索中点击查找16位进制数……,一般情况下(getfont(o,o,8)时)输入1008(其他的也只是改了最后的数字8,自己也可以推一下),将其改为1000即可,成功后,看一下程序,然后就传回jar文件,之后用模拟器试一下就行了。
这里有史库比2的修改对比图,注意,有些模拟器上可以显示小号字体,但是并不代表手机可以!比如我的就是……汗
之后我们再来看看按键的修改,一般情况下,按键的修改方法都是大同小异的,在我改过的游戏中一般遇到的有if 和 case情况,这两种情况呢,又以if 较为简单,他不用太多的东西就可以轻松实现,所以也是我们最喜欢碰到的情况,呵呵,关于if语句,主要方法和改字体一样,搜索查找,用winhex修改,不过对应的就是faa0和f9a0了,将其修改为所对应的按键就行了,为什么是fa,f9呢?
大家往下看:
阿尔卡特557/556moto c系列 诺基亚: 阿尔卡特ot735i moto v300以后的机型
按键 键值 16进制值 按键 键值 16进制值 按键 键值 16进制值 键名
左软键 -21 EB 左软键 -6 FA 左软键 21 15 soft1
右软键 -22 EA 右软键 -7 F9 右软键 22 16 soft2
上方向键 -1 FF 上方向键 -1 FF 上方向键 1 01 up
左方向键 -2 FE 左方向键 -3 FD 左方向键 2 02 left
下方向键 -6 FA 下方向键 -2 FE 下方向键 6 06 down
右方向键 -5 FB 右方向键 -4 FC 右方向键 5 05 right
action(735i)/ok: 20 14 select
其他的数字键手机上都一样,具体如下:
键值 16进制值 键名
0键 48 30 num0
1键 49 31 num1
2键 50 32 num2
3键 51 33 num3
4键 52 34 num4
5键 53 35 num5
6键 54 36 num6
7键 55 37 num7
8键 56 38 num8
9键 57 39 num9
*键 42 2A star
#键 35 23 pound
大家只需将查到的键改为想要的就行了,而我们一般只要改左右的软键就行了,所以一般都先搜索fa a0 ,这个语句反过来就是表示if i==-6 的意思,大家看程序就是看这个!!当然要s40的游戏才是这样的,如果改其他按键,只要替换相应的代码就行了,比如我要把557游戏的左软键改为735i的,在class中搜-21 或者 keypressed(调用按键的命令),,找到后,用winhex查eba0,然后替换成15ao就行了,关于if的修改kim作了非常详尽的文章在557的帖子里,大家可以参考一下!
这里,我在说说case的方法,其实我也是刚接触case,开始的时候弄了半天不明白,一头雾水……在那里狂汗不已……还好群里的高手yy他们对我是非常的耐心的解释,才勉强搞定。这里大家要多想想,多思考一下,硬来是没有什么好下场的……我第一次改的case游戏弄了好几个小时还是错误……汗ing……
首先,大家顺被一些第三方的软件比如记事本,word之类的,呆会儿有用,先打开。
当然你的先判断一下是诺机鸭的还是其他的游戏,比如鸭机的就是左软为-6,右软为-7,moto和卡记等的就是-21,-22,这个比较重要,要自己在class中判断方法就是查找……汗(最烦琐却最实用)……
之后要注意你所找到的-6 -7或-21 -22 的位置,记清楚了,改完回来在看看这里的变化!!
来不及找个好例子,就这样说好了,因为之前的另一个游戏road to riches还有其他的问题,不便作为范例,我手里有没有多余的游戏……
好,继续,现在我们用winhex打开你所确认的那个class,查找ff ff ff f9或者ff ff ff fa,一般光标会停在你所找到的
第一个fff语句,注意他前面的7个0和数字x,即00 00 00 0x,这里x是多少,表示后面有多少个组,所谓组,是我取的名字,便于理解而已,大家想叫什么都行,而组共有16个代码,一般形式为xx xx xx xx xx xx xx xx,而每8个代码为一个小组,每个小组内的顺序不可以打乱!!注意!!
这里大家看看这就是要找的数据!
00 00 00 02 /ff ff ff fa 00 00 xx xx / xx xx xx xx xx xx xx xx/
分组就是这样分的,前面的0000最好保留一起用!
好,在winhex里找到后(就是先搜索出来的)用鼠标把你刚才找的16位代码圈出来,现在就点击工具栏的编辑--全部复制--16位进制数值,点了后把winhex最小化,在事先准备好的记事本(word)里粘贴两次,(其中一个作为对照用,另外,此后还要用!小心不要搞混了,放在哪里不管)
好了,现在对照前面的各机型的按键16位数值进行修改了!是在记事本中哦^_^
具体的操作是,比如说这种代码,
00 00 00 02 /ff ff ff fa 00 00 xx xx / xx xx xx xx xx xx xx xx/,直接用00 00 00 xx代替,这里的xx代表你所要改的键值,一般就是你的左右软键的值(16位的哦),记住不要改反了,否则游戏中你的左右键就是反的,记住这里只替换ff ff ff fa或者ff ff ff f9因为只替换左右软键,将这两个替换为00 00 00 xx就行了,之后在为刚替换的数据排序!!!
重要!!比如:
改后:00 00 00 03 / 00 00 00 16/xx xx xx xx /00 00 00 15/yy yy yy yy/zz zz zz zz/zz zz zz zz
这个需要将00 00 00 16/xx xx xx xx与00 00 00 15/ yy yy yy yy
整体对换00 00 00 03 / 00 00 00 15/yy yy yy yy/00 00 00 16/xx xx xx xx /zz zz zz zz/zz zz zz zz即这个样子……后面的xx yy zz一类的东东大家可以看看,不要动啊,还有这里的‘/’符号是为了让大家看的清楚而画的,真正改的时候不能有的啊
好了,第一步完了,
接下来,打开ue即ultraedit,点击 搜索--替换,这是会有一对话框弹出(有点说的多了……不过,这里很容易出错……而且一错就完了),在查找栏把你之前的对照用的数据复制贴上去,记住在数据的最后面不能有空格,仔细检查,替换栏就贴上你改好的数据,注意鼠标此时最好在点一下ue中class文件的左上方,因为ue是从上往下搜的,之后直接点替换,成功后保存,在到winhex里去,之前是最小化,先在会有一对话框提升你更新数据,点‘是’。然后重复操作……这个class里面改完了,就改下一个,知道把你所有确定的有case -6 /-7或者case -21 /-22的class改完……
汗……
繁重的体力和脑力还有眼力活……
一般熟练后在10分钟类全部搞定,大家多多努力……
改完后打开改过的class文件看看,顺便还可以查查你该好的数据,一般情况下(好象没有特殊吧),原来的的诸如case-6 -7 都成了你改的 case xx了
呵呵,传回你的jar文件,试着运行一下,应该是ok吧!
最后,在给大家说说游戏的名字修改,这个好象三星的同志说过的,其实我的方法很简单的,注意,不是在游戏中,是在手机上的名字显示,一般都是为英文的吧,呵呵,其实你打开jar里面会有一个meta-inf文件夹,打开,然后把里面的唯一的文件manifest.mf拖到外面,随便你放在哪儿,只要你找的到,我一般就放在桌面,好了,在桌面上打开manifest.mf,有很多的东东,很多都是没有用的,而且里面的有些东西反而阻止了一部分游戏的运行!!我就经常遇到这种情况,具体必要的东西如下
Manifest-Version:
MicroEdition-Configuration:
MicroEdition-Profile:
MIDlet-1:
这些是必须要的,删了好象游戏就不能用了!!(应该是吧,反正我没有试过),还有三个一般也保留
MIDlet-Name:(这个就是手机上的名字显示,你写什么就显示什么)
MIDlet-Version:(版本)
MIDlet-Vendor:(附加信息,你可以写个本人修改之类的东西)
除了name,和vender,其他的最好不改,而剩余的东西一个字:删!
改好后点击:文件--另存为,什么都不变,只是把格式改为utf-8,保存,在传回jar的meta-inf,覆盖原来的manifest.mf
试试,你们的一些以前不能运行的游戏是不是可以了?
呵呵,那些由于机能原因而不能运行的游戏大家就不要在想了,一般这样改了还是不能用的游戏,还有三种途径解决:
一,彻底修改游戏的程序,使之对应自己的手机,一般人……狂汗……,
二,买部新的手机……
三,放弃这个游戏…...
10055
你好,其实我也有这个好奇心。我曾经也试图修改过网游的属性,表面上看成功了,但是实际却没有。
下面教你怎么修改, 主要有几种工具,它们的原理都是一样的,就是查找本地电脑内存,确定内存地址后修改。 最经典的就是金山游侠v 修改器。全中文一看就会,主要原理是这样的,先确定要找的参数,比如HP值为1000那么就 输入1000查找,结果当然会搜到很多,返回游戏使其HP值减少,比如只有800,呼出修改器查找800,如此类推,最后会只有一个数值,那个就是我们所需要的。直接修改就行。大部分修改器的方法都是如此。
网游修改没用,本地电脑看数值是变了,但网游的数据都是储存在游戏服务器上,要想修改网游的数据就得运用游戏的漏洞和更高级的工具,抓包修改封包发送来实现服务器的修改,所谓的外挂就是这样做出来的。外挂会破坏游戏的公平环境。所以游戏公司坚决抵制外挂。
朋友可以利用修改器玩单机游戏,通过修改单机游戏的数值获得更好的游戏体验。...
6391
把5000钱随便花一点比如花到4524(非整数的能更快搜到)
4切出游戏金山只能用来修改数值
比如修改钱
游戏中金钱
5000
1切出游戏,
3进入游戏,启动金山
2搜索5000...
2750