t3486784401 发表于 2015-12-28 10:50:06

【漏洞】发现 ICCAVRv7.22 数学库漏洞

前些年做项目积攒了一些 AVR 的开发板,简单的采样、发波什么的用的一直挺顺手。

最近做了一批 WS2812 的驱动,写了些颜色渐变效果,结果用到三角函数时,发现开始坑爹。

最开始是用 AvrStudio 仿真时发现三角函数转一会就转不动了,后来用 M64 实物运行,串口上传计算结果,才发现果然存在问题。

--------------------------------------------------------------------------------------------------------

漏洞表现为:sin/cos 的定义域(自变量范围)被限制在了 -4π~+4π 之间。
以前在 VC 当中用三角函数时,没出现过这种情况(类似颜色发生器也没有爆掉)。

测试平台:ATMEGA64A,PC串口

测试环境:ICCAVR v7.22

测试函数:sin(x), cos(x), tan(x).("math.h")

测试结果:坑爹的漏洞

相关附件:

(测试项目+原始数据)

(数据曲线)


--------------------------------------------------------------------------------------------------------

M64是常规的 AVR 内核,如果数学库存在这个漏洞的话,估计低端的 MEGA 系列都跑不掉(所以TINY也别随便搞数学库了,查表多好)。
好在 AVR 本来就不是什么高端单片机,真心用到三角函数时大多是要查表来做的,也就没那么些烦心事了。

不舍的六年 发表于 2015-12-28 13:59:02

一直用AVR,又学到新知识了,谢谢前辈分享经验!!

runapp 发表于 2016-1-3 15:17:40

模拟器有这个问题吗?如果是库漏洞的话应该也有吧。按这个样子来说库函数多半也是查表……

t3486784401 发表于 2016-1-3 23:57:05

runapp 发表于 2016-1-3 15:17
模拟器有这个问题吗?如果是库漏洞的话应该也有吧。按这个样子来说库函数多半也是查表…… ...

不光是模拟器,我用实物运行的,说明直接是库函数的问题(结果模拟器、实物运行出了相同的BUG)

t3486784401 发表于 2016-1-3 23:57:52

不舍的六年 发表于 2015-12-28 13:59
一直用AVR,又学到新知识了,谢谢前辈分享经验!!

感谢大家来捧场!

dhbighead 发表于 2016-1-4 00:09:06

本帖最后由 dhbighead 于 2016-1-4 00:11 编辑

库的文档里应该有相应的说明吧
大家可能容易忽略了

t3486784401 发表于 2016-1-4 00:30:35

dhbighead 发表于 2016-1-4 00:09
库的文档里应该有相应的说明吧
大家可能容易忽略了

整篇 PDF 都读无数遍了,只知道是个弧度三角函数,自变量范围真心没写

ICCAVR 毕竟是免费的玩意,做成这样也就不错了

tim 发表于 2016-1-4 00:34:27

t3486784401 发表于 2016-1-4 00:30
整篇 PDF 都读无数遍了,只知道是个弧度三角函数,自变量范围真心没写

ICCAVR 毕竟是免费的玩意,做成这 ...

iccavr是收费的商业软件

dhbighead 发表于 2016-1-4 00:38:14

t3486784401 发表于 2016-1-4 00:30
整篇 PDF 都读无数遍了,只知道是个弧度三角函数,自变量范围真心没写

ICCAVR 毕竟是免费的玩意,做成这 ...

ICC大多用的都是破解版。
所以。。没法反映bug吧

Shiwai 发表于 2016-1-8 20:09:39

一直用的都是一些简易的功能,还有这个问题,长知识了,果断右击保存,谢谢楼主……

hitgds 发表于 2016-1-8 21:56:25

可能是破解版故意坑你,一般的专业软件都是官方出的破解,你用破解他知道,在某些方面故意坑你,以前被坑过

t3486784401 发表于 2016-1-10 20:24:58

hitgds 发表于 2016-1-8 21:56
可能是破解版故意坑你,一般的专业软件都是官方出的破解,你用破解他知道,在某些方面故意坑你,以前被坑过 ...

目前除了这个明显的BUG外,感觉 v7.22 还是比较亲民的

虽然说的确是破解的玩意

skyxjh 发表于 2016-1-10 20:43:58

从来都不用库,所以没发现任何问题{:lol:}
页: [1]
查看完整版本: 【漏洞】发现 ICCAVRv7.22 数学库漏洞