[讨论] (VC)RGB 的 Select BB Bug 解说

楼主: Rabby250 (在沙漠里寻找星星)   2016-09-03 00:44:57
反正都被钓出来了就(摊手)
-----
Select BB 是日版赤绿青里一个非常危险的 Bug ,
危险度大概仅次于 ACE (目前唯一已知可以搞出 GS 雪拉比的那个)
完全摸熟的专家用起来跟开老金没两样,小拉达岂止变梦幻,还给你变成蓝的
但是不会用的用下去会有整个存盘报销的危险
(这大概就是“改兽会破坏存盘”的起因了吧......远目)
VC 版基本上只修闪烁等有危害玩家健康的要素,所以这个 Bug 也原封不动地保留了
有兴趣的玩家可以试试,但是再强调一次:这个 Bug 是有可能破坏存盘的
-----
原理的话是这样:
游戏中道具栏、宝可梦栏和招式栏有所谓的“交换顺序”功能
(比方说对某个道具按 Select 之后选个新的位置就可以把道具顺序交换)
基本上这功能就是照以下步骤处理:
1. 玩家选择第一个要换的道具,假设这个道具原先是排第 x 个
2. 玩家选择第二个要换的道具,假设这个道具原先是排第 y 个
3. 把内存里第 x 个和第 y 个道具的资料(种类和个数)对调
招式也是一样:玩家选择第 x 招和第 y 招,由游戏把资料(种类和 PP )对调
但是很不幸地,这段程式码里有个相当大的漏洞:
1. 玩家选择第 x 个道具,游戏中会记着数字 x ,但是不会记是“道具”还是“招式”
2. 玩家这时候可以按 B 取消,交换不会执行,但是数字 x 还是记着
3. 玩家选择第 y 招,游戏会以为是要跟第 x “招”交换,于是把资料对调
因为每只宝可梦招式最多四招, x 如果是 1 到 4 就还好
但是如果 x 是 5 以上呢?(电脑最多可以存 50 种道具,所以 x 有可能会到 50 )
游戏就会去算内存里第 x 招“应该会存在哪里”,然后把那里的资料拿出来对调
而根据解析结果, x 在 5 以上会对到的内存其实是用来存这些东西的:
http://wiki.ポケモン.com/wiki/里技一覧_(第一世代)
→ 2.24 ポケモンのステータスを変更する (注意其中的对应表格)
也就是说:
1. 如果 x 是 45 ~ 48 (利用电脑),
可以利用这个 Bug 把第二只宝可梦的招式“交换”到第一只身上
于是 VC 版冲浪皮卡丘 GET !冲浪时的皮卡丘图示超赞的!(这样不对)
2. 如果 x 是 16 或是 37 ,就可以窜改第二只的种族,于是小拉达就被变成梦幻了!
3. 如果 x 是 20, 21, 43 或 44 ,就可以窜改个体值,于是梦幻进一步变成蓝色了!
(别忘了,只要个体值符合第二世代的色违条件,传到第二世代就会是色违)
光是以上三点,相信大多数玩家大概都能想像为什么这个 Bug 能够匹敌老金了吧?
不过这个 Bug 可不只这样!刚刚有提到能交换顺序的除了道具以外,宝可梦当然也可以
而且因为整只宝可梦的资料量大,影响的范围也随之扩大
所以也有故意在交换前给宝可梦取特定名字、
然后把该名字“换进”道具栏以转换成非常难拿或是数量非常多的道具之类的案例
只是随着影响范围扩大,改到不该改字段的机率也会同时飙高
有些字段随便修改甚至会有导致整个存盘无法正确读取的风险
这就是为什么在本文一开头就要特别强调必须留意存盘正确性的缘故
-----
解说到此应该很清楚了,有兴趣的就请便吧!(茶)(潜下)
作者: chinhsi (有些事是要看天份的)   2016-09-03 00:46:00
改过得应该上不了银行吧
作者: ptt0211 (松城煙雲)   2016-09-03 01:01:00
好猛 纯推不做XDD
作者: s32244153 (Hir0)   2016-09-03 01:03:00
让我想起被骗100块零用钱去学秘技XD
作者: apple7685 (applelion)   2016-09-03 07:56:00
之前利用这个bug把我的喷火龙学会了落雷(笑
作者: Kbart (凯巴特)   2016-09-03 17:04:00
谢谢兔神 Orz 另外回一楼,目前还无法得知改过的会不会挡
作者: joy3252355 (九月 ~*)   2016-09-08 11:02:00
看新闻章回头爬到这篇 推个

Links booklink

Contact Us: admin [ a t ] ucptt.com