如何隐藏自己电脑的进程 例如QQ进程

wuda00001 2009-04-20 01:15:02
我QQ隐藏了·别人看不到我有上QQ·但是进程隐藏不了··稍微懂得一点电脑的人都可以在进程里看到QQ是否有上··请教各位大侠怎么隐藏进程啊····
...全文
1961 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cycchina 2011-02-18
  • 打赏
  • 举报
回复
人家都说不用代码了。看来和我一样对编程有些头疼。
这里是讨论程序的地方不是黑软实验室。。找错地方了
wrdmao 2009-09-14
  • 打赏
  • 举报
回复
既然不能隐藏。为什么不把QQ.exe换成别的名称?比如java.exe
zjx2388 2009-06-09
  • 打赏
  • 举报
回复
lz这样做的目的是什么啊

现在QQ退出了WEB版本的,可以打开浏览器上网就行

呵呵

莫非lz的公司禁止聊Q
lpf000 2009-06-09
  • 打赏
  • 举报
回复
fejwo
The_facE 2009-06-09
  • 打赏
  • 举报
回复
如果只是任务管理器,最简单的办法,把任务管理器禁掉。
  • 打赏
  • 举报
回复
自己写一个任务管理器....
hhwei1985 2009-06-09
  • 打赏
  • 举报
回复
QQ怎么隐藏?
imdemon 2009-06-09
  • 打赏
  • 举报
回复
把qq.exe改成PP.exe
= =
fldx 2009-06-09
  • 打赏
  • 举报
回复
这个好像很难的。。。。
lijiawlm 2009-06-09
  • 打赏
  • 举报
回复
很简单 如果用软件的话 Hidetools
如果要自己做软件的话 Hook一个什么函数(具体忘了) 然后删掉QQ进程
wanlong1215 2009-06-07
  • 打赏
  • 举报
回复
..
red_berries 2009-06-07
  • 打赏
  • 举报
回复
ring3下面全局HOOK应该也是可以的,不过最好在Ring0下
wuda00001 2009-06-07
  • 打赏
  • 举报
回复
有没有不用输入代码的方法···用软件操作也行···或直接改变电脑中的某些属性···
「已注销」 2009-04-20
  • 打赏
  • 举报
回复
楼上代码基本上已经行不通了。
这个问题我曾经花了大力气研究,得到的结论是:
如果是ring3级别,win2k以上系统,基本上就别指望了。
只有用ring0级别,通过写驱动程序,才能实现。

如果你只是不想让进程在Windows的资源管理器里显示,你可以截获ListCtrl消息,判断出是你的进程时,堵截之。
而截获的办法当然用ApiHook了。
可以使用detours来帮你实现ApiHook。
coverallwangp 2009-04-20
  • 打赏
  • 举报
回复
 #include   <windows.h>   
#include <stdio.h>

// 远线程参数结构
typedef struct _RemoteThreadPara{
char pMessageBox[12];
DWORD dwMessageBox;
}RemotePara;

// 远程线程
DWORD __stdcall ThreadProc( RemotePara *lpPara )
{
// 对MessageBox()函数做函数指针
typedef int (__stdcall *MMessageBoxA)(HWND,
LPCTSTR, LPCTSTR, DWORD );

// 声明函数指针对象
MMessageBoxA myMessageBoxA;
// 指针赋值
// 得到函数入口地址
myMessageBoxA = (MMessageBoxA)lpPara->dwMessageBox;

// 调用MessageBox(....);
myMessageBoxA( NULL,
lpPara->pMessageBox,
lpPara->pMessageBox,
0 );
return 0;
}

//提升应用级调试权限
int EnableDebugPriv();

int main( int argc, char** argv[] )
// 注入进程内存实现本地进程隐藏
{
// 线程运行需要从宿主进程
// 划拨的内存大小
const DWORD THREADSIZE = 1024*4;
DWORD byte_write;
HANDLE hWnd;
HANDLE hThread;
HINSTANCE hUser32;
void *pRemoteThread;
RemotePara myRemotePara;
RemotePara *pRemotePara;

// 提升权限
EnableDebugPriv();
// 打开进程
hWnd = OpenProcess (
// 拥有所有权限
PROCESS_ALL_ACCESS,
// 不被继承
FALSE,
// 进程ID
1436 );

// 打开进程失败
if(!hWnd)
{
fprintf( stderr, "There is no such Process\n" );
return -1;
}

// 划拨进程内一块内存并清0
pRemoteThread = VirtualAllocEx(
hWnd,
NULL, // 让程序决定开始划拨内存地址
THREADSIZE, // 划拨的大小
MEM_COMMIT| MEM_RESERVE,PAGE_EXECUTE_READWRITE );
// 划拨内存失败
if( !pRemoteThread )
return -1;

// 写进程内存(注入线程)
if( !WriteProcessMemory(
// 打开的进程句柄
hWnd,
// 内存地址
pRemoteThread,
// 线程函数
&ThreadProc,
// 写入数据大小
THREADSIZE,
// 实际写入数(这里忽略)
0 ) )
return -1;

// 线程参数缓冲区清0
ZeroMemory( &myRemotePara, sizeof(RemotePara) );
// 装载user32.dll
hUser32 = LoadLibrary ("user32.dll");
// 装载程序地址
myRemotePara.dwMessageBox =(DWORD)GetProcAddress (hUser32 , "MessageBoxA");
// 字符参数
strcat( myRemotePara.pMessageBox, "hello\0" );

// 再次划拨内存存储参数
pRemotePara = (RemotePara *)VirtualAllocEx (
hWnd,
0,
sizeof(RemotePara),
MEM_COMMIT,
// 空间页面属性
PAGE_READWRITE );

// 参数内存划拨失败
if( !pRemotePara )
return -1;

// 写内存(注入线程参数)
if( !WriteProcessMemory(
// 进程句柄
hWnd,
// 内存地址
pRemotePara,
// 数据
&myRemotePara,
// 大小
sizeof myRemotePara,
// 实际写入量
0) )
return -1;

// 创建远程线程
hThread = CreateRemoteThread (
hWnd, // 进程句柄
0, // 默认安全级
0, // 默认栈
// 线程函数
(DWORD (__stdcall *)(void *))pRemoteThread,
pRemotePara,// 线程参数
0, // 立即执行
&byte_write );

// 启动远程线程失败
if( !hThread )
return -1;

return 0;
}


// 提升权限
// 使在internet、winLogin、lsass中注入线程得以实现
int EnableDebugPriv( void )
{
// 句柄
HANDLE hToken;
LUID sedebugnameValue;
// 权限信息结构
TOKEN_PRIVILEGES tkp;

// 打开进程访问权限
if ( ! OpenProcessToken(
// 获取当前进程句柄
GetCurrentProcess(),
// 请求获取并改变权限
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
// 存储当前进程权限信息
&hToken ))
return -1;

// 查询标识符
if ( ! LookupPrivilegeValue(
NULL,
SE_DEBUG_NAME,
// 标识符
&sedebugnameValue ))
{
CloseHandle( hToken );
return -1;
}

// 设置权限信息
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

// 请求设定进程权限
if ( ! AdjustTokenPrivileges(
hToken,
FALSE,
&tkp,
sizeof(tkp),
NULL,
NULL ))
CloseHandle( hToken );

return 0;
}


从网上找的代码,你研究一下吧
wuda00001 2009-04-20
  • 打赏
  • 举报
回复
知道啊·百度了很多·有好多代码··比较麻烦···我想可不可以不通过代码··
liao05050075 2009-04-20
  • 打赏
  • 举报
回复
去baidu一下吧。能搜也N多东西

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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