青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

驅動監控進程創建

Posted on 2009-09-20 22:25 S.l.e!ep.¢% 閱讀(592) 評論(0)  編輯 收藏 引用 所屬分類: 系統低層
2008-05-31 12:48
這是我在http://www.codeproject.com .學習時看到的一個驅動程序,學習后對其整理的筆記

下面這個驅動程序的作用:監控準備運行的可執行文件。(由用戶決定是不是讓它運行)所以我們要做以下工作:

首先是修改(NtCreateSection)SSDT索引號,(索引號從用戶程序中得到)HOOK NtCreateSection()這個函數,然后通過文件句柄獲得文件名,判斷它是不是可執行文件,檢測其屬性與判斷用戶是否允許它執行,如果允許就運行原來NtCreateSection這個函數,否則返回STATUS_ACCESS_DENIED。

如果我們截獲一個NtCreateSection()的請求,該請求要求映射可執行文件作為SEC_IMAGE屬性,通過結合頁保護屬性,我們能夠知道進程將要執行了,因此我們在這個時候作出決定:是否讓其執行。如果不想讓它執行,EAX 返回值為STATUS_ACCESS_DENIED。

因為調用是從ntdll. dll 以一條 MOV EAX, ServiceIndex五字節指令開始的,第一個字節是MOV EAX,后四字節是索引號,所以我們可以得到索引號(后四字節)然后將它進行修改成我們自己的函數索引。當然在修改之前要將原服務函數地址保存在全局變量中。


if(loc->Parameters.DeviceIoControl.IoControlCode==1000)
{
buff=(UCHAR*)Irp->AssociatedIrp.SystemBuffer;

// hook service dispatch table
memmove(&Index,buff,4);//所有的調用都是從ntdll.dll以一條五字節指令MOV EAX, ServiceIndex開始,四字節是索引號
a=4*Index+(ULONG)KeServiceDescriptorTable->ServiceTable;//從用戶程序中得到索引號,a指向服務函數地址

base=(ULONG)MmMapIoSpace(MmGetPhysicalAddress((void*)a),4,0);//將物理地址映射到非分頁池,因此可以進行讀寫,減少讀寫服務表保護屬性的麻煩
a=(ULONG)&Proxy;//a指向Proxy函數的地址

_asm
{
mov eax,base

mov ebx,dword ptr[eax]

mov RealCallee,ebx//將原服務函數地址保存在全局變量中
mov ebx,a

mov dword ptr[eax],ebx//Proxy函數地址寫進服務函數表中
}

memmove(&a,&buff[4],4);
output=(char*)MmMapIoSpace(MmGetPhysicalAddress((void*)a),256,0);
}


下面是我們自己函數的實現:
//這個函數決定是否 NtCreateSection() 被成功調用
ULONG __stdcall check(PULONG arg)//獲得指向服務參數指針
{

?? HANDLE hand=0;PFILE_OBJECT file=0;

?? POBJECT_HANDLE_INFORMATION info=0;ULONG a;char*buff;
?? ANSI_STRING str; LARGE_INTEGER li;li.QuadPart=-10000;

if((arg[4]&0xf0)==0)return 1;//檢測標志
if((arg[5]&0x01000000)==0)return 1;//檢測屬性


//通過文件句柄獲得文件名
hand=(HANDLE)arg[6];//獲得執行文件句柄

ObReferenceObjectByHandle(hand,0,0,KernelMode,&file,info);//&file獲得對象體指針
if(!file)return 1;

RtlUnicodeStringToAnsiString(&str,&file->FileName,1);

a=str.Length;buff=str.Buffer;

while(1)//通過循環判斷是不是有". "標志
{
??
if(buff[a]=='.')
{a++;break;}

?? a--;

}
ObDereferenceObject(file);


if(_stricmp(&buff[a],"exe")){RtlFreeAnsiString(&str);return 1;}//判斷是否為可執行文件



KeWaitForSingleObject(&event,Executive,KernelMode,0,0);//將當前線程置于等待狀態知道信號態


strcpy(&output[8],buff);//將string復制進buff
RtlFreeAnsiString(&str);

a=1;//用戶的決定通過a的制來反映
memmove(&output[0],&a,4);
while(1)
{
KeDelayExecutionThread(KernelMode,0,&li);//在一個固定時間間隔內當前線程處于等待狀態
memmove(&a,&output[0],4);
if(!a)break;
}
memmove(&a,&output[4],4);

KeSetEvent(&event,0,0);

return a;
}



//保存執行文件上下文,調用check()函數
_declspec(naked) Proxy()
{

_asm{

pushfd
pushad
mov ebx,esp

add ebx,40
push ebx

call check

cmp eax,1//由check()的返回值判斷是否讓可執行文件繼續執行
jne block


popad
popfd
jmp RealCallee//通過,調用ntcreatesection


block:popad
mov ebx, dword ptr[esp+8]

mov dword ptr[ebx],0
mov eax,0xC0000022L//不讓其通過,返回STATUS_ACCESS_DENIED
popfd
ret 32

}
}

到此,驅動程序的工作基本完成,所以在用戶程序中用到一個線程來等待驅動的判斷結果。
char*name=(char*)&outputbuff[8];

???????? for(x=0;x<stringcount;x++)

???????? {
???????????? if(!stricmp(name,strings[x])){a=1;goto skip;}

???????? }
???????? strcpy(msgbuff, "Do you want to run ");
???????? strcat(msgbuff,&outputbuff[8]);

????????
???????? if(IDYES==MessageBox(0, msgbuff,"WARNING",
??????????? MB_YESNO|MB_ICONQUESTION|0x00200000L))

???????? {a=1; strings[stringcount]=_strdup(name);stringcount++;}
???????? else a=0;
????
???????? // write response to the buffer, and driver will get it
???????? skip:memmove(&outputbuff[4],&a,4);

???????? //讓驅動繼續
???????? a=0;
???????? memmove(&outputbuff[0],&a,4);
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            美女网站在线免费欧美精品| 老牛嫩草一区二区三区日本| 欧美日韩a区| 欧美日本高清视频| 久久综合激情| 久久丁香综合五月国产三级网站| 亚洲区国产区| 亚洲电影第1页| 黄色一区二区三区四区| 国产精品区二区三区日本| 欧美日韩中文| 欧美日韩国产一级| 欧美日韩成人一区二区| 欧美久久久久久久久久| 欧美久久久久久| 亚洲一品av免费观看| 一区二区福利| 一区二区三区久久网| 亚洲午夜精品久久| 午夜免费日韩视频| 欧美国产精品一区| 国产欧美综合一区二区三区| 91久久午夜| 一级成人国产| 亚洲精品男同| 亚洲视频一区二区免费在线观看| 亚洲国产高清高潮精品美女| 日韩亚洲视频| 欧美在线中文字幕| 久久aⅴ国产欧美74aaa| 久久字幕精品一区| 亚洲激情二区| 亚洲精品小视频在线观看| 亚洲午夜视频| 欧美一级二级三级蜜桃| 欧美成人精品福利| 欧美性猛交xxxx乱大交蜜桃| 国产原创一区二区| 99re热精品| 欧美国产日韩一区二区三区| 欧美一进一出视频| 国产乱码精品1区2区3区| 在线午夜精品自拍| 久久人人爽人人爽爽久久| 亚洲黄色在线看| 亚洲欧美国产视频| 麻豆精品一区二区av白丝在线| 国产精品初高中精品久久| 激情综合网激情| 亚洲综合999| 欧美v日韩v国产v| 亚洲午夜精品一区二区| 美女脱光内衣内裤视频久久网站| 欧美日韩精品不卡| 狠狠色狠狠色综合人人| 亚洲午夜电影| 亚洲国产天堂久久综合网| 欧美一区国产二区| 国产欧美日韩中文字幕在线| 一本色道久久综合亚洲91| 亚洲美女一区| 久久久噜噜噜久噜久久| 亚洲人成高清| 久久久噜噜噜久久中文字幕色伊伊| 欧美日韩一区二区高清| 一区二区亚洲精品| 欧美一区二区三区电影在线观看| 亚洲日本电影在线| 欧美va日韩va| 亚洲国产日韩一区| 久久婷婷丁香| 性感少妇一区| 国产精品亚洲欧美| 亚洲一区二区三区四区在线观看| 亚洲第一在线综合网站| 久久精品论坛| 好吊妞**欧美| 亚洲精品久久久久久久久久久久久| 欧美日韩性生活视频| 国产毛片精品视频| 亚洲精品资源美女情侣酒店| 午夜精品福利一区二区三区av| 米奇777超碰欧美日韩亚洲| 午夜在线精品偷拍| 国产麻豆成人精品| 久久久久国产成人精品亚洲午夜| 亚洲午夜精品一区二区三区他趣| 欧美三级日本三级少妇99| 9i看片成人免费高清| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美不卡一区| 亚洲国内精品| 亚洲精品一区二区在线| 欧美性猛片xxxx免费看久爱| 午夜精品影院| 欧美伊人精品成人久久综合97| 国产视频在线一区二区| 久久免费精品视频| 久久人人97超碰国产公开结果 | 一色屋精品视频在线看| 久久久精品动漫| 久久精品国产欧美激情| 极品尤物av久久免费看| 欧美不卡福利| 欧美日韩国产一区二区三区地区 | 久久亚洲色图| 国产精品日韩在线播放| 久久精品一区二区三区中文字幕| 性8sex亚洲区入口| 欧美色图五月天| 欧美一区二区在线播放| 久久天天躁夜夜躁狠狠躁2022| 亚洲国产精品久久91精品| 亚洲精品色婷婷福利天堂| 欧美成人国产va精品日本一级| 欧美成人免费全部| 亚洲自拍偷拍一区| 久久亚洲综合色| 亚洲无限乱码一二三四麻| 欧美亚洲视频一区二区| 精品成人国产| 亚洲免费观看视频| 国产日韩av高清| 亚洲激情电影中文字幕| 国产视频在线观看一区| 亚洲精品一二三| 一区二区三区在线不卡| 在线一区二区三区四区| 亚洲欧洲一区二区天堂久久| 亚洲图片你懂的| 亚洲美女视频网| 久久久久久久波多野高潮日日| 在线亚洲精品| 日韩午夜在线电影| 国产精品午夜国产小视频| 另类酷文…触手系列精品集v1小说| 欧美日韩国产成人在线| 亚洲欧美国产毛片在线| 久久黄色影院| 亚洲高清在线视频| 欧美一区二区视频在线观看| 亚洲天堂偷拍| 欧美激情影音先锋| 欧美不卡在线视频| 国产一区二区久久| 亚洲自拍啪啪| 亚洲欧美韩国| 欧美日韩一区综合| 亚洲日韩欧美视频一区| 亚洲激情在线观看| 久久婷婷国产麻豆91天堂| 久久久久久久久伊人| 国产精品一级在线| 一本久道久久综合狠狠爱| 亚洲一区二区三区久久| 中文精品视频一区二区在线观看| 欧美肥婆在线| 久久久免费av| 国产亚洲精品aa午夜观看| 亚洲综合色激情五月| 亚洲手机视频| 国产精品国产亚洲精品看不卡15| 亚洲精品久久在线| 亚洲精品在线观看视频| 蜜月aⅴ免费一区二区三区 | 亚洲一区二区三区高清不卡| 亚洲一区二区三区影院| 欧美日韩视频专区在线播放 | 国产精品视频xxxx| 久热精品在线视频| 夜夜嗨av色综合久久久综合网| 午夜精品久久久久久99热软件| 国产亚洲欧美日韩日本| 久久综合一区二区| 女女同性精品视频| 亚洲视频精选在线| 久久伊人亚洲| 一本综合久久| 影音先锋日韩有码| 欧美日本亚洲| 久久精品论坛| 国产精品99久久久久久www| 麻豆成人91精品二区三区| 99精品视频免费观看视频| 国产一区日韩欧美| 欧美午夜a级限制福利片| 老司机免费视频久久| 亚洲女女女同性video| 91久久视频| 老司机午夜免费精品视频| 午夜精品久久久久| 99天天综合性| 亚洲国内高清视频| 在线播放亚洲| 国产亚洲人成a一在线v站| 欧美视频在线视频| 欧美激情国产精品| 美女图片一区二区| 久久久久久黄| 久久国产精品黑丝|