亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1529 | 回復: 4
打印 上一主題 下一主題

[內(nèi)核模塊] copy_{from/to}_user的實現(xiàn) [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2016-08-09 15:07 |只看該作者 |倒序瀏覽
內(nèi)核空間無法訪問用戶態(tài)地址。但是內(nèi)核代碼段中。include/asm-generic/uaccess.h#L79

78 #ifndef __copy_from_user
79 static inline __must_check long __copy_from_user(void *to,
80                 const void __user * from, unsigned long n)
81 {
82         if (__builtin_constant_p(n)) {
83                 switch(n) {
84                 case 1:
85                         *(u8 *)to = *(u8 __force *)from;
86                         return 0;
87                 case 2:
88                         *(u16 *)to = *(u16 __force *)from;
89                         return 0;
90                 case 4:
91                         *(u32 *)to = *(u32 __force *)from;
92                         return 0;
93 #ifdef CONFIG_64BIT
94                 case 8:
95                         *(u64 *)to = *(u64 __force *)from;
96                         return 0;
97 #endif
98                 default:
99                         break;
100                 }
101         }
102
103         memcpy(to, (const void __force *)from, n);
104         return 0;
105 }
106 #endif
除了權限檢查之外就是直接拷貝,網(wǎng)上看到了一些關于exception的說法,但是還是不能系統(tǒng)的理解。

論壇徽章:
13
程序設計版塊每日發(fā)帖之星
日期:2016-06-29 06:20:00每日論壇發(fā)貼之星
日期:2016-08-14 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-08-14 06:20:00每日論壇發(fā)貼之星
日期:2016-08-13 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-08-13 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-08-13 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-08-13 06:20:00每日論壇發(fā)貼之星
日期:2016-08-12 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-08-12 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-08-12 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-08-12 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2016-08-09 06:20:00
2 [報告]
發(fā)表于 2016-08-11 10:07 |只看該作者
朋友,我建議你把這個問題好好再表述一遍。

論壇徽章:
0
3 [報告]
發(fā)表于 2016-08-11 17:23 |只看該作者
內(nèi)核空間無法訪問用戶態(tài)地址。

內(nèi)核代碼可以訪問用戶空間。
具體哪些空間可以訪問,需要看MMU配置。

論壇徽章:
20
程序設計版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-07-16 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-07-18 06:20:00每日論壇發(fā)貼之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16賽季CBA聯(lián)賽之江蘇
日期:2017-06-26 11:05:5615-16賽季CBA聯(lián)賽之上海
日期:2017-07-21 18:12:5015-16賽季CBA聯(lián)賽之青島
日期:2017-09-04 17:32:0515-16賽季CBA聯(lián)賽之吉林
日期:2018-03-26 10:02:16程序設計版塊每日發(fā)帖之星
日期:2016-07-15 06:20:0015-16賽季CBA聯(lián)賽之江蘇
日期:2016-07-07 18:37:512015亞冠之薩濟拖拉機
日期:2015-08-17 12:21:08
4 [報告]
發(fā)表于 2016-08-16 16:30 |只看該作者
這一段是generic的實現(xiàn),在具體的架構上應該不是這份代碼。

論壇徽章:
20
程序設計版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-07-16 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-07-18 06:20:00每日論壇發(fā)貼之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16賽季CBA聯(lián)賽之江蘇
日期:2017-06-26 11:05:5615-16賽季CBA聯(lián)賽之上海
日期:2017-07-21 18:12:5015-16賽季CBA聯(lián)賽之青島
日期:2017-09-04 17:32:0515-16賽季CBA聯(lián)賽之吉林
日期:2018-03-26 10:02:16程序設計版塊每日發(fā)帖之星
日期:2016-07-15 06:20:0015-16賽季CBA聯(lián)賽之江蘇
日期:2016-07-07 18:37:512015亞冠之薩濟拖拉機
日期:2015-08-17 12:21:08
5 [報告]
發(fā)表于 2016-08-16 16:44 |只看該作者
如果user傳來的from是惡意地址,比如NULL,那么在內(nèi)核執(zhí)行generic版本的__copy_from_user就會產(chǎn)生crash(嚴格的說是保護錯誤/異常)。

所以真正的copy_from_user會把函數(shù)的調(diào)用位置記在一個表里(exception表),
等到非法訪問產(chǎn)生異常的時候,在異常處理函數(shù)里檢查錯誤的指令是否在exception表里,
如果是,修改表示eip到fixcode;
異常處理返回后,fixcode得到執(zhí)行,返回錯誤-EFAULT給調(diào)用者。

具體參見ULK3的第10章,最后一部分。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP