| 端口到进程实现的源代码 |
|
| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:22:22
|
#include #include #include #include #include #include #pragma comment ( lib, "ws2_32.lib" ) #define NT_HANDLE_LIST 16 #define MAX_HANDLE_LIST_BUF 0x200000 typedef struct _HandleInfo { USHORT dwPid; USHORT CreatorBackTraceIndex; BYTE ObjType; BYTE HandleAttributes; USHORT HndlOffset; DWORD dwKeObject; ULONG GrantedAccess; }HANDLEINFO, *PHANDLEINFO; typedef struct _IO_STATUS_BLOCK { DWORD Status; ULONG Information; } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; typedef struct _LSA_UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWSTR Buffer; } LSA_UNICODE_STRING, *PLSA_UNICODE_STRING; typedef LSA_UNICODE_STRING UNICODE_STRING, *PUNICODE_STRING; typedef struct _OBJECT_ATTRIBUTES { ULONG Length; HANDLE RootDirectory; UNICODE_STRING *ObjectName; ULONG Attributes; PSECURITY_DEscriptOR SecurityDescriptor; PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; } OBJECT_ATTRIBUTES,*POBJECT_ATTRIBUTES; // 申明NtQuerySystemInformation()函数 typedef DWORD (CALLBACK* NTQUERYSYSTEMINFORMATION)( DWORD, PDWORD, DWORD, PVOID ); NTQUERYSYSTEMINFORMATION NtQuerySystemInformation; typedef VOID (CALLBACK* RTLINITUNICODESTRING)(PUNICODE_STRING,PCWSTR); RTLINITUNICODESTRING RtlInitUnicodeString; typedef DWORD (CALLBACK* ZWOPENSECTION)(PVOID, DWORD,POBJECT_ATTRIBUTES); ZWOPENSECTION ZwOpenSection; typedef VOID(CALLBACK* INITIALIZEOBJECTATTRIBUTES)(POBJECT_ATTRIBUTES,PUNICODE_STRING,ULONG,HANDLE,PSECURITY_DEscriptOR); INITIALIZEOBJECTATTRIBUTES InitializeObjectAttributes; typedef DWORD (CALLBACK* ZWOPENFILE)(PHANDLE,DWORD,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG); ZWOPENFILE ZwOpenFile; DWORD getmap(PHANDLEINFO get1,LPVOID addr,HANDLE pm,char * buf) { DWORD readset; LPVOID pmaddr1; int i; readset = (get1->dwKeObject>>[1] [2] [3] [4] [5] [6] [7] 下一页
|
|
[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda 责任编辑:kinda |
|
上一篇文章: 开发工具大比拼visual c++ vs delphi---(三) 下一篇文章: C语言库函数(F类字母) |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |