所属类别:组网技术
文章作者:黑鹰基地
特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!
查找进程,目录/文件,注册表等操作系统将最终调用 ZwQueryDirectoryFile,ZwQuerySystemInFORMation, ZwXXXvalueKey 等函数。要想拦截这些函数达到隐藏目的,需先自己实现以上函数,并修改系统维护的一个SYSCALL 表使之指向自己预先定义的函数。因 SYSCALL 表在用户层不可见,所以要写 DRIVE 在 RING 0 下 才可修改。 关于如何修改已有文章详细介绍过,这里不在详述。(可以参见 sysinternals.com 或 WebCrazy 所 写的文章)。查找端口用的是 TDI 查询。TDI 导出了两个设备 //Device//Tcp 与 //Device//Udp。我们可以利 用设备过滤驱动的方法写一个 DRIVE 把这两个设备的所有 IRP 包接管过来进行处理后再传给下层驱动。以达到 隐藏任意端口的目的。 上述提到的方法不是新东西,是在N年前就已经有的老技术。俺现在将它贴出来只不过为了充实下版面,灌灌水罢了。高手们还是别看了。下面是我 DRIVE 中隐藏任意进程,目录/文件,端口代码片段。 (注册表操作在 RegMon 中写的很详细,这里就不列出了)Code:--------------------------------------------------------------------------------typedef struct _FILETIME{DWORD dwLowDateTime;DWORD dwHighDateTime;} FILETIME;typedef struct _DirEntry{DWORD dwLenToNext;DWORD dwAttr;FILETIME ftCreate, ftLastAccess, ftLastWrite;DWORD dwUnknown[ 2 ];DWORD dwFileSizeLow;DWORD dwFileSizeHigh;DWORD dwUnknown2[ 3 ];WORD wNameLen;WORD wUnknown;DWORD dwUnknown3;WORD wShortNameLen;WCHAR swShortName[ 12 ];WCHAR suName[ 1 ];} DirEntry, *PDirEntry;struct _SYSTEM_THREADS{LARGE_INTEGER KernelTime;LARGE_INTEGER UserTime;LARGE_INTEGER CreateTime;ULONG WaitTime;PVOID StartAddress;CLIENT_ID ClientIs;KPRIORITY Priority;KPRIORITY BasePriority;ULONG ContextSwitchCount;ULONG ThreadState;KWAIT_REASON WaitReason;};struct _SYSTEM_PROCESSES{ULONG NextEntryDelta;ULONG ThreadCount;ULONG Reserved[6];LARGE_INTEGER CreateTime;LARGE_INTEGER UserTime;LARGE_INTEGER KernelTime;UNICODE_STRING ProcessName;KPRIORITY BasePriority;ULONG ProcessId;ULONG InheritedFromProcessId;ULONG HandleCount;ULONG Reserved2[2];VM_COUNTERS VmCounters;IO_COUNTERS IoCounters;struct _SYSTEM_THREADS Threads[1];};
热门推荐:病毒及攻击防御完全指南 典型网络故障的解决方法
相关信息· php通用检测函数集(1)
· 一些关于系统架构实现的胡言乱语
· 使用xml文件,做数据的导入,导出
· 2008年7月51CTO.com十大热点文章排行榜
93745
90923
