久久亚洲精品国产精品婷婷,粗了大了 整进去好爽视频,国产二级一片内射视频插放,伊人精品久久久久7777

13673270909
全國統一服務(wù)熱線(xiàn)
地址:河北省滄州市南皮縣烏馬營(yíng)鎮開(kāi)發(fā)區
座機:0317-8619778
傳真:0317-8619778
手機:13673270909
QQ:522678238
網(wǎng)址: m.dqscw.cn
填寫(xiě)您的疑問(wèn)和需求
產(chǎn)品展示

主頁(yè) > 新聞中心 > 公司新聞 >

有關(guān)驅動(dòng)器外殼的處理方法

 



原始IAT的處理
 
    由于原驅動(dòng)程序被加上了我們的驅動(dòng)器外殼,所以原驅動(dòng)程序的IAT表的填寫(xiě)工作
 要由我們的驅動(dòng)器外殼程序來(lái)完成。應用層殼一般通過(guò)兩個(gè)API來(lái)完成這個(gè)工作,或者自己實(shí)現這兩個(gè)API的功能。而驅動(dòng)殼是要 隨驅動(dòng)程序一起被加載到內核當中去的,但內核里沒(méi)有這兩個(gè)函數,我們
 自己對這兩個(gè)函數做內核的實(shí)現。當然也可以用函 數,不過(guò)它只能得到兩個(gè)模塊的函數,對于其它模塊則 無(wú)能為力了,影響殼的通用性。殼的函數可以通過(guò)遍t鏈表來(lái)實(shí)現,關(guān)于遍歷這個(gè)鏈表的方法可以參照Futo的代碼,通過(guò)DRIVEROBJECT的DriverSec tion成員來(lái)完成,而驅動(dòng)對象可以從堆棧當中找到。
 
  殼的函數的實(shí)現就很簡(jiǎn)單了,內核模塊本身也是PE文件,直接遍歷一下PE的導出表就ok了。 還有一點(diǎn)需要注意的就是UNICODE的轉換, 在給程序加殼的時(shí)候一般都要添加新節,用于存放殼的代碼,應用層程序 的節表的最后一項和第一個(gè)節之間一般是有一個(gè)很大的空間可以用來(lái)添加新的 節表項的,但一般情況下驅動(dòng)程序節表的最后一項后面緊接著(zhù)就是第一個(gè)節解決的方法有兩種,第一種
 將所有的節向后移動(dòng),而第二種方法則是將PE頭整體向前移動(dòng)覆蓋掉部分無(wú)用的dos頭,留出足夠的空間存放新的節表項。
 
   重定位表的處理
 
    由于驅動(dòng)程序是要被加載到內核空間中,所以外殼必須實(shí)現原來(lái)由系統完成的原驅動(dòng)程序的重定位工作。原驅動(dòng)程序的重定位表的處理方法跟應用層 DLL 文件的處理方法完全一樣,代碼如下: 需要注意的一點(diǎn):驅動(dòng)程序被加殼后必須要有重定位表,否則驅動(dòng)加載會(huì )失敗,解決的方法需要自己構造一個(gè)假的重定位表來(lái)替換原始的重定位表。
     
   另外,由于驅動(dòng)殼的特殊性,shell的編寫(xiě)和驅動(dòng)程序的編寫(xiě)沒(méi)什么區別, 稍有錯誤就會(huì )藍屏。
 
    

合作企業(yè)