91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

寒江獨(dú)釣 windows 內(nèi)核安全編程光盤(pán)代碼

資源截圖

代碼片段和文件信息

///
///?@file comcap.c
///?@author crazy_chu
///?@date 2008-6-18
///?

#include?
#define?NTSTRSAFE_LIB
#include?

#ifndef?SetFlag
#define?SetFlag(_F_SF)???????((_F)?|=?(_SF))
#endif
#ifndef?ClearFlag
#define?ClearFlag(_F_SF)?????((_F)?&=?~(_SF))
#endif
#define?CCP_MAX_COM_ID?32

//?過(guò)濾設(shè)備和真實(shí)設(shè)備
static?PDEVICE_object?s_fltobj[CCP_MAX_COM_ID]?=?{?0?};
static?PDEVICE_object?s_nextobj[CCP_MAX_COM_ID]?=?{?0?};

//?打開(kāi)一個(gè)端口設(shè)備
PDEVICE_object?ccpOpenCom(ULONG?idNTSTATUS?*status)
{
UNICODE_STRING?name_str;
static?WCHAR?name[32]?=?{?0?};
PFILE_object?fileobj?=?NULL;
PDEVICE_object?devobj?=?NULL;

//?輸入字符串。
memset(name0sizeof(WCHAR)*32);
RtlStringCchPrintfW(
name32
L“\\Device\\Serial%d“id);
RtlInitUnicodeString(&name_strname);

//?打開(kāi)設(shè)備對(duì)象
*status?=?IoGetDeviceobjectPointer(&name_str?FILE_ALL_ACCESS?&fileobj?&devobj);
if?(*status?==?STATUS_SUCCESS)
ObDereferenceobject(fileobj);

return?devobj;
}

NTSTATUS
ccpAttachDevice(
PDRIVER_object?driver?
PDEVICE_object?oldobj
PDEVICE_object?*fltobj?
PDEVICE_object?*next)
{
NTSTATUS?status;
PDEVICE_object?topdev?=?NULL;

//?生成設(shè)備,然后綁定之。
status?=?IoCreateDevice(driver
0
NULL
oldobj->DeviceType
0
FALSE
fltobj);

if?(status?!=?STATUS_SUCCESS)
return?status;

//?拷貝重要標(biāo)志位。
if(oldobj->Flags?&?DO_BUFFERED_IO)
(*fltobj)->Flags?|=?DO_BUFFERED_IO;
if(oldobj->Flags?&?DO_DIRECT_IO)
(*fltobj)->Flags?|=?DO_DIRECT_IO;
if(oldobj->Flags?&?DO_BUFFERED_IO)
(*fltobj)->Flags?|=?DO_BUFFERED_IO;
if(oldobj->Characteristics?&?FILE_DEVICE_SECURE_OPEN)
(*fltobj)->Characteristics?|=?FILE_DEVICE_SECURE_OPEN;
(*fltobj)->Flags?|=??DO_POWER_PAGABLE;
//?綁定一個(gè)設(shè)備到另一個(gè)設(shè)備上
topdev?=?IoAttachDeviceToDeviceStack(*fltobjoldobj);
if?(topdev?==?NULL)
{
//?如果綁定失敗了,銷(xiāo)毀設(shè)備,重新來(lái)過(guò)。
IoDeleteDevice(*fltobj);
*fltobj?=?NULL;
status?=?STATUS_UNSUCCESSFUL;
return?status;
}
*next?=?topdev;

//?設(shè)置這個(gè)設(shè)備已經(jīng)啟動(dòng)。
(*fltobj)->Flags?=?(*fltobj)->Flags?&?~DO_DEVICE_INITIALIZING;
return?STATUS_SUCCESS;
}

//?這個(gè)函數(shù)綁定所有的串口。
void?ccpAttachAllComs(PDRIVER_object?driver)
{
ULONG?i;
PDEVICE_object?com_ob;
NTSTATUS?status;
for(i?=?0;i {
//?獲得object引用。
com_ob?=?ccpOpenCom(i&status);
if(com_ob?==?NULL)
continue;
//?在這里綁定。并不管綁定是否成功。
ccpAttachDevice(drivercom_ob&s_fltobj[i]&s_nextobj[i]);
//?取消object引用。
}
}

#define??DELAY_ONE_MICROSECOND??(-10)
#define??DELAY_ONE_MILLISECOND?(DELAY_ONE_MICROSECOND*1000)
#define??DELAY_ONE_SECOND?(DELAY_ONE_MILLISECOND*1000)

void?ccpUnload(PDRIVER_object?drv)
{
ULONG?i;
LARGE_INTEGER?interval;

//?首先解除綁定
for(i=0;i {
if(s_nextobj[i]?!=?NULL)
IoDetachDevice(s_nextobj[i]);
}

//?睡眠5秒。等待所有irp處理結(jié)束
interval.QuadPart?=?(5*1000?*?DELAY_ONE_MILLISECOND);
KeDelayExecutionThread(KernelModeFALSE&interval);

//?刪除這些設(shè)

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????0??2009-11-01?22:47??寒江獨(dú)釣\
?????目錄???????????0??2009-11-01?22:47??寒江獨(dú)釣\comcap\
?????文件????????2442??2009-04-28?22:40??寒江獨(dú)釣\comcap\buildchk_wnet_x86.log
?????文件????????2400??2009-04-28?22:40??寒江獨(dú)釣\comcap\buildfre_wnet_x86.log
?????文件????????5749??2009-01-26?21:13??寒江獨(dú)釣\comcap\comcap.c
?????文件?????????989??2008-12-11?21:24??寒江獨(dú)釣\comcap\comcap.h
?????文件????????2008??2009-04-27?21:25??寒江獨(dú)釣\comcap\comcap.vcproj
?????文件?????????847??2008-12-11?21:24??寒江獨(dú)釣\comcap\comcap_tst.h
?????文件?????????891??2008-12-11?21:24??寒江獨(dú)釣\comcap\makefile
?????文件?????????177??2009-01-26?21:02??寒江獨(dú)釣\comcap\my_build.bat
?????文件?????????111??2008-12-11?21:24??寒江獨(dú)釣\comcap\my_clean.bat
?????文件?????????219??2009-04-28?21:07??寒江獨(dú)釣\comcap\sources
?????目錄???????????0??2009-11-01?22:47??寒江獨(dú)釣\crypt_file\
?????文件????????3210??2009-05-06?21:45??寒江獨(dú)釣\crypt_file\buildchk_wnet_x86.log
?????文件????????2735??2009-04-28?22:39??寒江獨(dú)釣\crypt_file\buildfre_wnet_x86.log
?????文件???????10906??2009-05-06?12:05??寒江獨(dú)釣\crypt_file\cf_create.c
?????文件???????10908??2009-05-06?11:31??寒江獨(dú)釣\crypt_file\cf_create.c.bak
?????文件????????1002??2009-02-04?23:53??寒江獨(dú)釣\crypt_file\cf_create.h
?????文件???????10891??2009-05-06?21:29??寒江獨(dú)釣\crypt_file\cf_file_irp.c
?????文件???????10876??2009-02-14?00:34??寒江獨(dú)釣\crypt_file\cf_file_irp.c.bak
?????文件????????1118??2009-01-31?09:44??寒江獨(dú)釣\crypt_file\cf_file_irp.h
?????文件????????4486??2009-02-10?21:31??寒江獨(dú)釣\crypt_file\cf_list.c
?????文件?????????758??2009-02-07?10:56??寒江獨(dú)釣\crypt_file\cf_list.h
?????文件???????12304??2009-05-06?14:37??寒江獨(dú)釣\crypt_file\cf_modify_irp.c
?????文件???????12304??2009-04-27?23:21??寒江獨(dú)釣\crypt_file\cf_modify_irp.c.bak
?????文件????????1282??2009-02-08?00:23??寒江獨(dú)釣\crypt_file\cf_modify_irp.h
?????文件????????2440??2009-05-05?22:59??寒江獨(dú)釣\crypt_file\cf_proc.c
?????文件????????2436??2009-02-08?01:34??寒江獨(dú)釣\crypt_file\cf_proc.c.bak
?????文件?????????970??2009-01-30?13:23??寒江獨(dú)釣\crypt_file\cf_proc.h
?????文件???????10983??2009-05-20?22:16??寒江獨(dú)釣\crypt_file\cf_sfilter.c
?????文件???????10978??2009-05-06?15:06??寒江獨(dú)釣\crypt_file\cf_sfilter.c.bak
............此處省略344個(gè)文件信息

評(píng)論

共有 條評(píng)論

相關(guān)資源