[讨论] 绿宝石版任意代码执行(ACE)

楼主: tn950811 (再摸我要叫了喔)   2021-07-18 13:54:46
=================警告的分隔线================
本文章内含大量使用游戏漏洞之行为,请小心使用并自行承担相关风险,使用后发生无法
复原的错误或记录毁损本人一概不负任何责任。
若您阅读时产生头晕、恶心、嘴破舌头痛等不适症状,请左转后直走电梯就在门口旁边谢
谢。
然后不要问我原理是什么
https://i.imgur.com/MaP59Jq.jpg
=================警告的分隔线===============
一、前言
相信有玩过前两代ACE的玩家应该都对其操作不陌生,本世代同样可进行ACE,功能一样很
强大,几乎所有PM的内部资料都能更改,若操作得当可说是无所不能。
本方法来自以下影片:https://youtu.be/TQN7mWXrOPs
是使用榴石果漏洞制造出错误PM 0x085F,再藉其读取电脑箱子的名字以执行代码。
======================================
二、事前准备
(1) 日文版绿宝石游戏卡匣
红/蓝宝石、火红叶绿不可,其他语言未知,绿宝石需尚未与卡那兹市的NPC交换橡实果,
游戏进度达对战开拓区佳。
(2) 任意拉鲁拉丝
交换橡实果用。
(3) 榴石果及HP增强剂
执行漏洞的重要道具。
(4) 任意学会“诅咒”且HP为奇数的幽灵系PM
用以将HP扣至1执行榴石果漏洞,推荐送神山的怨影娃娃,HP请以HP增强剂提升至奇数,
就算本来就是奇数也请喂药到下个奇数否则无法使用榴石果。
(5) 性格值、表/里ID、二/十/十六进制转换及xor运算等观念
======================================
三、操作流程
*[へ]、[べ]、[ぺ]:平假名
*[リ]:片假名
*[l]:小写L
(1) 取得错误PM 0x085F及设置操作环境
1. 以拉鲁拉丝与NPC交换橡实果并取下其道具,建议以开拓区的复制BUG多复制几只橡实
果备用:
a. 将橡实果存入电脑并记录
b. 取出橡实果放入队伍中
c. 至开拓区的对战塔与最右边柜台的NPC对话,选择任意组别及PM并点选第一次“是”进
入确认存盘的这个画面后暖开机
https://i.imgur.com/MePmm9G.jpg
队伍及电脑中即有两只橡实果
*此方法亦可反向操作将漏洞产生的坏蛋覆蓋掉删除
2. 将橡实果的努力值提升至HP 95、攻击8
*推荐至101号道路打刺尾虫(HP+1)与土狼犬(攻击+1)
3. 将橡实果放至电脑箱子2的第24个位置
*建议清空此箱子将重要PM移至其他箱子
4. 将队伍调整成第一、二只为任意濒死的PM,第三只为会诅咒的幽灵系PM(以下以怨影
娃娃代称)
5. 用怨影娃娃与野生PM对战并使用诅咒,重复两次将HP降至1后存盘
*推荐至101号道路操作,野生PM都打不到你
6. 将第一只濒死的PM存入电脑,并对怨影娃娃使用榴石果,此时队伍所有的PM都陷入濒

7. 进入草丛与野生PM对战,此时将派出图像为?的PM,进入队伍页面查看第二个位置濒
死PM的状态(非怨影娃娃),接着返回队伍页面,按住十字键↑响约5声音效的时间后返
回战斗,原先?PM的图像及血条会消失,然后选择逃跑,此时逃跑会失败且显示无PM可战
斗并返回PM中心
8. 到电脑箱子2查看橡实果的状态,确认橡实果是否变成球种为巢穴球、带有宝可病毒的
蛋,若非上述变化(没有变化或变成坏蛋ダメタマコ)则暖开机,以怨影娃娃与野生PM对
战后逃跑并存盘,重复步骤6.与7.
9. 更改以下箱子名字
箱子1:[いぶたぃ び]
箱子2:[アアアyコくく]
并将箱子12的第12个位置、箱子14的第30个位置清空并记录
*建议清空此箱子将重要PM移至其他箱子
10. 将步骤8.的蛋放至队伍并孵化,会孵化出Lv.46、带有病毒的?????(0x085F)
,查看其状态后存盘并暖开机
*孵化时黑屏较久、孵化后BGM没恢复是正常现象
11. 将队伍调整成第一只为任意PM,第二只为0x085F,其余位置空下来
12. 将箱子12的第12个位置、箱子14的第30个位置清空,并更改以下箱子名字
箱子1:[かッンNリGゲタ]
箱子2:[みくィぃBFC]
箱子4:[アタぢいいあ ]
箱子5:[ォッいべぞね び]
箱子6:[アあいうに  ]
13. 查看0x085F的状态,其图像会消失一下后显现,待显现后退出,队伍的第三位置会出
现一只暱称为“ォッいべぞ”的色违妙蛙种子(下称种子1),将种子1先移至他处空出队

14. 将箱子5名字改为:[ャl],重复步骤13.,得到另一只暱称为“ャl”的色违妙蛙种
子(下称种子2)
15. 将种子1移至箱子12的第15个位置,种子2移至箱子14的第28个位置,并且种子1的前3
个位置和种子2的前后2个位置都不要放任何PM
16. 更改以下箱子名字
箱子11:[うッゃNさRまK]
箱子12:[アぃBFCあい]
箱子13:[pぬういぎせ う]
更改后记录即设置完成
---------------------------------------
(2) 执行任意代码
将特定的箱子名字改成要执行的代码后,查看0x085F的状态,待其图像消失再显现后切换
画面(退出电脑、退出队伍页面或查看图鉴等)即可执行,可执行的项目可参考此处:
http://detelony.blog.fc2.com/blog-entry-20.html
各文字对应的值可参考此处:
https://reurl.cc/yElRlq
另外需注意若要更改的变量要输入两个文字,其输入顺序需颠倒,例如要更改的变量为0x
0802,需输入[いく]而不是[くい]。这边贴几个比较常用的代码。
1. 入手任意道具:
箱子1:[べ①①②②]
①①为道具种类,②②为道具数量,执行后会出现在电脑。
例:
箱子1:[べで sう]
①① = [で ] = 0x0044:神奇糖果
②② = [sう] = 0x03E7:999个
道具编号可参考此处:
https://reurl.cc/6aeKYy
2. 任意技能教学
箱子1:[ロ①②③③]

箱子1:[に ィ ロ  ビ]
箱子2:[にあィ①②  ビ]
箱子3:[にいィ③③  ビ]
箱子4:[ぬいィ❸❸にうィ]
箱子5:[アおリメうい]
将队伍中第①位PM的第②个技能更改为③③,若③③为没办法直接输入的文字的值(B7~
B9、EF~FF),则用第二种代码,将③③及❸❸的值相加即可得无法输入的值。
B7[円]、B8[.]、B9[╳] = B0[…] + 07[き]、08[く]、09[け]
EF[▼]~FF[终] = E0[l] + 0F[そ]~1F[ま]
例:
箱子1:[ロいう5 ]
① = [い] = 0x02:队伍第3位
② = [う] = 0x03:第4个技能
③③ = [5 ] = 0x00A6:写生
箱子1:[に ィ ロ  ビ]
箱子2:[にあィお   ビ]
箱子3:[にいィl   ビ]
箱子4:[ぬいィふ にうィ]
箱子5:[アおリメうい]
① = [お] = 0x05:队伍第6位
② = [ ] = 0x00:第1个技能
③③ = [l ] = 0x00E0
❸❸ = [ふ ] = 0x001C
③③ + ❸❸ = 0x00E0 + 0x001C = 0x00FC:击掌奇袭
技能编号可参考此处:
https://reurl.cc/W3V0MO
此编号为十进制,请记得转换成十六进制再输入。
3. 查看PM的里ID
箱子1:[ォいごオ   ビ]
箱子2:[ヌネふいい]
查看箱子1第1只PM的里ID
4. 变更PM国籍
箱子1:[にだオ①①]
①①文字
[あい]:日本
[いい]:美国
[うい]:法国
[えい]:意大利
[おい]:德国
[かい]:韩国
[きい]:西班牙
变更箱子1的第一只PM的国籍,若由日版变更成其他版本,暱称及亲名的数字及英文在上
传至G4以后会变成半角。
5. 变更主角ID
箱子1:[もけぬうい]
箱子5:[かッンNテぞけノ]
箱子6:[アぱゥひし l]
箱子7:[ゴゥぃBFC]
箱子8:[アlコ う]
箱子9:[①②③④❶❷❸❹]
变更主角的ID,表ID为①② + ❶❷,里ID为③④ + ❸❹
B7[円]、B8[.]、B9[╳] = B0[…] + 07[き]、08[く]、09[け]
EF[▼]~FF[终] = E0[l] + 0F[そ]~1F[ま]
例:
箱子9:[ぐぃ…ま  け ]
①② = [ぐぃ] = 0x3039
③④ = […ま] = 0x1FB0
❶❷ = [  ] = 0x0000
❸❹ = [け ] = 0x0009
①② + ❶❷ = 0x3039 + 0x0000 = 0x3039:表ID12345
③④ + ❸❹ = 0x1FB0 + 0x0009 = 0x1FB9:里ID08121
6. 变更主角名称
箱子1:[もけぬうい]
箱子5:[かッンNけノねG]
箱子6:[アぃBFC]
箱子8:[アlコ う]
箱子9:[①②③④⑤⑥⑦]
变更主角名称为①②③④⑤⑥⑦,需注意不可超过7个字。
7. 遭遇特定PM
7-1. 指定任意seed
箱子5:[かッンNテぞさタ]
箱子6:[アぃBFC]
箱子8:[アlコ う]
箱子9:[①②③④❶❷❸❹]
指定任意seed,搭配7-2或7-3代码可遭遇指定PM,seed上位为③④ + ❸❹,下位为①②
+ ❶❷,计算seed可参考:
http://2style.jp/bowline/ds/tool/random/inverse.html
输入想要的个体值与性格后按“个体値‧性格‧特性‧性别から计算”,复制Method 1 s
eed[n]算出的seed做为目标seed,并贴至下一栏的seed按“フィルタ付 seed逆算”,选
择-2那行计算出的seed做为指定seed执行代码。
7-2 遭遇任意PM
箱子1:[あああああもけぬ]
箱子2:[い♀①①②③③ビ]
箱子3:[ゆぢあ]
遭遇种族①①、Lv.②、携带道具③③的PM,种族编号可参考此处:
https://reurl.cc/NrEYLe
例:
箱子1:[あああああもけぬ]
箱子2:[い♀ャ ト  ビ]
箱子3:[ゆぢあ]
①① = [ャ ] = 0x0084:百变怪
② = [ト] = 0x64:Lv.100
③③ = [  ] = 0x0000:无道具
箱子5:[かッンNテぞさタ]
箱子6:[アぃBFC]
箱子8:[アlコ う]
箱子9:[にlLz ぬ  ]
①② = [にl] = 0xE016
③④ = [Lz] = 0xEEC6
❶❷ = [ ぬ] = 0x1700
❸❹ = [  ] = 0x0000
①② + ❶❷ = 0xE016 + 0x1700 = 0xF716
③④ + ❸❹ = 0xEEC6 + 0x0000 = 0xEEC6
→指定seed:0xEEC6F716
→目标seed:0x91A90F70
可得Lv.100、性格为坦率的6V百变怪。
7-3 遭遇事件PM
箱子1:[にえィ①①  ビ]
箱子2:[におィ②②  ビ]
箱子3:[にかィ③③もけぬ]
箱子4:[いゆkあゆがあ]
遭遇种族①①、Lv.②、携带道具③③、具有命定的相遇的PM,和7-2相比多了命定的相遇
,若是梦幻、代欧奇希斯这类配布PM可使用此代码生成,也可以靠8.的代码直接修改命定
的相遇。
例:
箱子1:[にえィビ   ビ]
箱子2:[におィほ   ビ]
箱子3:[にかィうあもけぬ]
箱子4:[いゆkあゆがあ]
①① = [ビ ] = 0x0097:梦幻
②② = [ほ ] = 0x001E:Lv.30
③③ = [うあ] = 0x0103:音速自行车
箱子5:[かッンNテぞさタ]
箱子6:[アぃBFC]
箱子8:[アlコ う]
箱子9:[ゲィr♀    ]
①② = [ゲィ] = 0x808A
③④ = [r♀] = 0xB6E6
❶❷ = [  ] = 0x0000
❸❹ = [  ] = 0x0000
①② + ❶❷ = 0x808A + 0x0000 = 0x808A
③④ + ❸❹ = 0xB6E6 + 0x0000 = 0xB6E6
→指定seed:0xB6E6808A
→目标seed:0x82B03804
可得Lv.30、性格为爽朗、携带音速自行车、具
有命定的相遇的5V0C梦幻。
8. 变更PM资料
箱子1:[Lいす    ビ]
箱子2:[もけぬうい]
箱子5:[く0COおぅズば] *注意第2字为数字0第4字为英文O
箱子6:[ア@む6ば]
箱子9:[クぢいいネふいい]
箱子10:[アアアヤ6かく]
箱子14:[①②③④⑤⑥⑦⑧]

箱子1:[に ィ①①  ビ]
箱子2:[ぬ ィ❶❶  ビ]
箱子3:[もけぬうい]
箱子5:[く0COおぅズば]
箱子6:[ア@む6ば]
箱子9:[クぢいいリメうい]
箱子10:[アアアヤ6かく]
@文字(懒得翻译了反正不难懂)
[ ]:性格値(4バイト)※変更不可(ダメタマゴ化する)
[あ]:ID値(4バイト)※変更不可(ダメタマゴ化する)
[い]:NN(10バイト)
[う]:国籍(1バイト)
[え]:ダメタマゴフラグ(1ビット)
[お]:正规ポケモン判定フラグ(1ビット)
[か]:正规タマゴ判定フラグ(1ビット)
[き]:TN(7バイト)
[く]:マーキング(1バイト)
[け]:チェックサム(2バイト)
[こ]:不明(2バイト)
[さ]:种族(2バイト)
[し]:持ち物(2バイト)
[す]:技1(2バイト)
[せ]:技2(2バイト)
[そ]:技3(2バイト)
[た]:技4(2バイト)
[ち]:技1PP(1バイト)
[つ]:技2PP(1バイト)
[て]:技3PP(1バイト)
[と]:技4PP(1バイト)
[な]:追加PP(1バイト)
[に]:格好良さ(1バイト)
[ぬ]:美しさ(1バイト)
[ね]:可爱さ(1バイト)
[の]:経験値(4バイト)
[は]:HP努力値(1バイト)
[ひ]:攻撃努力値(1バイト)
[ふ]:防御努力値(1バイト)
[へ]:素早さ努力値(1バイト)
[ほ]:特攻努力値(1バイト)
[ま]:特防努力値(1バイト)
[み]:懐き度(1バイト)
[む]:贤さ(1バイト)
[め]:ポケルス(1バイト)
[も]:出会った场所(1バイト)
[や]:入手レベル(7ビット)
[ゆ]:出身バージョン(4ビット) *蓝、红、绿宝石、火红、叶绿依序对应1~5
[よ]:ボール(4ビット)
[ら]:HP个体値(5ビット)
[り]:攻撃个体値(5ビット)
[る]:防御个体値(5ビット)
[れ]:素早さ个体値(5ビット)
[ろ]:特攻个体値(5ビット)
[わ]:特防个体値(5ビット)
[を]:タマゴフラグ(1ビット)
[ん]:特性(1ビット)
[ぁ]:逞しさ(1バイト)
[ぃ]:毛艶(1バイト)
[ぅ]:亲性别(1ビット)
[ぇ]:クールリボン系统(3ビット)
[ぉ]:ビューティリボン系统(3ビット)
[ゃ]:キュートリボン系统(3ビット)
[ゅ]:ジーニアスリボン系统(3ビット)
[ょ]:パワフルリボン系统(3ビット)
[が]:状态异常(1バイト)
[ぎ]:レベル(1バイト)
[ぐ]:现在HP実数値(2バイト)
[げ]:最大HP実数値(2バイト)
[ご]:攻撃実数値(2バイト)
[ざ]:防御実数値(2バイト)
[じ]:素早さ実数値(2バイト)
[ず]:特攻実数値(2バイト)
[ぜ]:特防実数値(2バイト)
[ぞ]:所持メールID?
[だ]:种族グラフィックID?(2バイト)※変更不可
[ぢ]:総个体値(30ビット≒4バイト)
[づ]:チャンプリボン(1ビット)
[で]:ウイニングリボン(1ビット)
[ど]:ビクトリーリボン(1ビット)
[ば]:ブロマイドリボン(1ビット)
[び]:がんばリボン(1ビット)
[ぶ]:マリンリボン(1ビット)
[べ]:ランドリボン(1ビット)
[ぼ]:スカイリボン(1ビット)
[ぱ]:カントリーリボン(1ビット)
[ぴ]:ナショナルリボン(1ビット)
[ぷ]:アースリボン(1ビット)
[ぺ]:ワールドリボン(1ビット)
[ぽ]:不明
[っ]:イベントフラグ(1ビット) *即命定的相遇
[ア]~[ク]:不明
变更队伍第三只PM的资料,功能非常强大请小心服用。
======================================
四、FAQ
Q1:使用这个BUG会对纪录或PM有什么不良影响吗?
A1:窝不知道.jpg
不过我用到现在还没遇过什么严重的问题就是。
Q2:我不小心输入错字并执行了,我该怎么办?
A2:不要存盘并且暖开机重来,避免改动到未知的数值。
Q3:为什么我执行后都没效果?
A3:请检查箱子名字有没有输入错,ア/ァ、シ/ツ、ソ/ン、0/O、1/l等都是很常见的错
字。如果确定没输入错,请检查有没有改到箱子11~13或动到两只妙蛙种子的位置。
Q4:为什么我改完后数值都没有变化?
A4:请切换画面(关闭电脑、关闭队伍、切换地图等)即会变化,并且在每次执行后都要
切换,执行很多次没切画面只会执行最后一次的值。若是更改努力值、个体值等影响能力
值的值请将PM存入电脑能力值即会变更。
Q5:该如何做出色违PM?
A5:(表ID xor 里ID) xor (性格值上位 xor 性格值下位) < 8即为色违,= 0为方闪,请
自行计算目标性格值对应色违的ID即可。
Q6:做出来的PM可以上传到新世代吗?
A6:可以,不过G5到G6的Poke Mover会检查,我自己目前测试的结果有以下几点。
1. 学习自身不能学习的技能
→无法上传
2. 野生PM学习遗传技能
→可以上传
3. 努力值超过510
→无法上传
4. 改出G3没有的球种值(G4会变成外观是蓝色的大师球但特效与红白球无异)
→无法上传
5. 性格值与个体值不符(G3及G4的乱数规则性格值绑定个体值)
→可以上传
6. 神兽PM出身版本有问题(如来自绿宝石的超梦)
→无法上传
7. 持有有问题的奖章(天空/陆地/海洋奖章等)
→可以上传
8. 非活动PM有命定的相遇
→可以上传
9. 梦幻、代欧奇希斯、凤王及洛奇亚无命定的相遇
→尚未测试不过应该是无法上传
10. 改出官方不曾配布过的语言版本的幻兽(如日版绿宝石代欧奇希斯)
→可以上传
=======================================
最后一样再炫耀一下我的发霉蛋
https://i.imgur.com/wyuwafB.jpg
https://i.imgur.com/xXN0HWO.jpg
https://i.imgur.com/j7UB4XQ.jpg
https://i.imgur.com/L8pwnTy.jpg
=======================================
Reference:
http://detelony.blog.fc2.com/blog-entry-18.html
http://detelony.blog.fc2.com/blog-entry-19.html
http://detelony.blog.fc2.com/blog-entry-20.html
https://youtu.be/TQN7mWXrOPs
作者: w23077496 (韩森柏伊)   2021-07-18 14:24:00
看来该回来玩一下绿宝石了
作者: joy3252355 (九月 ~*)   2021-07-18 16:29:00
推 辛苦了 !! 这篇应该算中文圈第一篇比较完整的另外欧美版确定有 只是修改的代码不一样不如说当初就是欧美版先找到代码注入方式 才回流到日版的 我手头上的欧美版代码注入资料是2015年左右至于日版我第一次看到最早在2017 不过一直持续改良XDD刚刚再看一下 甚至影片最后更新纪录在上个月 wwww日版的深度玩家还再改良啊 (茶
作者: dull70328 (呵呵)   2021-07-18 18:54:00
中文教学给推 不懂日文 只看影片还是不懂
作者: weilsea (rednini)   2021-07-18 20:26:00
比黄版复杂好多…
作者: Mango3459 (Mango)   2021-07-18 20:58:00
想问一下 这样是否也可以修改因为更换时间电池所导致的时间bug
作者: dull70328 (呵呵)   2021-07-18 23:18:00
橡树果那边试了半小时 顶多变坏蛋 机率不知道多低....
作者: smallsalix (小柳)   2021-07-19 15:14:00
这是什么神奇的bug XD 也太难研究
作者: D122 (小黑球)   2021-07-19 21:25:00
推 感觉好厉害
作者: michaelwu (我是阿铺)   2021-07-23 13:34:00
太复杂XDD 纯推
作者: hjkkk123 (123)   2021-08-03 22:49:00
读程式码找出来的吧,蛮强的

Links booklink

Contact Us: admin [ a t ] ucptt.com