打印

如何人为地让ARM的程序跑飞了

[复制链接]
3403|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
micropower|  楼主 | 2012-12-12 14:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
江枫渔火| | 2012-12-12 14:47 | 只看该作者
这也要测啊?应该测试是不是会跑飞,那就尽情折腾啊,看看什么情况下会有跑飞的危险。如果你要测试跑飞后的情况,那估计情况很多吧,难以定性。有可能发生系统定义的异常而进入死循环,也有可能跑飞到刚好另一个正常的入口点,还能正常运行,只是忽略了某部分代码,数据应该就没对了。

使用特权

评论回复
板凳
望断云山| | 2012-12-12 14:50 | 只看该作者
防止跑飞比较难,有意跑飞还不简单么

使用特权

评论回复
地板
micropower|  楼主 | 2012-12-12 16:11 | 只看该作者
本帖最后由 micropower 于 2012-12-12 16:12 编辑
江枫渔火 发表于 2012-12-12 14:47
这也要测啊?应该测试是不是会跑飞,那就尽情折腾啊,看看什么情况下会有跑飞的危险。如果你要测试跑飞后的 ...

我们这是安全类产品,系统要求即使程序跑飞了,看门狗芯片也坏了的情况下,依然能保证不对使用的人体造成伤害。所以这是必须要测的。我们现在的测法只有让程序进入某个死循环的状态。你说的第二中情况也有可能,也需要考虑的。

使用特权

评论回复
5
micropower|  楼主 | 2012-12-12 16:13 | 只看该作者
望断云山 发表于 2012-12-12 14:50
防止跑飞比较难,有意跑飞还不简单么

哪请问怎么实现呢?

使用特权

评论回复
6
micropower|  楼主 | 2012-12-12 16:17 | 只看该作者
江枫渔火 发表于 2012-12-12 14:47
这也要测啊?应该测试是不是会跑飞,那就尽情折腾啊,看看什么情况下会有跑飞的危险。如果你要测试跑飞后的 ...

正如你最后说的,跑飞后,跑到另一个正常的入口,但数据是不对的。这也有相应的故障处理。但现在我就像要让这故障出来。以验证我的系统是否能正确响应这个故障并处理。

使用特权

评论回复
7
江枫渔火| | 2012-12-12 16:20 | 只看该作者
跑飞的基本意思就是PC指针跳到了不可预计的地方去了~

用一个汇编函数在你需要跑飞的地方 把PC指针设置为你需要跑飞的目的地点~

使用特权

评论回复
8
望断云山| | 2012-12-12 16:27 | 只看该作者
micropower 发表于 2012-12-12 16:13
哪请问怎么实现呢?

随便在什么地方或者在什么中断里随便从堆栈里弹个数出来或者压个数进去,其结果必然是跑飞,或者随便乱修改一下sp,不跑飞才是怪事

使用特权

评论回复
9
jlass| | 2012-12-13 08:51 | 只看该作者
随便把两个地址线短路就好了,改什么程序啊

使用特权

评论回复
评论
望断云山 2012-12-13 10:03 回复TA
还是你比较狠,呵呵 
10
sjnh| | 2012-12-13 09:00 | 只看该作者
楼上说的对,短路一下数据或地址总线就可以了

如果想随时软件做可以是非法指针,例如定义指针没有初始化就用, 还有就是数组越界,这是软件最方便的。

使用特权

评论回复
11
acute1110| | 2012-12-13 10:37 | 只看该作者
这个太简单了

使用特权

评论回复
12
micropower|  楼主 | 2012-12-13 11:29 | 只看该作者
jlass 发表于 2012-12-13 08:51
随便把两个地址线短路就好了,改什么程序啊

高手,那我结帖了

使用特权

评论回复
13
micropower|  楼主 | 2012-12-13 12:38 | 只看该作者
本帖最后由 micropower 于 2012-12-13 15:12 编辑

呃,新版的怎么结贴来着

结了……刷了一下午的网页才刷出那个“我要结帖”。

使用特权

评论回复
14
cctv19881023| | 2013-2-6 17:33 | 只看该作者
在程序里面给程序PC指针乱赋值就可以了

使用特权

评论回复
15
lemenade| | 2013-2-7 20:12 | 只看该作者
凑个热闹,学习一下。

使用特权

评论回复
16
xinyipcb| | 2013-2-14 01:15 | 只看该作者
类似的情况,我以前这么干:拿个金属的镊子,在芯片的数据线集中的地方,轻轻一划,肯定跑飞了。 注意千万不要碰到电源或者地的管脚,否则有可能把芯片搞瘫痪了。

使用特权

评论回复
17
skm2008| | 2013-2-20 12:34 | 只看该作者
设置一个死循环

使用特权

评论回复
18
micropower|  楼主 | 2013-2-21 12:21 | 只看该作者
skm2008 发表于 2013-2-20 12:34
设置一个死循环

我在4楼已经说了,我们以前就是用这种方法,但这并不是真正的跑飞,真正的跑飞是PC指针无序地乱指。跑飞的时候,程序是很有可能还会胡乱执行的。但设置死循环就啥都不执行了。 达不到测试效果。

使用特权

评论回复
19
dddddcccccyyyyy| | 2013-2-22 15:13 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

355

帖子

3

粉丝