欧美一区二区不卡网站|中文精品无码高潮在线|中文字幕精品亚洲无线码|久久久久久久久一级毛片|日本高清一区二区三区欧美|欧美日韩亚洲一区二区精品|2020色精品精品在线视频|天堂岛国av无码免费无禁网站

13673270909
全國統(tǒng)一服務(wù)熱線
地址:河北省滄州市南皮縣烏馬營鎮(zhèn)開發(fā)區(qū)
座機(jī):0317-8619778
傳真:0317-8619778
手機(jī):13673270909
QQ:522678238
網(wǎng)址: www.lz-yujia.com
填寫您的疑問和需求
產(chǎn)品展示

主頁 > 新聞中心 > 公司新聞 >

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

 



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

合作企業(yè)
通州区| 余庆县| 友谊县| 安化县| 九龙城区| 五原县| 许昌市| 灌南县| 吉林市| 正宁县| 当雄县| 博罗县| 宁晋县| 蓬莱市| 潞城市| 合江县| 濉溪县| 天全县| 合水县| 江西省| 云浮市| 长宁区| 柳河县| 枞阳县| 怀来县| 平度市| 颍上县| 东丰县| 城固县| 遂昌县| 新乐市| 道真| 临澧县| 南充市| 哈尔滨市| 辉南县| 祁东县| 娄底市| 安仁县| 漠河县| 北碚区|