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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: 獨孤九賤
打印 上一主題 下一主題

新爆內(nèi)核高危漏洞sock_sendpage的利用分析的討論 [復(fù)制鏈接]

論壇徽章:
0
21 [報告]
發(fā)表于 2009-08-19 22:35 |只看該作者
不錯,九劍兄分析的很好。再接再厲。

論壇徽章:
0
22 [報告]
發(fā)表于 2009-08-19 22:39 |只看該作者
原帖由 CUDev 于 2009-8-19 21:14 發(fā)表
感覺exit_kernel()那個函數(shù)沒有多少用處,可以直接聲明為int kernel_code(),返回-1。kernel_code自動跳回到用戶空間,然后直接調(diào)用execl()就好了。

另外,kernel_code()中可以調(diào)用標(biāo)準(zhǔn)庫里面的函數(shù)嗎?
ht ...


如果從kernel_code中返回, 應(yīng)該是返回到sock_sendpage外面去了吧, 并不是直接返回用戶態(tài). 到時候控制流發(fā)生什么變化還不好說, 倒不如直接iret返回到用戶態(tài)的好.

論壇徽章:
0
23 [報告]
發(fā)表于 2009-08-19 22:47 |只看該作者
那那個在kernel中執(zhí)行的函數(shù)中調(diào)用C庫的問題呢?

論壇徽章:
0
24 [報告]
發(fā)表于 2009-08-19 23:00 |只看該作者

回復(fù) #23 CUDev 的帖子

我覺得應(yīng)該是可以調(diào)的吧~
整個程序是在用戶態(tài)編譯的, 可以鏈接C庫, kernel_code中調(diào)用C庫的函數(shù)自然能夠編譯通過.
而既然已經(jīng)在內(nèi)核態(tài)調(diào)用了用戶函數(shù)kernel_code, 那么kernel_code中調(diào)用C庫函數(shù)應(yīng)該也沒問題.

論壇徽章:
0
25 [報告]
發(fā)表于 2009-08-19 23:01 |只看該作者
memset在編譯的時候會不會已經(jīng)被替換成相應(yīng)的匯編代碼呢?memcpy好像在編譯的時候就是這么處理的。。

論壇徽章:
0
26 [報告]
發(fā)表于 2009-08-19 23:14 |只看該作者
這是memset編譯后的結(jié)果

0x0000118d <give_it_to_me_any_way_you_can+233>: mov    0xffffffe8(%ebp),%eax
0x00001190 <give_it_to_me_any_way_you_can+236>: mov    %eax,%edi
---Type <return> to continue, or q <return> to quit---
0x00001192 <give_it_to_me_any_way_you_can+238>: cld   
0x00001193 <give_it_to_me_any_way_you_can+239>: mov    $0x0,%edx
0x00001198 <give_it_to_me_any_way_you_can+244>: mov    $0x8,%eax
0x0000119d <give_it_to_me_any_way_you_can+249>: mov    %eax,%ecx
0x0000119f <give_it_to_me_any_way_you_can+251>: mov    %edx,%eax
0x000011a1 <give_it_to_me_any_way_you_can+253>: rep stos %eax,%es%edi)

論壇徽章:
0
27 [報告]
發(fā)表于 2009-08-19 23:15 |只看該作者

回復(fù) #24 kouu 的帖子

Kernel中是不能調(diào)用C庫的,Kernel中自己實現(xiàn)了一些簡單的類C庫接口

論壇徽章:
0
28 [報告]
發(fā)表于 2009-08-19 23:18 |只看該作者

回復(fù) #26 hackisle 的帖子

你拿之前的帖子中的exploit測試一下
http://www.securityfocus.com/dat ... derbar_emporium.tgz
我這邊是:

  1. 0x08048a33 <give_it_to_me_any_way_you_can+223>:        movl   $0x1,0x804a7d4
  2. 0x08048a3d <give_it_to_me_any_way_you_can+233>:        movl   $0x20,0x8(%esp)
  3. 0x08048a45 <give_it_to_me_any_way_you_can+241>:        movl   $0x0,0x4(%esp)
  4. 0x08048a4d <give_it_to_me_any_way_you_can+249>:        mov    -0x10(%ebp),%eax
  5. 0x08048a50 <give_it_to_me_any_way_you_can+252>:        mov    %eax,(%esp)
  6. 0x08048a53 <give_it_to_me_any_way_you_can+255>:        call   0x804863c <memset@plt>
  7. 0x08048a58 <give_it_to_me_any_way_you_can+260>:        add    $0x24,%esp
  8. 0x08048a5b <give_it_to_me_any_way_you_can+263>:        pop    %ebx
  9. 0x08048a5c <give_it_to_me_any_way_you_can+264>:        pop    %ebp
  10. 0x08048a5d <give_it_to_me_any_way_you_can+265>:        ret   
復(fù)制代碼

論壇徽章:
0
29 [報告]
發(fā)表于 2009-08-19 23:31 |只看該作者
0x0000118d <give_it_to_me_any_way_you_can+233>: mov    0xffffffe8(%ebp),%eax
0x00001190 <give_it_to_me_any_way_you_can+236>: mov    %eax,%edi
---Type <return> to continue, or q <return> to quit---
0x00001192 <give_it_to_me_any_way_you_can+238>: cld   
0x00001193 <give_it_to_me_any_way_you_can+239>: mov    $0x0,%edx
0x00001198 <give_it_to_me_any_way_you_can+244>: mov    $0x8,%eax
0x0000119d <give_it_to_me_any_way_you_can+249>: mov    %eax,%ecx
0x0000119f <give_it_to_me_any_way_you_can+251>: mov    %edx,%eax
0x000011a1 <give_it_to_me_any_way_you_can+253>: rep stos %eax,%es%edi)
0x000011a3 <give_it_to_me_any_way_you_can+255>: add    $0x1c,%esp
0x000011a6 <give_it_to_me_any_way_you_can+258>: pop    %ebx
0x000011a7 <give_it_to_me_any_way_you_can+259>: pop    %esi
0x000011a8 <give_it_to_me_any_way_you_can+260>: pop    %edi
0x000011a9 <give_it_to_me_any_way_you_can+261>: pop    %ebp
0x000011aa <give_it_to_me_any_way_you_can+262>: ret   

還是和原來一樣,會不會是編譯器版本的問題?

論壇徽章:
0
30 [報告]
發(fā)表于 2009-08-19 23:34 |只看該作者

回復(fù) #27 CUDev 的帖子

內(nèi)核代碼中不能調(diào)用庫函數(shù), 我認(rèn)為其原因是內(nèi)核編譯的時候沒有去鏈接這些庫.
但是這里的kernel_code跟這個不是一回事... 這里的kernel_code是用戶程序的一部分, 用戶程序在編譯時是可以鏈接C庫的.
如果是靜態(tài)鏈接, 那么在用戶程序的可執(zhí)行文件中, C庫已經(jīng)是這個文件的一部分了. 調(diào)用C庫函數(shù)和調(diào)用自己寫的函數(shù)應(yīng)該沒什么區(qū)別.
如果是動態(tài)鏈接, 在用戶程序被運行的時候, C庫被map到進(jìn)程空間里面, 然后被調(diào)用的函數(shù)的符號被解決...

[ 本帖最后由 kouu 于 2009-8-19 23:42 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP