日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 内核驱动程序_内核第三讲,进入ring0,以及编写第一个内核驱动程序.

發布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 内核驱动程序_内核第三讲,进入ring0,以及编写第一个内核驱动程序. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

內核第三講,進入ring0,以及編寫第一個內核驅動程序.

一丶進入ring0之前的簡介

進入0環之前,我們要明白操作系統的設計,操作系統允許驅動程序使用In out等等特權指令來操作高2G的內存.那么必然會有接口.

圖示如下.

那么我們可以模擬一個驅動程序來進入0環.

而操作系統提供的接口的,有專門的名稱.?叫做DDK,?現在改名為WDK了.

DDK:?Driver Development Kit? 驅動程序開發包,例如我們寫的3環系統下,用到的SDK,也可以成為是API.只不過現在叫做內核方法(內核函數)了.

WDK:Windows Driver Kit

WDK是DDK升級而來的.操作系統為了支持熱插拔,所以對DDK升級了.熱插拔就是U盤插入系統.不用安裝驅動了.和U盤綁定在一起了.

我自己用的是WDK7.1.7600,會上傳到課堂資料中.有興趣的可以下載.

注意:?如果編寫驅動程序,請下載對應系統的WDK,因為驅動程序不兼容.只會跟著系統走.

二丶WDK的安裝.

下載之后直接下一步,下一步即可.?如果不會建議百度.

三丶進入0環,編寫第一個內核驅動程序

在進入ring0之前,我們要知道,不管是驅動程序,或者是應用程序,都會有一個入口點.

比如控制臺的入口點是?main,窗口的是winmain.那么看下驅動程序的入口點是什么.

PS:安裝好WDK之后,會有幫助文檔.可以參考幫助文檔.

如果我們要編寫內核驅動,則要看內核驅動的入口點,也就是kerner mode,內核模型.

如果是編寫硬件驅動,則尋找WDM即可.

NTSTATUS

DriverEntry(         //驅動的入口點

__instruct _DRIVER_OBJECT *DriverObject,

__in PUNICODE_STRING RegistryPath

)

{...}

返回值:?STATUS_SUCCESS

內核輸出的API

ULONG

DbgPrint(

IN PCHAR Format,

. . . . [arguments]

);

利用入口我們可以簡單編寫一個內核驅動了.

驅動我們可以用C語言去寫.也可以是C++

#include //編寫內核驅動需要包含NTddk頭文件.

NTSTATUS DriverEntry(__instruct _DRIVER_OBJECT *DriverObject,

__in PUNICODE_STRING RegistryPath)

{int i = 0;

DbgPrint("HelloWorld, %p\r\n",&i);returnSTATUS_SUCCESS;

}

在編譯驅動程序的是否,我們需要一個sources??文件

格式:

TARGETNAME=MyFirstDrive       //指明編譯的文件名

TARGETTYPE=DRIVER        //指明編譯的類型

SOURCES= MyFirstDrive.c     //指明編譯的文件

圖示:

編譯的時候找我們的開發包.

通過開始程序,找到我們的開發包中的編譯XP命令框.點開.

輸入編譯命令?build?文件名

回車就可以編譯我們的驅動程序了.

成功會生成一個sys后綴的文件.那么我們就可使用了.

四丶雙機調試,加載我們的驅動.

我們以調試系統啟動.然后使用加載驅動的工具,加載我們的驅動,那么就可以在調試器中看到我們的驅動代碼了.

當我們啟動之后,我們可以查看下調試器,可以調試我們的代碼.

請注意我們打印的地址,地址是高2G的空間.所以我們就進入了0環空間了.

五丶編寫驅動卸載功能.

我們的驅動現在可以加載.啟動.停止.但是不能卸載.原因就是我們沒有寫卸載的函數.

比如我們的DLL,? DLL來的是否還分為4中情況.

很簡單.只需要把我們的驅動代碼改變一下即可.

#include //編寫內核驅動需要包含NTddk頭文件.//卸載回調函數

VOID Unload(__in struct _DRIVER_OBJECT *DriverObject)

{

DbgPrint("Unload MyDrive\n");

}

NTSTATUS DriverEntry(__instruct _DRIVER_OBJECT *DriverObject,

__in PUNICODE_STRING RegistryPath)

{int i = 0;

DbgPrint("HelloWorld, %p\r\n",&i);//注冊一下驅動卸載的函數

DriverObject->DriverUnload =Unload;returnSTATUS_SUCCESS;

}

給個卸載的函數指針即可.注意啟動入口點的參數是一個結構體.啟動你想要支持卸載驅動.那么就寫上卸載驅動的函數指針即可.

六丶藍屏的出現.

編寫驅動代碼,不像我們編寫ring3下的應用程序,崩潰了就是崩潰了.?我們寫驅動程序恨不得寫一行,檢查500行.

看下藍屏的實現.只要我們的程序異常,那么就會藍屏.

代碼:

#include //編寫內核驅動需要包含NTddk頭文件.//卸載回調函數

VOID Unload(__in struct _DRIVER_OBJECT *DriverObject)

{

DbgPrint("Unload MyDrive\n");

}

NTSTATUS DriverEntry(__instruct _DRIVER_OBJECT *DriverObject,

__in PUNICODE_STRING RegistryPath)

{int i = 0;int *p = NULL; //異常代碼.會造成C05訪問異常.

DbgPrint("HelloWorld, %p\r\n",&i);*p = 1;       //代碼會產生異常,系統會藍屏.//注冊一下驅動卸載的函數

DriverObject->DriverUnload =Unload;returnSTATUS_SUCCESS;

}

很簡單,就加了一行C05訪問異常的代碼.

重新編譯一下.并且驅動加載.

因為家里電腦系統原因,藍屏了會緊接著重啟.所以來不及截圖.請大家自己嘗試.

課堂代碼資料:

轉載請著名出處,謝謝.

總結

以上是生活随笔為你收集整理的java 内核驱动程序_内核第三讲,进入ring0,以及编写第一个内核驱动程序.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩91精品 | 美女扒开腿让男生捅 | 国产亚洲精品久久久久久777 | 亚洲国产精品综合 | www.波多野结衣.com | 玖玖爱国产 | 日韩av地址 | 加勒比视频在线观看 | 亚洲视频福利 | 亚瑟av | 欧美一二三区视频 | 日韩欧美一级在线 | 亚洲色图av在线 | 青青国产| 一区二区三区欧美精品 | 国产成人无码精品久久久久久 | 天天摸夜夜| 超碰不卡| 狠狠躁夜夜躁人人爽天天高潮 | 免费观看av | 亚洲视频国产视频 | 国产精品久久久久久久久 | 日韩黄色免费看 | 春物催眠 | 女女爱爱视频 | 精品人妻一区二区三区日产乱码卜 | 亚洲一卡二卡在线 | 少妇高潮网站 | 8050午夜一级毛片久久亚洲欧 | 亚洲精品五月 | 一本色道久久综合精品婷婷 | 久久精品无码一区二区三区免费 | 国产黄色免费大片 | 天天躁夜夜躁 | 搡国产老太xxx网站 高h喷汁呻吟3p | 99热免费精品 | 欧美绿帽合集xxxxx | 春物催眠 | 欧美精品a区 | 国产精品无码AV | 手机av网 | 日韩首页 | 色葡萄影院 | 国产免费美女 | 色婷婷av一区二区三区大白胸 | 日本精品一区二区三区四区的功能 | 伊人国产女 | 伦av综合一区 | 夜夜狠狠 | 九九热这里有精品视频 | 性折磨bdsm欧美激情另类 | 国产成人午夜高潮毛片 | 日本a v在线播放 | www.日批| 少妇一级淫片免费视频 | 国产午夜精品一区二区三区嫩草 | 国产综合第一页 | 日韩久草| 欧美精品一区二区三区四区五区 | aaaaa一级片| 日韩激情av| 亚洲国产123| 999久久久精品 | 九色国产视频 | 在线免费看黄网站 | 免费无码又爽又黄又刺激网站 | 粗了大了 整进去好爽视频 日本女优中文字幕 | 日韩欧美一本 | 亚洲精品一卡二卡 | 少女情窦初开的第4集在线观看 | 波多野吉衣一区 | 综合网中文字幕 | 国产精品一区二区在线看 | 亚洲精品乱码久久久久久蜜桃动漫 | 欧美图片第一页 | 亚洲激情一区二区三区 | 国产成人一区二区三区别 | 欧美视频免费 | 又黄又爽无遮挡 | 各处沟厕大尺度偷拍女厕嘘嘘 | 国产爆乳无码一区二区麻豆 | 京香julia在线观看 | 这里只有久久精品 | 正在播放91| 天天爽天天爱 | 一区二区三区日韩视频 | 少妇无套内谢免费视频 | 91精品亚洲 | 香蕉婷婷 | 国产成人免费在线视频 | 男人的天堂手机在线 | 亚洲精品永久免费 | 午夜影院免费观看 | 综合在线亚洲 | 中文字幕理论片 | 女的高潮流时喷水图片大全 | 日韩av中文在线 | 日本免费一区二区三区四区 | 无套内谢少妇露脸 |