网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月27日漏签0天
fx-es(ms)吧 关注:17,856贴子:315,985
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 11回复贴,共1页
<<返回fx-es(ms)吧
>0< 加载中...

一种可能的cwii通用rop方法

  • 取消只看楼主
  • 收藏

  • 回复
  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
注:本贴所有数据均来自模拟器rom,不确定在真机上的可行性
以下以EY-031A为例


  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
方法:在an后间隔特定的字节数后输入rop字符串
一般为12个字节(分别为xr4,qr8),但在部分机型上可能不同


2026-01-27 19:22:55
广告
不感兴趣
开通SVIP免广告
  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
cwi理论上也可行,不过在cwi计算过程中屏幕无法正常绘制,需手动更改相应的sfr;cwii计算过程则以转圈代替,因此可以完成屏幕绘制


  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
原理和an更改栈指针的基本原理相关.在正常输入an并按等号时,可以观察到计算器类似重启的行为,若先在0x000000处设置断点,则在按等号后可发现断点被触发


  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
众所周知,在按等号后计算器会将输入区的内容复制到两个区域,在cwi中为0xd248和0xd522,在cwii中则为0x9330和0x9588.前一个区域为重做缓冲区,后一个则似乎是卡西欧用来解析输入内容的区域


  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以EY-031A为例,在按下等号后,计算器会调用0x017cf8函数处理输入内容,随后在0x017d16处将er14设为0x9588,并遍历0x9588区域,将er14递增,直至输入内容的末端。
假设输入内容为fd 20,则在遇到该字符后er14变为0x958a.


  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
随后根据目前的字符,计算器会从rom window中的数表取出处理该字符的函数地址,并通过0x017d40处的bl er4跳转。
对于fd20,计算器会跳转到0x017ab8.在此处计算器会再次判断当前字符,并从另一个数表中取出跳转地址,通过0x017af6处的bl er2跳转。
对于fd20,计算器总会取最后一个地址,且该地址在不同的机型中均一致,即跳转至0x015402.


  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
而该地址不同于其他地址,对应的并不是某个特定函数,而是某个函数的中间.在EY-005A中则是一个4字节指令的中间,计算器恰好将此指令识别为and r14,r9,从而改变了er14,使在该机型中(可能仅限于模拟器rom)只需间隔4个字节便可输入rop string.


2026-01-27 19:16:55
广告
不感兴趣
开通SVIP免广告
  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
虽然在不同的机型中该地址对应的函数相对位置不尽相同,但在该地址后不远处总会有一个不返回跳转指令,而在此后计算器又会执行多次不返回跳转(对于EY-031A,在仅输入fd20的情况下跳转路径为0x0155cc-0x013e3c).以EY-031A为例,无论中间路径如何,最后总会跳转到0x013e3c.而此处的指令为mov sp,er14;pop xr4;pop qr8;pop pc,看起来是函数0x013d68的结尾。在一般情况下此处的mov sp,er14对应函数开头处的mov er14,sp,即常见的对sp的备份操作,但此时计算器是从输入内容处理函数直接跳转到该函数的结尾,而er14则是(对于多数机型,前述EY-005A不同)0x958a。因此计算器会将sp设置为0x958a,并执行pop xr4,pop qr8,pop pc的操作。


  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
而在一般情况下,我们在输入an相关的内容时一般以an结尾,因此fd20后均为00,pop pc指令会将pc设为0.对于U8处理器,rom的前4个字节分别为初始栈顶指针以及程序初始化入口,而卡西欧将初始栈顶指针设为0xf000,正好与后面的初始化入口构成了一个不返回跳转指令,因此将pc设为0时,cpu会将此处的指令识别为“跳转到程序入口”,与按下开机键的操作基本相同,唯一不同的地方是按开机键执行初始化时计算器会将sp设为0xf000,而此时则是以当前的sp进行初始化。上述即为an造成栈顶指针偏移的基本原理。


  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
而由于cwii的栈显著大于cwi,因此在执行an操作后,栈一般会覆盖输入缓冲区,重做缓冲区以及设置数据区的全部内容。因此cwii在执行an操作后会变得极不稳定,且经常出现设置数据异常。但与cwi不同,cwii的变量存储区在0x9588区域之后,因此在执行an操作后不会出现异常变量。


  • 贴吧用户_QQR3MM4
  • 991EX
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因此,若在输入an后间隔12个字节并输入rop字符串,理论上则可在cwii上执行rop。以EY-031A为例(注意:模拟器rom与真机rom不同,模拟器rom中的地址大概率不适用于真机),输入an000000000000Ayd>ch
并按等号即可进入自检。
(若不修改内存也可通过进入68模式刷取an和A,在模拟器上经测试有效)


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 11回复贴,共1页
<<返回fx-es(ms)吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示