note 0:
windows提供了乙個作業(job)核心物件,它允許你將程序組合在一起並建立乙個"沙箱"來限制程序能夠做什麼.最好將作業物件想象成乙個程序容器.但是,即使作業中只包含乙個程序,也是非常有用的,因為這樣可以對程序施加平時不能施加的限制.
note 1:
以下的startrestrictedprocess函式將乙個程序放入乙個作業中,以限制此程序具體能夠做哪些事情,如下所示:
void startrestrictedprocess()
// create a job kernel object.
handle hjob = createjobobject(null,
text("wintellect_restrictedprocessjob"));
// place some restrictions on processes in the job.
// first,
核心程式設計隨筆2
note 1 以前版本的windows設計的一些應用程式之所以在windows vista上不能正常工作,就是因為在實現這些程式時,沒有充分考慮安全性.假定乙個應用程式在啟動時要從乙個登錄檔子項中讀取一些資料.正確的做法是呼叫regopenkeyex,向其傳入key query value,從而指定...
核心程式設計隨筆4
note 1 在windows vista中,系統dlls是在程序位址空間的隨機位址載入的.所以,不要像在windows xp中那樣將peb的位址硬編碼為0x7ffdf000.相反,你需要呼叫ntqueryinformationprocess,並傳遞processbasicinformation作為...
Lua程式設計隨筆(5)
深入函式 在lua中,函式是作為第一類的對待的,即,可以儲存到變數,可以作為返回值,可以作為函式的形參 事實上,在lua中,函式都是匿名函式,所謂的函式名其實是持有這個函式的變數,如function foo x return 2 x end和 foo function x return 2 x en...