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

  免費(fèi)注冊 查看新帖 |

Chinaunix

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

[C] 這幾天研究os內(nèi)核時(shí)遇到一個(gè)奇怪的問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2016-11-27 00:44 |只看該作者 |倒序?yàn)g覽
asm寫的簡單os kernel, 把它編譯成elf64格式時(shí),能成功加載,也能正常運(yùn)行,但是跳不出內(nèi)核地址范圍,就是,當(dāng)call一個(gè)存在于內(nèi)核地方范圍之外的代碼時(shí)將導(dǎo)致死機(jī);而編譯成原先的純二進(jìn)制格式則沒有這個(gè)問題。很是奇怪,因?yàn)槎懈袷降拇a布局應(yīng)該是基本一樣的。這個(gè)可能是什么原因呢?首先可以排除ring0/ring3問題,因?yàn)槟壳爸恢С謗ing0

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2016-11-27 00:48 |只看該作者
本帖最后由 stevenyi 于 2016-11-27 00:49 編輯

寄存器狀態(tài),可以看出點(diǎn)端倪嗎?

elf.png (4.83 KB, 下載次數(shù): 47)

elf.png

raw.png (5.36 KB, 下載次數(shù): 37)

raw.png

論壇徽章:
3
處女座
日期:2015-03-18 14:35:45羊年新春福章
日期:2015-03-18 14:48:23午馬
日期:2015-03-18 14:51:09
3 [報(bào)告]
發(fā)表于 2016-11-28 09:34 |只看該作者
call函數(shù)的地址 要在GDT和LDT 中

論壇徽章:
3
處女座
日期:2015-03-18 14:35:45羊年新春福章
日期:2015-03-18 14:48:23午馬
日期:2015-03-18 14:51:09
4 [報(bào)告]
發(fā)表于 2016-11-28 09:46 |只看該作者
直接找到段描述子,查看頁目錄范圍,看看你調(diào)用的函數(shù)地址是否映射

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2016-11-28 23:03 |只看該作者
本帖最后由 stevenyi 于 2016-11-28 23:06 編輯
mr_sev 發(fā)表于 2016-11-28 09:46
直接找到段描述子,查看頁目錄范圍,看看你調(diào)用的函數(shù)地址是否映射

從boot loader到內(nèi)核,之間就是一條jmp語句,我在jump之前調(diào)用沒問題,jmp過去馬上調(diào)用就不行,難道一條jmp語句能改變內(nèi)存映射?而且kernel不用elf格式,用匯編直接生成bin格式也沒問題,我上面貼圖顯示二中情況寄存器是一樣的


論壇徽章:
59
2015年亞洲杯之約旦
日期:2015-01-27 21:27:392015年亞洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵節(jié)徽章
日期:2015-03-06 15:50:392015年亞洲杯之阿聯(lián)酋
日期:2015-03-19 17:39:302015年亞洲杯之中國
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03雙子座
日期:2014-12-10 21:39:16處女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
6 [報(bào)告]
發(fā)表于 2016-11-29 09:59 |只看該作者
回復(fù) 5# stevenyi

你jmp到內(nèi)核以外不當(dāng)機(jī)才神了,要用
jmp gdt啦啦啦。此外,ldt必須在gdt中有登錄

jmp (jmp gdt)會重新映射內(nèi)存, 不然如何實(shí)現(xiàn)進(jìn)程分離?



論壇徽章:
3
處女座
日期:2015-03-18 14:35:45羊年新春福章
日期:2015-03-18 14:48:23午馬
日期:2015-03-18 14:51:09
7 [報(bào)告]
發(fā)表于 2016-11-29 11:03 |只看該作者
你把你要調(diào)用函數(shù)地址空間添加倒全局描述符表呀

論壇徽章:
59
2015年亞洲杯之約旦
日期:2015-01-27 21:27:392015年亞洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵節(jié)徽章
日期:2015-03-06 15:50:392015年亞洲杯之阿聯(lián)酋
日期:2015-03-19 17:39:302015年亞洲杯之中國
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03雙子座
日期:2014-12-10 21:39:16處女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
8 [報(bào)告]
發(fā)表于 2016-11-29 11:55 |只看該作者
回復(fù) 6# folklore

記錯(cuò)了, 是JMP TSS

論壇徽章:
3
處女座
日期:2015-03-18 14:35:45羊年新春福章
日期:2015-03-18 14:48:23午馬
日期:2015-03-18 14:51:09
9 [報(bào)告]
發(fā)表于 2016-11-29 15:43 |只看該作者
你cs ds的gdt/ldt index 是否存在呢?  

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2016-12-01 09:41 |只看該作者
folklore 發(fā)表于 2016-11-29 09:59
回復(fù) 5# stevenyi

你jmp到內(nèi)核以外不當(dāng)機(jī)才神了,要用

目前很簡單,沒做進(jìn)程分離,整個(gè)系統(tǒng)都運(yùn)行在內(nèi)核級,所謂跳到內(nèi)核外是形象說法,實(shí)際上整個(gè)內(nèi)存空間都屬于內(nèi)核。問題是為什么在boot loader里可以call到內(nèi)核外再返回來,而jmp到os后再call同一個(gè)地址就死掉了,這中間就只隔了一個(gè)jmp語句

您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP