部分經典佳句的英文譯文

但願人長久,千裡共嬋娟。We wish each other a long life so as to share the beauty of this graceful moonlight, even though miles apart.獨在異鄉為異客,每逢佳節倍思親。A lonely stranger in a strange land I am cast, I miss my family all the more on every festive

以PspExitThread為例介紹如何尋找未匯出函數的函數地址

ntoskrnl.exe匯出了很多核心常式供驅動開發人員方便的使用,它也隱藏了很多很強大的曆程,防止驅動開發人員過於方便的用它們。比如PspExitThread,這個函數沒什麼特別的,但配合APC使用它就能殺死絕大多數的進程,包括一些殺毒軟體在內。gussing.cnblogs.com那麼如何才能找到這些未匯出的函數並使用它們呢?答案就是反組譯碼,藉助強大的windbg,加上一點點彙編基礎,作業系統在你面前就會變的很透明。還是以PspExitThread為例子,我們已經知道匯出函數PsTermi

BDA驅動學習筆記(2):常式註冊

   BDA

一個小的開源播放器

小弟正在寫一個基於命令列的播放器,開源,代碼在google

wdk tips (1): threaded irp和non-threaded irp

文章目錄 Threaded IRPNon-threaded irpirp建立函數 nt核心的IO模型中,IRP有兩類:threaded irp和non-threaded irp,顧名思義,前者跟thread綁定,後者跟thread無關。當一個threaded

nt核心裡的對象管理[1]:HANDLE和對象頭

有那麼一段時間,“對象”基本上是當時IT屆最流行的詞語,無論什麼東西都要搭上“對象”的概念才夠體面。NT核就誕生在那個年代,所以在其設計概念中有“核心對象”這麼一個牛逼的物件。幾乎所有的windows核心組件,包括進程,線程,檔案,裝置等都屬於核心對象,它們有一組共有的資料以及幾個函數指標以提供抽象的訪問,基本上c語言要玩“物件導向”的花都是這麼乾的(linux核心裡也有類似的東西)。在系統內部所有已開啟的對象的對象頭都放在一個object

BDA驅動學習筆記(4):IRP

 NT中的驅動採用分層結構,一個應用程式層的IO命令需要通過IO子系統,IO系統服務層,若干層的驅動,最後才能到達硬體,硬體有什麼資料需要返回,也需要經過這些層,一點都不能省。某一層的驅動只能和自己相鄰層的驅動聯絡,而且聯絡都要通過IO

wdk tips (2): IO_STACK_LOCATION

文章目錄 IoCopyCurrentIrpStackLocationToNextIoSkipCurrentIrpStackLocationIoGetNextIrpStackLocationIoSetNextIrpStackLocation

nt核心裡的堆管理(1):關鍵結構

嚴格的說,使用者態和核心態都有堆管理相關的內容,兩者用的是同一份代碼,稍微有些不同的地方就用宏隔開。在windows上寫c程式會有不止一個的“堆管理器”介入,比如malloc, free用c

wdk tips (3): IRQL

今天我們來聊聊IRQL,這是驅動新手的夢魘,想想看多少BSOD是因為IRQL不對引起的。這也是*NIX類核心開發人員最喜歡的吐槽點之一,你看linux裡就沒有這個概念,我們還不是活的好好的?我偶爾有時候能得著一些空,也會問一樣的問題:為毛?為毛要有這東西存在!後來我想通了。我們先聊passive level和interrupt level。passive level是普通層級,同時也是優先順序最低的,所有的使用者態線程和大部分的核心態線程都會在這個層級上運行。interrupt

nt核心裡的對象管理[2]: Object Table

一個進程在其生命週期內可能會開啟很多個核心對象,這些對象需要得到很好的管理才能保證效率。NT核心使用Table來儲存這些開啟對象,該Table的指標存放在EPROCESS->ObjectTable裡。gussing.cnblogs.com當我們訪問ObjectTable時,需要確定的有兩個資訊:Table地址和表的級數。Object

BDA驅動學習筆記(5):APP和Driver的通訊

 上層和驅動通訊用DeviceIoControl函數,這是一個Win32 API,在SDK中定義。這個函數都會產生一個IRP_MJ_DEVICE_CONTROL包,如果驅動中註冊過相應的常式,那麼這個包就會引發該常式的工作。如果是驅動和驅動間的通訊,那麼用IoBuildDeviceControlRequest函數,該函數在DDK中定義,會產生一個IRP_INTERNAL_DEVICE_CONTROL包,並引發相應的常式。這兩個IRP包中都有一個非常重要的結構叫IOCTL(io control

nt核心裡的堆管理(2):RtlAllocHeap

ring3裡的API HeapAlloc,

驅動安裝過程中對註冊表的改動

假設硬體ID為 USB\VID_aaaa&PID_bbbb\PRODUCTNAME 系統會在註冊表HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum

BDA驅動學習筆記(1):功能拓撲圖

  功能拓撲圖(Functional Topology):BAD的目標是不管硬體或者接收訊號如何變,它的整體架構可以不做大調整,為此BDA引入功能拓撲圖的概念,它把類似DirectShow Filter的結構作為節點(Node),包含在一個receiver filter中,因此一個filter可以做很多工作,這取決於該filter包含了哪些node,以及這些node都具備哪些功能。Functional

BDA驅動學習筆記(6):錯誤處理,記憶體管理以及字串

 錯誤處理:錯誤處理分為狀態碼返回,異常處理和bug check三種,第三種(bug check)也就是我們在98系統裡經常見到的藍屏,nt系統裡不常見但也會發生,真是很讓人討厭。不過萬一驅動代碼執行過程中發現了及其嚴重的錯誤,那麼給個藍屏應該是最好的選擇,因為既然是“及其嚴重”的錯誤,繼續執行下去作業系統會被搞壞。狀態碼NTSTATUS是一個32位的整數,表徵代碼執行成功與否,它的結構如下: Sev表示嚴重程度,C表明該狀態碼要被原封不動的傳回給使用者,Facility指出錯誤由哪個組件產生,

每年學一種新語言:今年是haskell

聽從某本書的教誨(應該是code

nt核心裡的堆管理(3):RtlFreeHeap

有了前面的介紹,堆管理的大體架構已經清楚了,但為了使內容完整,我們還是需要看看釋放記憶體時具體都幹了些什麼。gussing.cnblogs.com函數RtlFreeHeap接受一個PVOID的參數作為記憶體位址,卻不需要指定記憶體的大小。這是一個很有趣的地方,malloc,HeapAlloc等申請記憶體的函數都會指定所需記憶體的大小,但相應的free函數和HeapFree函數都不需要指定大小。我在面試應聘者的時候很喜歡問這個問題:請問為什麼不需要指定就可以釋放正確大小的記憶體?很遺憾照著我的統計

一個處於原型期的debugger的簡單分析

最近在看《軟體調試》這本書,為了加深理解,就到google

[haskell] monods

最近在看 “all about monods”, 其中第一章舉了一個例子,用以說明monod的引入是非常合乎常理的,一點都不讓人驚訝,它的例子是這樣的:假設有一個data type名叫Sheep,現在有一個需求是求Sheep的父親,我們很快就把函數寫出來了:father :: Sheep –> Sheepfather sheep = sheep的老爸函數寫完了,很高興,可以拿給QA測試了。第二天QA就怒氣沖沖的跑過來說:過不了單元測試!father 多利羊 =

總頁數: 61357 1 .... 8994 8995 8996 8997 8998 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.