Ulysses 发表于 2010-4-4 19:28:42

【原创】CASIO fx-9860G系列 溢出研究 2010.4.10

最近的新发现。本文为本人Ulysses原创。
写在前面的一句话:

r(R)是万恶之源

有效版本:
9860G系列(包括GII系列及模拟器系列)
溢出原理推测:
RclCapt(显示截图)命令后接一个不存在的图片名时会自动跳到下一个命令。但是若下一个命令是CTL(程序控制)命令特别是STOP命令时,由于某种设计失误会导致溢出。
第一方案
流程:
1。先备份你的所有主存数据。否则后果自负。。。
2。创建一个新程序“U”(随便),输入以下代码。(请引向一个不存在的截图。)

3。运行该程序,效果如图。

屏幕会卡住,多按几次EXIT,系统会进入“异常模式”。
如果是模拟器,效果如下。

4.异常模式:如图所示。

貌似所有程序都消失了。。。但是注意下面的菜单栏。。。
这时有两种路线。。。
①直接按EDIT(F2),会发现溢出成果……

神秘的“溢出程序”……密码无论输什么都能进入。

进入后先来个错误。

然后便是奇怪的代码。光标最多进入到Lbl前面就移不动了。并且无论你输什么都会弹出“存储错误”(MEMORY ERROR),但是确实可以输入进一些东西去,部分会变成乱码。前面的“πI@→πIa”复制后也会变成乱码。

该程序退出后变成如下状态:

这时如果创建一个程序,在未退出程序前按QUIT(SHIFT--EXIT)都可以恢复正常。或者随便进个别的模式也行。
②进入“异常模式”后按REN(F6--F2)可以看到改名界面,但是无论你改成什么名都没法确定。所以请直接按EXE。这时界面如下:

按EDIT,该程序可直接进入了,随便写点东西(尽量多)后按EXIT,界面如下:

很诡异……
恢复方法同①。事实上程序并没有消失。

Ulysses 发表于 2010-4-4 19:28:58

第二方案
第二方案想法来源自第一方案。进行环境是在RUNMAT模式下。本方案极可能导致主存(MAIN MEMORY)清空。请务必备份主存。
先按第一方案流程做一个程序“U”。注意,这个程序必须位于程序栏的第一行,也就是第一个看到的程序。
流程:
1.进入RUNMAT模式,切换Input模式至Linear(线性 模式)。这时如果直接输入程序“U”的代码运行,并没什么异常反应。
2.输入以下代码,按EXE执行。

效果如下:

这时屏幕会卡住。多按几次EXIT。之后进入RUN界面的“异常模式”,界面如下:

如同fx-82ES的异常状况,光标跑到了一个角落。其实那些空白都是一些显示不出来的字符。
这时无论输什么都无法显示,按DEL键次数过多则会引起爆机(可能会伴随主存清空)。
若不停地按↑(上),最终可以看到输入的那行代码,但试图删除之也会引起爆机。
复制无法实现,试图剪切也会引起爆机。
输入许多东西(虽然看不出来)再按EXE,大部分情况会造成假死机,除SLIM的LIGHT键外全部失效。。。只能按P键。
3.在进入异常模式后直接按EXE,会进入更深层的异常模式。这时你输入的字符会被写入到程序“U”中替换STOP的位置。这时的程序“U”已变为异常程序,只有删除之才能解除。重启无效。如图:

ULYSSES是我在RUNMAT模式输入的,SAPT8是后缀,可能是程序编码或者按键代号(见三楼的深层分析)。
异常程序的异常点:
①只能写入,不能删除。按删除键显示如下:

②最神奇的一点。

在异常程序里多输入一些东西,按EXIT键,如下图:

大小变成了96B。按EXE进入程序。如下图:

显示 语法错误。
退出程序,你会发现:

它又变成了40B,但是里面你写的东西并没有消失!
难道是显示有误?那么进入MEMORY模式看看:

还是40B。如果不信,再回去看看那程序,里面东西还在。
好神奇。。。

Ulysses 发表于 2010-4-4 19:29:23

在GII模拟器的测试:
与实际测试完全一致。说明这是9860G系列的通病。



如果试图触发主存清空(见下楼),模拟器会进入一个卡机状态,按任何键无效,且极慢。如关闭模拟器则显示一提示,如上图。
更深层的分析:
(4月10日更新)

利用TESTMODE(软自检程序,可以查看深层系统文件)里的Valiable Manager,可以看到异常前后在@REV2这个文件夹出现了变化,而负责存放程序的system文件夹前后一直是40B,无论你在异常程序“U”里输入了多少东西。看来异常后的程序会把你输入的东西存在@REV2里面。
异常前的REV2:

SAPT8……熟悉吧。
异常后再看:

确实是这样的。但是具体原因尚不清楚。

4月10日补记:
我回去又研究了一下,发现我上面的说法有不对的地方。
其实异常后的程序“U”会就近把你输入的东西存进下一个文件里。比如如果除了程序U还有一个程序V,那么你在异常程序U里输入东西就会存进V内,这时你会发现程序V被加密码而且无法进入(密码是你输入的一部分字符,因为可以无限长,所以你没法全部输进密码栏去,也就是说这个程序再也打不开了,除非用FA-124)。但是如果只有这一个程序U,那么它只好就近存进REV2中,于是出现上文的现象。
其余现象尚值研究。         ---2010.4.10


Ulysses 发表于 2010-4-4 20:11:23

引发主存清空成功率最高的方法
1.首先按上文建一个程序“U”。
2.在RUNMAT模式输入以下代码:

RclCapt 1
Prog "U"
3.按EXE执行,再按一次EXE,之后狂按DEL键,随着爆机,一行提示栏带着“MAIN MEMORIES CLEARED”飘了出来。
………………………………………………………………
当我头一次看见这个的时候,差点把计算器摔了……

Ulysses 发表于 2010-4-4 20:11:39

暂时就写到这里。如果有什么新的想法,或是推测,请开贴或回帖阐述、咨询。

最初发现时间:2010.4.4上午,百无聊赖的第二节自习课(虽然作业几乎还没动)。
                              ————2010.4.4

沙发。自己先躺会~~~HOHO~~

Cichol 发表于 2010-4-4 20:49:34


真棒
我的心情不能以语言表达
你的强大也不能以语言表达
有点想弄回台9860了

疯不狂 发表于 2010-4-4 20:55:48

提前加精!!!!

yzhang37 发表于 2010-4-5 02:08:37

我想知道那个"RclCapt" 是干吗用的。

Cichol 发表于 2010-4-5 13:21:51

那个是读取截屏

rydrydryd 发表于 2010-4-6 22:44:13

额。。
鬼造鬼你个JB男
写些高深的东西欺负我小孩子看不懂

不锈钢 发表于 2010-4-7 18:25:17

slim
。。
我心中的痛。。

不锈钢 发表于 2010-4-7 18:25:36

它就在我电脑旁边,可我就是用不了。

[Boeing 617] 发表于 2010-4-9 21:52:44

啊啊啊啊啊啊啊啊啊啊啊啊啊啊很好啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

Ulysses 发表于 2010-4-11 14:34:59

4月10日——又写了几句话。

857847945 发表于 2010-4-13 22:58:50

我的G2SD弄出来跟截图有点不一样

朔雪X忆 发表于 2010-4-29 10:04:25

Ulysses,外国也已经有发现了。
这是人家收集的bug列表。【德文】
http://www.casiofans.de/viewtopic.php?f=50&t=3681

朔雪X忆 发表于 2010-4-29 10:05:34

This is the first bug allowing you to surf the RAM

难道那些乱码就是RAM?
。。。82es的溢出也是RAM吧?

Ulysses 发表于 2010-4-30 20:12:16

啊!CFXM!外国最强大的9860大师之一,9860G升级GII的发现者之一,无比的强大……哎,谁叫咱买的晚呢。

yzhang37 发表于 2010-5-7 17:50:25

天哪!
heibi的9860GII SD 被我爆机后成裸机了!
这下完了。

Ulysses 发表于 2010-5-16 11:18:50

。。。。不会吧、、、我的slim我已经试过千百遍了,GII模拟器也玩得很正常………………
页: [1]
查看完整版本: 【原创】CASIO fx-9860G系列 溢出研究 2010.4.10