进程是操作系统中的一个非常重要的概念,学习的初级阶段可以先想办法枚举出它们,为以后的深入学习奠定基础。 枚举进程有许多方法,比较简单的有快照CreateToolhelp32Snapshot,psapi.dll提供的EnumProcesses()等。我们还可以通过进程ID去暴力枚举,只是可能权限不够, ...
分类:
系统相关 时间:
2017-08-16 09:51:40
阅读次数:
287
看了刚出几个博友的博客,感觉人家的量大,详细,干货量实足啊, 所以我就把另外两种常见的枚举进程的方法简单说下心得, 一个是EnumProcesses和CreateToolhelp32Snapshot系列的Tool help API的 Process32First和Process32Next函数完成列 ...
分类:
系统相关 时间:
2017-02-20 01:19:37
阅读次数:
396
ZwQueryVirtualMemory算是枚举进程方法中的黑科技吧,主要是该方法可以检测出隐藏的模块(类似IceSword)。 代码VS2015测试通过 再次奉上源码链接:https://github.com/Arsense/WindowsCode/tree/master/ZwQueryVirtu ...
分类:
系统相关 时间:
2017-02-20 01:19:07
阅读次数:
229
原理小伟的小伟在http://bbs.pediy.com/showthread.php?t=66886说的挺清楚了,Windows7下有一些变化,使用NtQueryVirtualMemory来枚举模块是一个效率很低的事情,自己枚举VadRoot速度是很快的,有N个子节点时,为log(N),还有我在这 ...
通过tlhelp32提供的api,可以很容易的获取进程、模块、线程的快照信息。所涉及头文件:tlhelp32.h枚举进程Process信息:HANDLEhSnapshot; PROCESSENTRY32pe32={sizeof(PROCESSENTRY32)}; HANDLEhProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,dwPid); if(hProcessS..
分类:
编程语言 时间:
2016-12-13 16:46:08
阅读次数:
410
方法1: ZwQuerySystemInformation 这个方法网上一搜一大堆,不举例了 方法2:暴力枚举PID枚举进程,代码: [cpp] view plain copy print? NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObj, PUNICO ...
分类:
系统相关 时间:
2016-08-11 17:42:08
阅读次数:
271
枚举进程模块的方法有很多种,常见的有枚举PEB和内存搜索法,今天,先来看看实现起来最简单的枚举PEB实现获取进程模块列表。 首先,惯例是各种繁琐的结构体定义。需要包含 ntifs.h 和 WinDef.h, 此处不再列出,各位看官根据情况自行添加。 [cpp] view plain copy pri ...
分类:
系统相关 时间:
2016-08-11 17:35:57
阅读次数:
461
用户层调用SetTimer-->内核NtUserSetTimer处理
NtUserSetTimer -->_SetTimer --> InternalSetTimer-->FindTimer / HMAllocObject
去看看NtUserSetTimer
函数原型
UINT_PTR
APIENTRY
NtUserSetTimer
(
HWND hWnd,
UINT_PT...
[C] 纯文本查看 复制代码 ? 1 2 3 4 5 6 函数原型: HANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, //用来指定“快照”中需要返回的对象,可以是TH32CS_SNAPPROCESS等 DWORD th32ProcessI ...
分类:
编程语言 时间:
2016-05-01 13:39:55
阅读次数:
245
同学问过我进程体中EPROCESS的三条链断了怎么枚举模块,这也是也腾讯面试题。我当时听到也是懵逼的。 后来在网上看到了一些内存暴力枚举的方法ZwQueryVirtualMemory。 函数原型是 R0通过遍历SSDT获得函数地址。 我们要枚举进程模块信息, 需要用到两类内存信息MemoryBasi
分类:
系统相关 时间:
2016-03-22 18:53:15
阅读次数:
752