arm,x86平台上userspace 和 kernelspace更改rodata段数据测试结果
本帖最后由 lincoln-shaw 于 2011-04-17 09:30 编辑
arm,x86平台上userspace 和 kernelspace更改rodata段数据测试结果
arm x86
str = 'x'; segmentfault segmentfault
(在usersapce更改rodata数据)
read(..str, len); bad address(系统自带driver) bad address(系统自带driver)
没错 同时str 的value值能改变(自己写的driver, memcopy) kiss(自己写的driver, memcopy)
没错 但str的值没被改变(自己写的driver, copytouser) 没错,但str value没改变(自己写的driver,copytouser)
change str in kernel,str='x' 没错,但kernel space的str value没改变 没错,但kernel space的str value没改变
结论:
1 :无论是x86还是arm以str ='x'方式试图改变rodata数据都不成
2 86和arm不同平台上memcopy 中校验的机制不一样
3 :检查代码对userspace程序试图修改rodata数据报出错处理,而kernelspace不做出错处理
4 :.........
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论