★[教程]如果你想学HACK游戏
学习hack游戏,主要是有这个兴趣,兴趣是最好的老师。
首先你要会查金手指(作弊码),虽然网上的EC码包含了大多数游戏,但有的地址是偏移地址,这时你就要自己查了,熟悉用模拟器自带的作弊码查。
对一个新的模拟器能很快上手,既然要hack,就要使用带debug的模拟器,然后去模拟论坛教程。
熟悉电脑基本操作。我初中毕业,学校没有电脑课,完全是玩智能手机之后在网吧里一点一点积累起来的。
十六进制编辑软件要学会使用,如ultraedit;winhex等。
你要hack一种游戏,那它的指令集和机器码要看一看,早期的游戏机游戏都是一些低级语言,在debugger上是一些看不懂的语法,所以相关的资料要理解,如FC就要看6502的资料,gb&gbc就看z80的资料,md就看68000(68k)
有较强的逻辑思维,简单的不减血,初始99人你都会了,想要搞按键hack了,你就可以写一段程序,用跳转指令啦,判断用户是否按了选择键啦。
★hack gba rom入门
假定你已经了解80x86汇编(尽管指令集不同),并且会使用TRW2000(尽 管没用到)之类对程序进行调试。 工具: VisualBoyAdvance-1.5、HexWorkshop(或其它十六进制编辑器)、No$Gba Debugger ROM:GBA-302 - Dave Mirra Freestyle BMX 2 (E) 写本文时笔者也是刚学会如何通过修改程序指令HACK GBA rom。(整整花了我 一上午时间研究)如果你不懂THUMB和ARM指令集的话(和我一样)就先看 No$Gba HELP中的CPU Reference部分,里面有较为详细的介绍。在我所HACK的 这个rom用的是THUMB。Hack的目标是时间无限(尽管在游戏中如果这样改就相 当于游戏无法结束)。 首先,用VisualBoyAdvance-1.5的Search 功能到时间的地址 为0200DBF0。(注:不要用Emucheat之类,否则还要加上一定的偏移地址, 很麻烦) 用No$gba载入ROM。选择DEBUG->DEFINE BREAK/CONDITION。在文本框中填入 [0200DBF0]!,这样一个断点就设置好了。(具体断点怎么设看No$gba的HELP) 这样当0200DBF0中的数值改变时就会中断下来。按F9(可能要多次)进入,正 常进行游戏。当出现时间改变时就会中断在0800A292。观察上方有指令sub r0,1h及str r0,[r1]估计时间就是在sub r0,1h处被减少的(为什么?如果你 会用trw2000经验告诉你就是这样)。于是双击0800a28e这一行,在sub处设断。 按F9,游戏正常进行一两秒后就会被中断。此时寄存器r0=77h(十进制119,就是 119秒,在游戏中显示1:59)。按F7,到下一条指令str r0,[r1](r1=0200dbf0是 时间的地址),这条指令作用是使r1内对应地址所存的数值等于r0内的值(具 体看No$冰封王座3地图
Gba HELP中的CPU Reference部分)。可见要使时间无限只要将sub r0,1h改掉,r0内的数值就不会变,0200dbf0处
的数值也就不会变。我选择将 sub r0,1h改为sub r0,0h(在sub上点右键,选change instrution,填入sub r0,0h)。将断点删除,按F9进入游戏,时间是不是不会减了呢? 接下来就要改rom了,先记下没修改前的机器code,就是0800xxxx旁边的数值 (应该是6808 3801 6008 6810)。然后记下改后的机器code,应为6808 3800 6008 6810。把高低位对调,对调完后应该是0868 0138 0860 1068和0868 0038 0860 1068。用HexWorkshop打开rom,查0868 0138 0860 1068。到 后修改为0868 0038 0860 1068。存盘。用VisualBoyAdvance-1.5载入play看 看,时间是不是无限了。
★脱离电脑!用智能手机hack FC游戏!
需要的软件:十六进制编辑软件(可查和修改,也可用带十六进制的工具替代),支持多种编码的文本查看器,和我传的《6502编程大奥秘》,6502指令机器码,fc游戏作弊码包,作为参考对照。
面膜推荐我以超级玛利(mario)来举个例子,改一下不减人版,查阅mario.cht用文本编辑打开(有的cht文件编码正确看不到汉字,所以要改打开文本的编码方式),“[生命数]ON=75A,9”在ec中的意思是锁定075A的值为9(人数为9),看看指令集,让双字节减1的代码是CE,我们猜测:当人数减1可能就是ce 07 5a注意高低位倒置,在rom中就是ce 5a 07,十六进制打开超级玛利.nes,查ce5a07,(其它游戏可改成
eaeaea但这个游戏不行,因为后面有判断结果为0就gameover,ce5a07之前的结果就是0)把ce改成ee即加1,保存进游戏看效果吧!
石鼓之歌止于此P.S. 有的rom会出几组相同数据,备份原文件一个一个的试,不要全部都改,只有一个才是对应的指令。一般指令后都是判断结果是否为0(通常指令b0,d0等,大奥秘好好看看),即人死完了血没有了,然后结束游戏。作弊码是单字节的话,如[血]f2,5。就用c6 f2搜,c6相反的是改成e6加1,还有些其它的指令(通过x或y寄存器变址,几个角都用一条指令减血)
★FC HACK初级入门教程(电脑端)
首先我们需要一些工具 [带有DEBUG调试功能的FC模拟器] FCEU [6502(FC汇编语言)] 6502汇编大奥秘(用于查看指令,便于修改,本次教程几乎用不到,有兴趣研究指令和代码的可以多看看。但是这还是必备工具哦)) 最后用于修改ROM内部的工具 UltraEdit32 这是必须品哦 首先,我们打开FCE,FCE也是FC模拟器的一种。当然我们用的是带DEBUG(调试)功能的FCE 使用VNES的DEBUG调试时,机器配置不好的就狂卡,偶的机子也卡。所以在某人要求之下。我换一种调试器给大家讲解。 我用魂斗罗1来做一个命不减的HACK教程教大家 我们先去EC里该游戏作弊码,EC里的作弊码是这样的 [P1 生命数] ON=0032,200 这样我们就知道魂1的生命的地址是32,就可以使用它来当“断点”。FCE的调
试器和VNES不一样,不需要用“[0032]”这样的标准格式,直接把“32”输入当断点就可以了,具体怎么弄?别急,慢慢往下看~ 首先我们打开FCE,打开游戏ROM,就象你玩游戏那样~~ 游戏运行后,先开始游戏,这时候先暂停游戏。 我们点“NES”→“调试器...” 出来一个大窗口,请看右下角,看到这个框吗。 先在我这个位置输入“32”,这样“32”就做为一个“中断处”,也就是这个地址有所变化时,程序中止,这样我们就能到该指令了。 之后在“写入”上打个勾,为什么这么做呢?因为我们要做命不减嘛,打个比方,你死了一条命,命数就减了1 这就表明程序对“命数”做了一个“写操作”,这样说应该能明白吧。 我们这样一设置,在你的游戏人物死了一次后,也就是说被写入了一次操作后,程序会自己中断。之后就好办事了 按一下“添加”,之后左边就出现w 0032-0032的字符,不必管它。 这时我们可以切换窗口,继续进行游戏了。 进入游戏,让你的人一次... 这时候程序就会停止,游戏中断了。出来了这么个窗口。一下子看了眼晕吧。 别心急哦,慢慢来。 先看看最上面一行。 第1行这样显示d939:D6 32 DEC 32,X @ 0032=02 看到了吗? 是“32”哦,说明我们指令对了。32就是我们之前输入的生命数的地址嘛 想知道D6这条命令的意思,可以去看看6502汇编大全,就知道了~ 关于该指令的详细说明和意思,不知道也可以。因为我们这是简单HACK,不懂也不要紧 我们只需要知道,人死了后,就会执行这条指令,也就是让游戏里的命减了一条,对吧? 修改原理也很简单,只要让这条指令不执行就好了嘛! 现在进入正轨~~ 最前面的“d939”就是这条指令在RAM中的具体位置了,我们要去RAM中到这个位置。 点一下“内存查看器” 出来的窗口就是RAM窗口了,根据“d939”这位置,我们到了~! 看第一行,就是这里了,我选中的就是我们最初到的指令 D6 32 我们把这一整行通通
选中,然后复制一下。这样好方便我们寻到这个“D6 32” 打开UltraEdit32这个软件,用这个软件来打开你的游戏ROM 就象这样,游戏ROM打开了。 之后我们用CTRL+F,搜索一下,把刚才复制的那一串数字粘贴进去,然后查一下~ 到了,被我用深蓝选中的这行 看到了吗,D6 32 我们准备动手来改这条指令 改之前,还是老规矩,先按一下键盘上的INSERT,把插入方式改为“覆盖” 接下来我们就把 D6 32 改为 EA EA(记得要大写哦) 请大家把 EA 这条指令牢记,EA是NOP指令,意思是不执行任何操作。 也许有人问,为什么是把 D6 32 通通改为 EA EA呢,而不是单单把D6这个指令改为EA?32只是地址不是命令
,干吗也要一起改? 呵呵~因为嘛,D6 32 是一条完整指令嘛,换句话说就是一句完整的话,要改他,当然也要完整得改拉~~ 当然除了EA指令,还有别的改法,我这里就只告诉大家这最简单的了。 改别的游戏,EA指令也是很实用的。大家自己可以去试试。 注意:修改的时候,往往会碰到一个问题,那就是不能修改。那是因为你的游戏ROM的属性可能是“只读”。如果碰到不能修改,请对游戏ROM(比如魂斗罗1)点右键→“属性”,把“只读”的勾去掉,这样就能修改了。 最后一步,修改好后,点“文件”→“另存为”,保存你修改好的游戏ROM,名字随便,比如“魂斗罗命不减XXXXX” 之后就是测试ROM了,我习惯性得打开我常用的模拟器VNES来运行游戏,当然你用FCE直接重新打开游戏ROM也可以。只是我喜欢用VNES来玩游戏。 我试着了几次,命一直都没减。哈哈~HACK成功了~! 魂斗罗1P和2P生命使用同一指令的,所以你改好后,1P和2P都是无限命了。 怎么样,你学会了吗?
不如自己也试试吧,改改看魂斗罗2代 魂2的生命数地址经查EC得知是 53 用我说的方法试试看吧,祝你成功 注:此教程中,我使用魂斗罗1的生命数地址“32”来做断点。并不代表其他游戏都是用32做断点。 每个游戏数据都不同。前面我已经提到过,可以先到EC里到想改的游戏的作弊码,这里面有相应的地址。如果EC里没有,也可以自己用EC的搜索功能或者用金山游侠来搜索。 以上均为最基础最简单HACK,如果想学习中级和高级HAKC,要靠自己钻研了~多看看6502汇编大奥秘吧,只有理解了指令的含义,才能学习更高级的HACK。补充内容关于EC如何查看地址! 打开EC看界面的下面有很多游戏机的图标到FCEU的图标,再在上面选择游戏名称中到你要修改的游戏!点要查地址的设置选项在点一把锤子和一个螺丝刀的图标第一行就是地址!
黄河远上白云间的下一句☆[教程]新手应学会的基本东西
金钱,最容易了,说一下方法,人物属性也类似,如果金钱上限很大的时候,其格式一定是00000000,就是十多进制是八位,如果较少的,格式就是0000,就是说四位,一般来说用计算器算出来的十六进制要经过处理,例如改牧场,原来是5000,由于上限是999999999,由于数比较大一般是用这八位格式查,将5000化成16进制是1388,然后在前面加0000,再前后四个倒置,变成13880000,还没行,再将1388前后两个倒置,变成88130000,再查,有时可能有几个,把它全部替换就ok,至于999999999换成16进制的方法和前面一样!再用999999999的16进制替换5000的16进制就ok!到物品了,物品也很容易,基本上很多游戏都是“物品代码+数量(16进制)”这个
格式,以口袋妖怪红宝石为例,拿到5个怪兽球后,保存(模拟器),再查,用00040005查到一个,0004是怪兽球的代码,0005表示数量为5,再改成00010063,再读档,就会变成99个大师球,有些代码是0120数量是5,却用01200005查不出,用20010500就查得出,例如技能和果实就是这样!有些只是四位,例火焰之纹章就是,例铁剑耐久是10,就是0110去查,还有很多很多需要你自己去尝试哦
★FC魂斗罗无闪烁金身手机hack心得
hack思路:当敌人碰到主角,程序判断是否金身。金身的地址是B0,那么判断金身就是先读取B0的地址测试是否为0。此游戏1p2p都是用同样的指令,因此猜测机器码B5 B0,十六进制搜索,把B5改成A9,既然要测试B0的值是否大于0,干脆直接读取一个大于0的值到寄存器。改了进游戏看看,是会闪烁的金身,原来这个指令是处理金身的效果的。那就重新改查下一个B5B0并改成A9B0回游戏测试成功
★[教程]s60 v2修改模擬器遊戯的 【常識】及【注意點】
此文章适合新手学习参考!以下总结了部份本人的修改经验和基本的常识!
①、修改游戏的友友必须先懂得科学计算器和Q1.7的使用!
②在修改时先把要修改的角的属性值全部记录如:HP:15/15、攻:17、防:18、速:16等…
然后把数值都16进制写在原数值后面以便查!
③在用Q1、7打开游戏或游戏存档时游戏或游戏存档的名稱必须为英文
④使用Q1.7查属性数值时最好是用HP查如:HP:15/15,那么就查0F000F00当然,有时也可以用相近的2个或多个属性数值查!
在查后必须看查结果,如果结果大于30个那么建议用其它属性数值重新查!少于30个时可以记下地址试着修改下看看游戏是否有变化,如果没变化或游戏卡死等就马上改回然后按左键选下一个继续试改直到正确地址!
⑤修改时会有很多数值出现,大部份我们都不知道他的意思,所以在修改前建议大家看看A码教程和U码教程
⑥很多友友在修改时会问:“为什么要在数值前或后加0!”
教师节给老师的祝福词答:“[b]加0有2种原因:一是为了更精确的查到数值。二是我们16进制后的数值有时是个为数有时是3位数,这时我们就在前面加个0
例如:15(999)在十六进制后为F(3E7)那么我们就在前面加0变为0F(03E7)!
这种加O的原因是我们修改的代码都是以字节来算而2个数字才算1个字节,所以我们就在前面加0以补足字节。(详细請看A码和U码)
⑦关于为什么有的数值会前后倒置如:999十六进制后为3E7,加0后为03E7可是我们查是却是用E703来查不然到的结果是錯的!这个原因和ROM编程写入有关,详细的我也不清楚,不过提醒各位记得前后换位
再查!当然修改是的新数值也悳倒置。
⑧在修改游戏时建议关掉没用的程序使运存保持在23以上。游戏和Q1.7同时开启用切换法来验证修改结果比较快扭曲树精技能
⑨最后提醒大家:试修改时必须记下你修改的地址和修改前的数值,以免改坏后改不回来!
⑩修改游戏是一项很累人的活,如果没耐性的建议别学!
☆[教程]修改的初级教程,x管理器修改和上帝修改,高低位的问题
我们先准备三样东西,x管理器(主角肯定是不能少的!)、再就是科学计算器(要十进制转化为十六进制,当然能够笔算或心算转化的牛人,我无话可说!)用上帝之手也可以,因为它自带了十进制与十六进制互相转化功能、最后就是游戏rom的要修改档(笑),还是以改钱为例比如是255钱,先打开x管理器,再打开游戏档,再用科学计算器来计算255的十六进制为ff,我们还可以判断游戏的金钱上限,比如上限是99999,那么我们可以0000ff,不到则用高低位为ff0000(高低位就是在一组数据中第一个双字节和最后一个双字节互换位置如273982a3则高低位为a3398227),由开头起,直到结束。比如我们到3个,记住这3个的位置,再加减一些金钱再,直到只剩一个就可以了。现在我们再来对比一下上帝之手,上帝自带查记忆功能,自带进制转化,最重要的是,上帝之手有上帝修改功能,只要一次就可以了,以后可以自动修改!毕竟x管理器重点不是修改,是文件管理和解压zip文件,而上帝却是专业的修改工具,业余毕竟不能和专业比(笑),不过x管理器的强大和应用面广泛是勿用置疑的!!!上帝之手是修改游戏存档的专业工具,但是需要安装平台,首先教大家改钱比如游戏里有5000金钱,首先转换十六进制再用上帝侦查,选十六进制侦查,显示出结果,这里就很重要了,选择缩小侦察范围时一定要否,如果有多个选项,则退出选保留侦查数据,再加一些钱或减少些钱再侦查,选继续上次侦察数据,直到只有一个地址,那就是钱的地址,将这个地址在上帝操作的十六进制中或人工修改中修改就可以了,改属性也是这样子的。注意修改值是十六进制的(如255的十六进制是ff),还要注意有些游戏是高低位的,要将十六进制转换成高低位再侦察!有什么不懂的问我,老鸟别笑,我是应友友之邀而写的所谓的高低位就是高位置后,低位置后,为了能够让大家更明白,我举
两个例子来说明:假如是这样一组数据3f564f3a835d7e55,那么其中的高位就是3f,低位就是55,那么转换高低位就是55564f3a835d7e3f,在十六进制中一个双字节为一位,而高低位就是这组数据中的第一位和最后一位互换,中间的不管它,如:2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论