操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    1. 前言

    最近一段時間,我一直在研究 windows 驅動開發,下面跟大家簡單聊聊:

    • 對比 linux,windows 驅動無論是市面上的書籍,視頻還是社區,博文以及號主,寫的人很少,導致學習曲線直線上升;
    • windows 驅動 從業 人員就更少了;
    • 開發環境部署麻煩;
    • 驅動安裝發布麻煩,需要數字簽名。如果是發布到windows update 庫里面,還需要做微標認證。

    為什么還要寫?因為在學習的過程中,發現很多東西還是很相同的,如果你是從事linux 開發,可能會有些啟發,如果是對windows 驅動開發有需求,可能提供一些不成熟的建議。

    接下來進入正文,給大家簡單介紹一下windows 驅動。

    2. windows 體系架構

    2.1 操作系統與應用程序

    在許多現代操作系統中,應用程序和操作系統是相互隔離的。操作系統的核心代碼運行在特權模式下,即內核模式。而應用程序運行在非特權模式下,即用戶模式。

    操作系統和應用程序的關心類似于服務器和客戶端的關系,這點在windows 平臺下顯得更加突出:

    幾個概念:

    • system 進程:windows 操作系統本身會起一個 system 進程(加載kernel32.dll),有點類似于 linux 下的 init進程,具體細節不展開。
    • FDO (Function Driver Object):設備功能驅動
    • FiDO (Filter Driver Object):過濾驅動
    • PDO (Physical Driver Object):物理設備驅動,真正訪問硬件的地方。
    • IRP (I/O Request Packet),應用程序 想要訪問內核數據,必須通過IRP 傳遞。又叫IRP請求,當應用程序和驅動交互時,發送一個IRP 請求,IRP 會在各層設備驅動之間來回傳動與轉發。

    2.2 操作系統分層

    windows 的設計思想是將內核設計的盡可能的小,并且采用“客戶端-服務器”的結構。操作系統各個組件或者模塊是通過消息進行通信的。

    嵌入式物聯網需要學的東西真的非常多,千萬不要學錯了路線和內容,導致工資要不上去!

    無償分享大家一個資料包,差不多150多G。里面學習內容、面經、項目都比較新也比較全!某魚上買估計至少要好幾十。

    點擊這里找小助理0元領取:加微信領取資料





    • win32 子系統:是最純正的windows 系統,其他子系統都是通過win32 子系統的接口來實現的,一般很少用到。
    • Natvie API :在win32 api 基礎上加上Nt 前綴,基于版本兼容考慮
    • 系統服務:Native API 從用戶模式進入內核模式,調用系統服務。(軟中斷方式實現,陷入內核
    • 執行組件:內核模式下的一組服務函數。
      • 對象管理程序:windows 操作系統提供的服務幾乎都是以對象的形式存在的,這里的對象類似于面向對象語言中對象的概論。如驅動對象,設備對象等管理。
      • 進程管理程序:負責創建和終止進程,線程調度是由內核負責的。進程管理程序依賴于其他執行組件。
      • 虛擬內存管理程序:在CPU的內存管理單元(MMU)的協助下,通過某種映射將物理內存和虛擬內存關聯起來。
      • I/O 管理器:負責發起I/O 請求,并管理請求。它由一系列內核模式下的例程所組成,這些例程為用戶模式下的進程提供了統一接口。I/O 管理器的目標是使來自用戶模式的I/O請求獨立于設備。
      • 配置管理程序:配置管理程序,記錄所有計算機軟,硬件的配置信息。它使用一個被稱為注冊表的數據庫保存這些數據。設備驅動程序根據注冊表中的信息進行加載
    • 驅動程序:I/O 管理器接收應用程序后,創建相應的 IRP,并傳送至驅動程序進行處理:
      • 根據IRP的請求,直接操作硬件,然后完成此IRP,并返回
      • 根據IRP的請求,轉發到更底層的驅動中去,并等待底層驅動的返回。
      • 接受到IRP驅動后,不著急于完成。而是分配新的IRP法定其他驅動程序,并等待返回。
    • 內核:內核被認為是 Windows 操作系統的心臟。Windows 的內核從執行組件分割出來。和執行組件相比,內核是非常小的:
      • 對內核對象的支持。
      • 對線程的調度
      • 對多處理器同步支持。
      • 中斷處理函數的支持。
      • 對異常陷阱的支持。
      • 對其他硬件特殊功能的支持。
    • 硬件抽象層:不同的硬件平臺,提供不同的硬件抽象層,并對上層提供統一的操作硬件的接口。

    2.3 應用程序和驅動

    3. windows 驅動框架

    3.1 驅動模型:

    windows 驅動大致分為這幾類:

    • function driver:設備功能驅動
    • filter driver:設備輔助驅動
    • software driver:軟件模塊驅動
    • bus driver:總線設備驅動

    3.2 驅動演變

    • NT 模型 :2000以前,不支持 PNP (即插即用設備)
    • WDM 模型:NT 基礎上,支持 PNP
    • WDF:WDM的重封裝
      • KMDF:內核模式(sys)
      • UMDF:用戶模式(dll)
    • win7 x64 劃時代操作系統,開始數字簽名了
    • win10 :雙認證簽名,也就是說對驅動的安全性要求更高了。

    3.3 驅動垂直層次結構

    • 設備的創建順序,先創建底層PDO,在創建高層的FDO,即從底層設備到高層設備。
    • 在PDO 和 FDO之間可能有各種過濾驅動。每層設備對象由不同的驅動程序創建,或者說每層的設備對應著不同的驅動程序。
    • 底層設備對象尋找上一層的設備對象,是依靠底層設備對象的AttachedDevice 來尋找的。

    3.4 驅動水平層次結構

    • 同一驅動程序創建出來的設備對象的關系稱之為水平層次關系。
    • 每一個設備通過NextDevice可以尋找水平層次的下一個設備對象。

    3.5 一個復雜的驅動結構


    4. windows 開發環境搭建

    4.1 開發環境部署

    以 win10 為例,列出需要安裝的東西,詳細過程限于篇幅以后更新

    • 安裝VS2019
    • 安裝 Windows SDK:VS 2019 順帶安裝
    • 安裝 WDK
    • 安裝 VMware + Win10 虛擬系統

    4.2 常用調試工具

    • windbg:調試內核。WDK 自帶,配合串口或者網絡調試windows 內核
    • DebugViewer:查看內核打印
    • driverMonitor:驅動安裝
    • PCHunter_free:驅動強制卸載,不支持2004版本
    • devicetree:設備枚舉
    • winobj:查看符號鏈接

    5. windows 驅動學習建議

    有關Windows 驅動開發書籍,博文,教程甚少。如果有這方面需求的可以給以下幾個建議:

    • 環境搭建:win7 32 + vs2013 即可。不建議 win10 + vs2019,比較新,遇到問題不好解決。其次早期的一些調試工具,win10 最新版本不一定支持。
    • 繞開數字簽名:先使用測試模式,安裝驅動。否則光安裝部署就夠折騰的。
    • 入門采用 WDM 驅動模型。市面上將WDM 的書籍和資料相對多些,相對來說,WDF 開發資料來不少。
    • 多看書,windows 驅動不想linux 資料一大把,遇到不懂得,加技術群,啃書本。

    推薦書籍:

    • 《Windows 驅動開發技術詳解》:已絕版
    • 《竹林蹊徑:深入理解windows 驅動開發》:已絕版
    • 《windows 7:設備驅動程序開發 》:wdf 講的比較多得書


    原文鏈接:https://mp.weixin.qq.com/s/qGydT22PNfbvhxUT4pNmJw

    轉載自:嵌入式微處理器

    原文鏈接:淺談Windows驅動開發

    本文來源網絡,免費傳達知識,版權歸原作者所有。如涉及作品版權問題,請聯系我進行刪除。

    1 文件分析

    1.1 臨時目錄排查

    黑客往往可能將病毒放在臨時目錄(tmp/temp),或者將病毒相關文件釋放到臨時目錄,因此需要檢查臨時目錄是否存在異常文件。

    假設系統盤在C盤,則通常情況下的臨時目錄如下:

    C:\Users\[用戶名]\Local Settings\Temp

    C:\Documents and Settings\[用戶名]\Local Settings\Temp

    C:\Users\[用戶名]\桌面

    C:\Documents and Settings\[用戶名]\桌面

    C:\Users\[用戶名]\Local Settings\Temporary Internet Files

    C:\Documents and Settings\[用戶名]\Local Settings\Temporary Internet Files

    注:[用戶名] 根據實際環境用戶得出,常見用戶名是Administrator,建議所有用戶都檢查一下。

    1.2 瀏覽器相關文件

    黑客可能通過瀏覽器下載惡意文件,或者盜取用戶信息,因此需要檢查下瀏覽器的歷史訪問記錄、文件下載記錄、cookie信息,對應相關文件目錄如下:

    C:\Users\[用戶名]\Cookies

    C:\Documents and Settings\[用戶名]\Cookies

    C:\Users\[用戶名]\Local Settings\History

    C:\Documents and Settings\[用戶名]\Local Settings\History

    C:\Users\[用戶名]\Local Settings\Temporary Internet Files

    C:\Documents and Settings\[用戶名]\Local Settings\Temporary Internet Files

    1.3 最近打開文件

    檢查下最近打開了哪些文件,可疑文件有可能就在最近打開的文件中,打開以下這些目錄即可看到:

    C:\Users\[用戶名]\Recent

    C:\Documents and Settings\[用戶名]\Recent

    1.4 文件修改時間

    可以根據文件夾內文件列表時間進行排序,查找可疑文件。一般情況下,修改時間越近的文件越可疑。當然,黑客也有可能修改”修改日期“。

    注:點擊”修改日期“,使之按最近修改時間排序,優先檢查下”修改日期“最近的文件。

    1.5 System32目錄與hosts文件

    System32也是常見的病毒釋放目錄,因此也要檢查下該目錄。hosts文件是系統配置文件,用于本地DNS查詢的域名設置,可以強制將某個域名對應到某個IP上,因此需要檢查hosts文件有沒有被黑客惡意篡改。

    C:\Windows\System32

    C:\Windows\System32\drivers\hosts

    這里以hosts文件為例,如上圖,檢查3種異常:

    1.知名站點,檢查對應IP是否真的歸屬該站點,防止”釣魚“

    2.未知站點,檢查該域名和IP是否惡意

    3.無法訪問的安全站點,即IP是否指向127.0.0.1、0.0.0.0等本地地址、無效地址

    2 網絡行為排查

    2.1 重要輔助站點

    1. https://www.virustotal.com/ , 國外知名安全站點,需翻墻,可查詢文件MD5、IP、域名、URL是否惡意,也可上傳文件進行病毒掃描。

    2. https://x.threatbook.cn/ , 國內威脅情報站點,可查詢文件MD5、IP、域名、URL是否惡意,也可上傳文件進行病毒掃描。

    3. http://beian.cndns.com/,國內站點備案查詢,所有有企業備案的國內站點可認為是可信站點。

    4. http://www.alexa.com/,全球站點排行查詢,top100萬的站點可認為是可信站點(國外站點沒有備案這一說法)。

    5. Google與Baidu等搜索引擎,輸入文件MD5/IP/域名,有時候可以查詢到對應病毒信息。

    2.2 網絡連接排查

    使用命令 netstat -ano 查看當前的網絡連接,排查可疑的服務、端口,外連的IP。

    如發現netstat定位出的pid有問題,可再通過tasklist命令進一步追蹤該可疑程序。

    2.3 流量分析

    流量分析可以使用Wireshark,主要分析下當前主機訪問了哪些域名、URL、服務,或者有哪些外網IP在訪問本地主機的哪些端口、服務和目錄,又使用了何種協議等等。

    例如,使用Wireshark觀察到,主機訪問了sjb555.3322.org這種動態域名,即可粗略猜測這是一個C&C服務器。

    2.4 漏洞與補丁信息

    使用命令systeminfo,查看系統版本信息以及補丁信息,確認當前系統是否存在漏洞、是否已經打了相應的補丁。

    可重點關注下遠程命令執行漏洞,如MS08-067、MS09-001、MS17-010(永恒之藍)……

    3 可疑進程分析

    3.1 進程名字異常與偽裝

    進程名字異常是指某些進程的名字是隨機產生的,因此高度可疑,例如:

    某感染環境,打開任務管理器,發現有大量名字隨機的進程,如hrlB3.tmp、hrlCC.tmp、hrlCD.tmp、hrlC3.tmp、hrlC5.tmp、hrlD5.tmp、hrl6.tmp、hrlEE.tmp。不僅文件后綴不是典型的exe,名字也是隨機產生的,這種肯定是異常進程。

    進程名字偽裝是指某些進程的名字偽裝成跟系統進程名字相似的名字,目的是為了混淆視聽,使經驗不足或看走眼的管理員以為是正常進程或文件。

    3.2 進程信息排查

    進程信息的排查推薦使用PC Hunter、Process Hacker。

    PC Hunter(官網www.xuetr.com)是一個Windows系統信息查看軟件,可協助排查木馬、后門等病毒,功能包含:

    1.進程、線程、進程模塊、進程窗口、進程內存、定時器、熱鍵信息查看,殺進程、殺線程、卸載模塊等功能

    2.內核驅動模塊查看,支持內核驅動模塊的內存拷貝

    3.SSDT、Shadow SSDT、FSD、Keyboard、TCPIP、Classpnp、Atapi、Acpi、SCSI、Mouse、IDT、GDT信息查看,并能檢測和恢復ssdt hook和inline hook

    4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等Notify Routine信息查看,并支持對這些Notify Routine的刪除

    5.端口信息查看

    6.查看消息鉤子

    7.內核模塊的iat、eat、inline hook、patches檢測和恢復

    8.磁盤、卷、鍵盤、網絡層等過濾驅動檢測,并支持刪除

    9.注冊表編輯

    10.進程iat、eat、inline hook、patches檢測和恢復

    11.文件系統查看,支持基本的文件操作

    12.查看(編輯)IE插件、SPI、啟動項、服務、Host文件、映像劫持、文件關聯、系統防火墻規則、IME

    13.ObjectType Hook檢測和恢復

    14.DPC定時器檢測和刪除

    15.MBR Rootkit檢測和修復

    16.內核對象劫持檢測

    17.其它一些手工殺毒時需要用到的功能,如修復LSP、修復安全模式等

    界面如下圖所示,可重點檢查下顏色為紅色的異常項:

    此外,Process Hacker也一款不錯的進程分析工具,可以通過這個工具尋找有異常網絡連接的進程,也可直接dump進程的內存空間,發現隱藏的模塊。

    3.3 模塊空間檢查

    找到可疑進程并不意味著該進程對應的exe文件就是病毒,有些病毒可能是將惡意dll注入到系統進程中去的。

    對于可疑進程,需要將進程所加載的模塊都檢查一下,例如利用Process Hacker,雙擊可疑進程,即可查看其加載的模塊如下:

    4 啟動項排查

    4.1 排查Logon啟動項

    黑客為了保持病毒能夠開機啟動、登錄啟動或者定時啟動,通常會有相應的啟動項,因此有必要找出異常啟動項,并刪除之。啟動項的排查,這里引入一個非常好用的工具,工具名字Autoruns(官網www.sysinternals.com)。

    點擊運行Autoruns,首先檢查Logon(登錄啟動項),如下圖:

    檢查是否登錄的時候啟動了異常的程序。

    4.2 服務啟動項

    病毒也有可能是以創建服務啟動項的方式保持長久運行,點擊Autoruns的Services功能,如下圖,檢查是否有異常的服務啟動項。

    4.3 定時或計劃任務

    如果有定時或計劃任務啟動項,也要檢查下(點擊Autoruns的Scheduled Tasks功能)。通常這一項是空白的,如下圖。如果有內容,則需要排查確認是否有某些應用或服務創建了這些啟動項。

    4.4 其它啟動項

    其它所有的啟動項,均可以在”Everything“那一欄找到,這里面的啟動項也有可能是病毒創建的,需排查之。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有