fx-991CN X bug笔记——资源篇

使用校内日常能接触到的计算器,就能探索各种可能。我整理了fx-es(ms)吧的内容,包含一些原理与少量资源。目前我接触到的功能主要是拼字(显示字符)。
fx-es(ms)吧icon-default.png?t=O83Ahttps://tieba.baidu.com/f?kw=fx-es(ms)

基本术语请参照该知乎专栏

我的真机是verF的,因此我将主要讲解verF的各种操作。

卡西欧非官方说明书

原版的说明书详细讲述了正常使用该计算器的方法。我的术语打算尽量和这个说明书保持一致。

(原)官方说明书链接icon-default.png?t=O83Ahttps://support.casio.com/cn/manual/004/fx-991CN_X_B_CN.pdf

但是可惜这款计算器似乎已经退出了历史舞台,官网上看不到这款计算器的说明书了。网上可以找到几乎相同的说明书,虽然页码会有约1页的偏差。

非官方说明书链接icon-default.png?t=O83Ahttps://usermanual.wiki/Casio/fx991CNXCN.1414810318.pdf

模拟器

在贴吧中,有个帖子提供了一个verC模拟器,可以查看计算器ui、ram、反汇编、寄存器等,发布在了github上

模拟器贴吧帖子icon-default.png?t=O83Ahttps://tieba.baidu.com/p/8926661352github上的模拟器icon-default.png?t=O83Ahttps://github.com/qiufuyu123/CasioEmuNeo

对release,下载最新的合适的zip,解压出来即可使用。

对源码,可以建议取disas,即下文的反汇编。

注意模拟器并非完美:

  • 栈指针,在真机上似乎不能被设为奇数,但在模拟器上可以。这会使一些bug在真机上可以,但模拟器会白屏。
  • 模拟器没有太阳能板。

ROM(verF)

如果你的计算器也是verF,那么需要替换rom(和反汇编)。有个帖子提供了一份verF的rom

verF的rom所在帖子icon-default.png?t=O83Ahttps://tieba.baidu.com/p/9088790345百度网盘上的verF的romicon-default.png?t=O83Ahttps://pan.baidu.com/share/init?surl=7UfhKvuF-clKAn2dgnvQtA&pwd=ozxN

反汇编(verF)

如果你的计算器也是verF,那么替换反汇编后,你能更方便地建立verC地址与verF地址地映射。

在上文模拟器的源码中,disas文件夹存储了好用的反汇编的工具。下载解压后,按照源码最外层文档中的方法,在解压后文件夹内运行make。需要进行反汇编时,运行:

./bin/u8-disas (rom.bin所在地址)  0 0x40000 (_disas.txt生成地址)

此处make时可能会出现如下错误,但我用起来似乎没有问题。

process_begin: CreateProcess(NULL, rm -f temp.cpp, ...) failed.
make (e=2): 系统找不到指定的文件。
make: *** [bin/u8-disas] 错误 2

某github仓库

github上有个资料整理,可以去查看。

github上的991CN X 反编译及资料整理icon-default.png?t=O83Ahttps://github.com/Physics365/991CN-X-CW-Decompilation

nX-U16芯片的文档

据说卡西欧用的CPU是nX-U16(*)。一个帖子上分享了该CPU的中英双语文档。

*:有人说nX-U8,但区别不大。一个区别是栈指针在nX-U16上只能为偶数,但nX-U8上可以不。

nX-U16文档所在帖子icon-default.png?t=O83Ahttps://tieba.baidu.com/p/9121129738nX-U16文档帖子包含的短链接icon-default.png?t=O83Ahttp://jump.bdimg.com/safecheck/index?url=rN3wPs8te/oulvKfWxxHh/2KOtrc97ZuQDa2TMOI6IA6CZ0oV2OuwmtkE0aaCAZLBHEqHEdCFOeMBFM8w2SpkjKxEyZiozsx8AJZZ8wmRnLXAECtdKsibOwW9L6au+Rao6saMhZiQ62IG+gclE+Y5VQJrEN/P+OLnoDPyD4Wemb4rSaPnYHfM6jiCjArzjc4v6KgYV4yfMptdVX5lRHxL88/Jge/z6btD7B/9uS0Lcnt5FetjLVfKy0pWME7HeUJyJImc0dE9RS7Oa6IoX7E+Gl1lYflcDg9vZaAairVvwaufkltWyWP7/eTs9xxhJy2hqSLu/+J0Xa4SjHN9tW1KA==nX-U16文档帖子的长链接icon-default.png?t=O83Ahttps://ipho365-my.sharepoint.com/personal/ding_ipho365_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fding_ipho365_onmicrosoft_com%2FDocuments%2FnX-U16%20%20Instruction%20Manual.pdf&parent=%2Fpersonal%2Fding_ipho365_onmicrosoft_com%2FDocuments&ga=1

一些小教程

我也是看这些教程了解到计算器ROP的。知乎文章1,第1部分icon-default.png?t=O83Ahttps://zhuanlan.zhihu.com/p/618704031

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值