能力值:
( LV7,RANK:110 )
|
-
-
2 楼
学习一下.
|
能力值:
( LV7,RANK:110 )
|
-
-
3 楼
根据楼主的思路改了一个应用层的献给论坛的伸手党们. #include <stdio.h> #include <Windows.h> #include <winternl.h> #include <locale.h>
typedef struct _RTL_PROCESS_MODULE_INFORMATION { HANDLE Section; PVOID MappedBase; PVOID ImageBase; ULONG ImageSize; ULONG Flags; USHORT LoadOrderIndex; USHORT InitOrderIndex; USHORT LoadCount; USHORT OffsetToFileName; UCHAR FullPathName[256]; }RTL_PROCESS_MODULE_INFORMATION, *PRTL_PROCESS_MODULE_INFORMATION; typedef struct _RTL_PROCESS_MODULES { ULONG ModulSayisi; RTL_PROCESS_MODULE_INFORMATION Moduller[1]; }RTL_PROCESS_MODULES, *PRTL_PROCESS_MODULES;
int main() { NTSTATUS ntstatus; PRTL_PROCESS_MODULES modules; modules = (PRTL_PROCESS_MODULES)VirtualAlloc(NULL, 1024 * 1024, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); if (!modules){ return -1; } decltype(NtQuerySystemInformation)* NtQuerySystemInformationPtr; NtQuerySystemInformationPtr = reinterpret_cast<decltype(NtQuerySystemInformation)*>(GetProcAddress(GetModuleHandleW(L"ntdll.dll"),"NtQuerySystemInformation")); if (!NT_SUCCESS(ntstatus = NtQuerySystemInformationPtr((SYSTEM_INFORMATION_CLASS)11, modules, 1024 * 1024, NULL))){ VirtualFree(modules, 0, MEM_RELEASE); return -1; } for (ULONG i = 0; i < modules->ModulSayisi; i++){ const char* module_name = (const char*)(modules->Moduller[i].FullPathName + modules->Moduller[i].OffsetToFileName); if (!lstrcmpiA(module_name, "vmmouse.sys")|| !lstrcmpiA(module_name, "vmrawdsk.sys")|| !lstrcmpiA(module_name, "vmusbmouse.sys")){ printf("vmware!!!!!\n"); } } VirtualFree(modules, 0, MEM_RELEASE); return 0; }
|
能力值:
(RANK:10 )
|
-
-
4 楼
哦哦哦 学习
|
能力值:
( LV9,RANK:220 )
|
-
-
5 楼
猪会被杀掉
学习一下.
看过你的CSDN学到挺多知识的
|
能力值:
( LV7,RANK:110 )
|
-
-
6 楼
黑手鱼
看过你的CSDN学到挺多知识的[em_1]
|
能力值:
( LV6,RANK:80 )
|
-
-
7 楼
遍历内核模块确实是简单的方法。 不过,如果别人先你一步加载驱动,挂了NtQuerySystemInformation这个函数又该怎么办呢?
|
能力值:
( LV9,RANK:220 )
|
-
-
8 楼
注册表、判断磁盘个数、磁盘大小好多好多方法。。
|
能力值:
( LV8,RANK:130 )
|
-
-
9 楼
检测方法很多的 这只是其中两种办法
|
能力值:
(RANK:135 )
|
-
-
10 楼
感谢分享!
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
com 里面的检测才多
|
能力值:
( LV5,RANK:60 )
|
-
-
12 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
骚操作
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
好
|
能力值:
( LV4,RANK:50 )
|
-
-
15 楼
从显卡入手也很方便
|
能力值:
( LV3,RANK:30 )
|
-
-
16 楼
黑洛
遍历内核模块确实是简单的方法。
不过,如果别人先你一步加载驱动,挂了NtQuerySystemInformation这个函数又该怎么办呢?
重载内核即可
|
能力值:
( LV6,RANK:80 )
|
-
-
17 楼
大道在我
重载内核即可
确实,都默认可以hook了
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
那就在他头部挂啊 写个自动检测挂钩常用的几个字节 还不容易
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
vbox呢? 有人提到從顯卡入手,似乎是個好辦法
|
|
|