版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Windows任务管理器开发原理与实现.Windows任务管理器开发原理与实现.11/11Windows任务管理器开发原理与实现.本文属于第24期,合适中级读者解析Windows任务管理器开发原理与实现作者:TOo2y源代码1:T-PsKit源代码解析Windows任务管理器开发原理与实现Author:TOo2y原创Date:05-01-2003Windows2000/XP内含的任务管理器(Taskmgr相信大家都熟习吧,对比之下XP里的要比2000功能更为强盛,返回的信息也更为的详尽,可是您能否感觉还有好多希望获取的信息没有包含在里面吗?您能否感觉Windows的系统管理工具箱里的东西太分别
2、了吗?下边就让我们看看它们的开发原理,并着手实现一个真实的任务管理器。此刻我们是调用Win32API来实现这些功能的,可是大家都说MS隐蔽了太多的细节,此后我们将议论更多对于Windows内核的东东。可能大家对任务管理器里最熟习的功能要数进度管理了,经常我们在思疑中了病毒/木马的时候都会看看任务管理器里有没有什么特其余进度在运转,因此进度查察器应当是一个特别重要的功能。我们除了需要获取进度的名称外,还有什么呢?自然包含它的进度表记符(ProcessID,用户信息(UserName,CPU使用时间(CPUTime和储存器的使用状况(MemoryUsage,还有它的优先权(BasePriority
3、。CPU和Memory信息能够帮助我们解析进度的运转状况,而优先权能够表示进度在CPU分派办理器使用时的优先状况。这些都是通用的进度信息,让我们再看看其余的信息吧。进度的父进度表记符(ParentProcessID创,建时间(CreateTime,程序名称等在好多状况下也是我们关怀的信息。我们再看看进度有关的性能信息。在Windows下往常有两种模式:内核模式(Kernel:Level0和用户模式(User:Level3,进度常常在两种模式中往返切换,因此能够获取进度在内核模式和用户模式各自的使用时间。同时还包含进度有关的工作集(WorkingSet,分页池(PagedPool,非分页池(No
4、nePagedPool和页面文件(PageFile信息。进度有关的I/O操作包含读/写/其余等动作,我们能够获取这些操作的次数和传递数据的数目。假如您思疑某个进度是木马,那您还想获取哪些信息呢?简单的进度名称应当是不够的吧!我们希望获取进度的实质程序的路径,这样能够帮助我们判断终究是那个程序在运转。前段时间不是在议论什么进度隐蔽的,此中一种就是“创立远程线程”,而注体常常又是以动向链接库(DLL的形式存在的,我们就希望看到某个详细进度所包含的全部模块(Module,经常是DLL也。“线程”是一个大家熟习的名字,它是Windows系统中的实现体,而进度则是线程运转的环境。一个进度究竟创立了多少线
5、程了?我们相同能够列举进度内部的全部线程信息。假如您发现一个木马进程,下边的动作就应当是解析它的运转体制(假如您对它感兴趣,可是最后您仍是要将它结束吧。在Windows2k下,好多系统重点进度在TaskMgr里是不可以被结束的,可是此刻您不用担忧了。好的,对进度的操作自然就包含结束进度。假如您用过中文的XP,您能否经常碰就任务栏“假死”的状况,固然您的电脑没有挂掉,但却动弹不得,那好我们也相同能够将随意的进度挂起来,不论您对它做什么动作(除了却束,它都不会有任何的反响。有了挂起进度,相同我们也能够将进度从“挂起”状态激活哈。桌面窗口是大家接触得最多的交互界面了,您能否想获取每个窗口的标题信息呢
6、?自然我们还能够获取与窗口关系的进度,线程与窗口句柄属性。假如大家对VC比较熟习,就应当知道此中的一个SPY+工具吧,它就能够获取桌面窗口,进度和线程的详尽信息,可是此刻就不用翻开这个,翻开那个了,统统搞定了!系统性能是每个用户关怀的话题。它包含整个系统目前创立的句柄,进度以及线程的数目。还有物理储存器(PhysicalMemory的总量和使用状况,系统高速缓存(SystemCache的大小,储存器保存与提交(CommitCharge状况,自然还有核心分页/非分页池(KernelMemory的使用状况。几乎包含了Windows系统下储存器管理的大多数信息。固然此刻硬盘的价钱已经很低了,可是我仍
7、是在用6.4G的小东东,因此经常碰到“LowDisk我”!们经常要看看硬盘的使用状况,可是每次都要进入我的电脑,太麻烦了。而我们此刻能够一次认识全部磁盘的容量和目前使用状况,同时还有它们的格式种类(如FAT,NTFS,CDFS等和磁盘标签。说到环境块,也许不是那么熟习吧,它包含一些环境变量,而每个环境变量对应一个/多个字符串,您能够在控制面板的SYSTEM/Advanced(系统/高级里对它们进行设置,包含增添新的环境变量,删除和编辑系统环境变量。事件记录对我们解析系统的使用状况有很大的帮助。事件记录分为三种:应用程序,系统和安全。而对应的每种事件又能够分为几种种类,它们分别是惯例信息,警示和
8、错误。此中包含记录序号(RecordNumber,事件种类(Type,表记符(EventID,根源(Source,产生时间(TimeGenerated,用户名(User和有关描绘信息(Description。有时间大家能够多看看事件信息,自然每个网络管理员对它们应当是很熟习的,可是还包含其余的事件日记信息。Windows系统下的ipconfig/all这个命令我是经常用,由于我们使用的是DHCP,没事看看自己的IP地点变了没有。此中包含详尽的网络适配器的信息,包含适配器名称,描绘,硬件地点和种类,IP地点及相应的子网掩码,网关与DHCP服务器地点等。可是您能否对网络流量也感兴趣呢?我们自然能够
9、获取主机接受/发送了多少(非广播数据报,出现了多少错误,一共接受/发送了多少信息,这些对每个网友都是有用的信息哟。网络共享常常是大家注意的地方,您终究共享了多少信息,它们的文件路径是什么,还有它们的共享种类信息。我们在不需要某些共享资料时,自然不要忘了将其删除,免得泄漏自己的机密信息。Windows的NT是一个多用户的系统,允很多种种类用户的存在。我们希望获取用户账号的使用限期(PasswordExpired,记着要不准时的改正用户的密码哟,以及用户表记符(UserID,组表记符(GroupID,还实用户账号的种类(Type,不一样的种类有不一样的权限,我们自然希望有最High的权利哟!看看系
10、统对某个账号的磁盘空间使用状况能否有限制(MaxStorage,账号登录的次数(NumberOfLogon和登录时间信息(LogonHours等,对我们解析用户的使用状况也有帮助的。系统的Win32服务和设施驱动信息也是很重要的,我们希望探测每个服务/设施启动程序的详细路径,状态,种类,启动方式等等信息。我们还希望对服务进行控制,比方停止,启动和删除操作。大家能够参阅浅析Windows2000/XP服务与后门技术获取更多对于Win32服务的信息。关机也不是那么的单一的,您能够注销自己的系统,假如您要走开自然就需要锁定了。近来大家都不喜爱关机,太麻烦了,因此都习惯使用冬眠,系统将会为我们保存目前
11、信息,可是还有支持电源管理的关机和休眠。Windows2000的用户注意了,我们相同能够使用XP系统下的带有到记时与信息提示的关机和重启功能了。系统的版本信息是比较固定的,主要包含操作系统的指纹,注册组织/用户,主机名和系统有关目录等信息。说了这么多,我们也该说说怎样实现了。1.窗口信息MS为我们供给了翻开特定桌面和列举桌面窗口的函数。hDesk=OpenDesktop(lpszDesktop,0,FALSE,DESKTOP_ENUMERATE;/翻开我们默认的Default桌面;EnumDesktopWindows(hDesk,(WNDENUMPROCEnumWindowProc,0;/列举
12、翻开桌面上的全部窗口,由回调函数实现。BOOL_stdcallEnumWindowProc(HWND,LPARAM;/在回调函数中,我们能够获取窗口的标题和有关进度,线程信息;GetWindowText(hWnd,szWindowText,dwMaxCount;GetWindowThreadProcessId(hWnd,&dwPID;2.设施驱动器信息(服务和设施驱动器差不多,在此不做重复设施驱动信息有服务控制管理器(SCM来管理的,我要翻开服务控制管理器,并列举全部的设施驱动器。OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS;/以全部权限翻开服务控
13、制管理器;EnumServicesStatus(schManager,dwDeviceType,dwDeviceState,EnumStatus,dwBufSize,&dwBytesNeeded,&dwDevicesReturned,&dwResumeHandle/列举全部设施的目前状态;CloseServiceHandle(schManager;/记着,在结束接见后要封闭服务句柄;OpenService(schManager,szDeviceName,SERVICE_ALL_ACCESS;/翻开特定的设施驱动器;QueryServiceConfig(schDevice,lpDeviceCon
14、fig,1024*8,&dwBytesNeeded;/查问驱动器的服务配置信息;QueryServiceStatus(schDevice,&DeviceStatus;/查问设施驱动器的目前状态;QueryServiceConfig2(schDevice,SERVICE_CONFIG_DESCRIPTION,(LPBYTElpDeviceDescription,8*1024,&dwBytesNeeded/查问设施的描绘信息;StartService(schDevice,0,NULL;/启动设施;ControlService(schDevice,SERVICE_CONTROL_STOP,&Devi
15、ceStatus;/停止设施;DeleteService(schDevice;/删除设施;3.磁盘信息我们希望获取系统全部磁盘的信息,包含软盘,硬盘,光盘等等;GetLogicalDriveStrings(dwBufferLength,lpBuffer;/获取逻辑设施的信息;GetVolumeInformation(lpRootPathName,lpVolumeNameBuffer,dwVolumeNameSize,&dwVolumeSerialNumber,&dwMaximumComponentLength,&dwFileSystemFlags,lpFileSystemNameBuffer,
16、dwFileSystemNameSize;/获取磁盘卷信息,包含卷名称和格式种类;GetDiskFreeSpaceEx(lpRootPathName,&FreeBytesAvailable,&TotalNumberOfBytes,&TotalNumberOfFreeBytes;/探测磁盘的空间使用状况;4.环境变量我们能够从注册表中获取环境块的信息:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManagerEnvironment,自然要使用注册表的函数。RegOpenKeyEx(HKEY_LOCAL_MACHINE,RegKey
17、,0,KEY_QUERY_VALUE,&hKey;/翻开注册表的键;RegEnumValue(hKey,dwIndex,EnvironVariable,&dwVariableLength,NULL,NULL,NULL,NULL;/查问我们需要的信息值;GetEnvironmentVariable(EnvironVariable,EnvironString,1024;/获取环境变量的字符串信息;5.事件记录信息OpenEventLog(NULL,szLog;/翻开时间日记记录;GetOldestEventLogRecord(hEvent,&dwThisRecord;/获取最新的日记信息,以便持续
18、查找;ReadEventLog(hEvent,EVENTLOG_FORWARDS_READEVENTLOG_SEQUENTIAL_READ,0,pEventLogRecord,1024*32,&dwRead,&dwNeeded/读去日记信息;LookupAccountSid(NULL,pSid,szName,&dwName,szDomain,&dwDomain,&SNU;/获取账户的SID,以便获取账户的用户名称;GetNumberOfEventLogRecords(hEvent,&dwTotal;/获取事件日记的总数;CloseEventLog(hEvent;/不要忘掉封闭事件句柄;6.网络
19、共享我们使用第二等级的网络共享搜寻;NetShareEnum(NULL,dwLevel,(PBYTE*&pBuf,MAX_PREFERRED_LENGTH,&entriesread,&totalentries,&resume;/列举全部的共享目录及有关信息;NetApiBufferFree(pBuf;/开释缓冲区;NetShareDel(NULL,(char*lpShareNameW,0;/删除网络共享目录;7.网络适配器信息我们要探测NIC的信息和网络流量;GetAdaptersInfo(&AdapterInfo,&OutBufLen;/获取适配器信息;8.系统性能获取系统的储存器使用状况;
20、GetPerformanceInfo(&PerfInfo,sizeof(PERFORMACE_INFORMATION/获取系统性能信息;9.进度/线程/模块信息在此我们使用工具帮助函数(ToolHelp32和系统OpenProcessToken(GetCurrentProcess(,TOKEN_QUERYTOKEN_ADJUST_PRIVILEGES,&hToken;/翻开进度的令牌,提高权限;AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES,NULL,NULL;/将进度的权限提高到支持调试(
21、Debug;CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0;/创立进度的快照;Process32First(hProcessSnap,&ProcessEntry32;Process32First(hProcessSnap,&ProcessEntry32;/列举全部进度;OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,ProcessEntry32.th32ProcessID;/翻开特定进度,以查问进度有关信息;GetProcessTimes(hProcess,&CreateTime,&ExitTime,&Kern
22、elTime,&UserTime;/获取进度的时间信息;GetProcessMemoryInfo(hProcess,&PMCounter,sizeof(PMCounter;/获取进度的储存区信息;GetPriorityClass(hProcess;/获取进度的优先权;GetProcessIoCounters(hProcess,&IoCounters;/获取进度的IO使用状况;CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,dwProcessID;/创立模块快照;Module32First(hModuleSnap,&ModuleEntry32;Module3
23、2Next(hModuleSnap,&ModuleEntry32;/列举进度模块信息;CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,0;/创立线程快照;Thread32First(hThreadSnap,&ThreadEntry32;Thread32Next(hThreadSnap,&ThreadEntry32;/列举线程信息;OpenThread(THREAD_ALL_ACCESS,FALSE,ThreadEntry32.th32ThreadID;/翻开线程,须自己获取此函数地点;TerminateProcess(hProcess,0;/停止进度;Su
24、spendThread(hThread;/悬挂线程;ResumeThread(hThread;/激活线程;10.关机AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES,NULL,NULL;/调整进度令牌,使其支持关机;ExitWindowsEx(EWX_LOGOFF,0;/注销系统;LockWorkStation(;/锁定系统;InitiateSystemShutdown(NULL,szMessage,dwTimeout,FALSE,bSig;/支持到记时和信息显示的关机/重启;SetSystemPowerState(bSig,F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电焊工入职测试题及答案
- 民航常识考试试题及答案
- 人工智能赋能传统产业
- 辽宁鞍山市立山区教育局面向2026届毕业生校园招聘7人(第三批)参考题库(历年真题)附答案详解
- 2026四川眉山市洪雅县从农村订单定向医学生中考核招聘乡镇卫生院人员7人模拟试卷附参考答案详解【基础题】
- 2026年麒麟区教体系统下属农村学校教师考调城区学校实施方案(92人)笔试题库附完整答案详解【历年真题】
- 新型显示技术ARMR交互终端
- 智能制造系统升级-第1篇
- 2026三年级读写校本教研实施课件
- 生产现场管理之道
- 广东省安装工程综合定额说明及计算规则(2024年版)
- JJF 1544-2024拉曼光谱仪校准规范
- 《基坑支护中断面支护的结构设计计算案例》12000字
- 乙二醇密度及阻力计算
- 招标文件范本三篇
- 22年辐射安全考核试题-放射治疗
- JBT 11270-2024 立体仓库组合式钢结构货架技术规范(正式版)
- 学科建设课件
- 2020年承包人承揽工程项目一览表
- 俯卧位通气操作规范
- 200W逆变电源初步设计
评论
0/150
提交评论