社区
Windows SDK/API
帖子详情
如何在WINDOWSXP,2000,2003的任务管理器中隐藏程序
wjhh
2003-09-02 11:30:10
我想做一个后台监控程序,但不想让用户在任务管理器中关掉我的程序,请教各位大侠,如何隐藏掉我的程序。
...全文
107
18
打赏
收藏
如何在WINDOWSXP,2000,2003的任务管理器中隐藏程序
我想做一个后台监控程序,但不想让用户在任务管理器中关掉我的程序,请教各位大侠,如何隐藏掉我的程序。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
IOLIR
2003-10-27
打赏
举报
回复
比较简单一点的方法是做个Dll把所有能列举系统进程的API函数Hook掉,比如,EnumProcess等。
比较复杂一点的是可以用远程进程注入的方式来把自己的线程插入系统程序比如Explorer.exe中,这样就不可能被发现。
或者用3级跳,做2个Dll,一个用来Hook,然后用Hook的那个DLL调用另外一个真正执行线程的DLL来创建一个线程就可以了。
但是我想过一种实现起来比较简单的方法,但是没有做过,就是用消息钩子来勾住所有的程序,然后挑几个系统程序,然后在钩子DLL初始化的代码里面创建个线程就可以了,不知行不行?
如果需要的话我们可以探讨一下,我前段时间就在研究这个问题。
micher_yan
2003-10-27
打赏
举报
回复
二楼的,你的方法虽然在任务栏和任务管理器/应用程序中看不到,但是在任务管理器的进程中还是能看到的,一点结束进程就over了
bottom
2003-10-27
打赏
举报
回复
谁有J++BUILDER 9.0的破解包?
我用买来的光盘上的破解包 解了一下午也没搞定!
快帮助我?!谢谢!
leapmars
2003-09-15
打赏
举报
回复
听课
yurenjf
2003-09-15
打赏
举报
回复
用下面的可以实现任务管理器中隐藏程序
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.Title := ''; //*****
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
而且在窗体的create事件用
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
还可以使之在状态栏上消失....
Eastunfail
2003-09-02
打赏
举报
回复
我有例子。留下Email。
renzy205的方法在XP,2000,2003中无效。
renzy205
2003-09-02
打赏
举报
回复
function RegisterServicesProcess(dwProcessID,dwType: DWORD): DWORD; stdcall; external 'USER32.DLL';
renzy205
2003-09-02
打赏
举报
回复
RegisterServiceProcess(GetCurrentProcessId,0);
xxl820
2003-09-02
打赏
举报
回复
你可以用API函数,获得在任务管理器中的句柄,你查以下,我的源码没有了
Drate
2003-09-02
打赏
举报
回复
NT/200下进程隐身
Jedei 在 2001-6-17 2:09:08 提供了如下回答, 请您查阅和评估:
--------------------------------------------------------------------------
---
我也来凑凑热闹:
AttachToProcess('Explorer.Exe', 'MyDll.Dll' );
file://查找指定的进程,然后返回进程ID
procedure FindAProcess(const AFilename:string; const PathMatch:Boolean;
var ProcessID: DWORD);
file://AFilename为要查找(进程ID)的文件名(可以包行路径)
file://PathMatch为查找的时候是否匹配路径
var
lppe:TProcessEntry32;
SsHandle:Thandle;
FoundAProc, FoundOK:boolean;
begin
SsHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL,0);
FoundAProc := Process32First(Sshandle,lppe);
while FoundAProc do
begin
if PathMatch then
FoundOK:=AnsiStricomp(lppe.szExefile,PChar(AFilename))=0
else
FoundOK:=AnsiStricomp(PChar(ExtractFilename(lppe.szExefile)),PChar(Extract
Filename(AFilename)))=0;
if FoundOK then
begin
ProcessID:=lppe.th32ProcessID;
break;
end;
FoundAProc :=Process32Next(SsHandle,lppe);
end;
// if not FoundAProc then showmessage(SysErrorMessage(GetLastError));
CloseHandle(SsHandle);
end;
file://激活或者停止指定的权限
function EnabledDebugPrivilege(const bEnabled: Boolean):Boolean;
var
hToken: THandle;
tp: TOKEN_PRIVILEGES;
a: DWORD;
const
SE_DEBUG_NAME = 'SeDebugPrivilege';
begin
Result:=False;
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES,
hToken)) then
begin
tp.PrivilegeCount :=1;
LookupPrivilegeValue(nil,SE_DEBUG_NAME ,tp.Privileges[0].Luid);
if bEnabled then
tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
else
tp.Privileges[0].Attributes := 0;
a:=0;
AdjustTokenPrivileges(hToken,False,tp,SizeOf(tp),nil,a);
Result:= GetLastError = ERROR_SUCCESS;
CloseHandle(hToken);
end;
end;
file://在指定的进程中插入一个DLL文件
function AttachToProcess(const HostFile, GuestFile : string;const
PID:DWORD=0):DWORD;
file://HostFile为要绑定的宿主文件(Exe文件),GuestFile为要嵌入的客户文件(Dll文
件)
file://如AttachToProcess('D:.DLL','Notepad.exe') ;
var
hRemoteProcess: THandle;
dwRemoteProcessId:DWORD;
cb:DWORD;
pszLibFileRemote: Pointer;
iReturnCode:Boolean;
TempVar:DWORD;
pfnStartAddr:TFNThreadStartRoutine;
pszLibAFilename: PwideChar;
begin
Result:=0;
EnabledDebugPrivilege(True);
Getmem(pszLibAFilename,Length(GuestFile)*2+1);
StringToWideChar(GuestFile,pszLibAFilename,Length(GuestFile)*2+1);
if PID>0 then dwRemoteProcessID:=PID else
FindAProcess(HostFile,False,dwRemoteProcessID);
file://由于我们后面需要写入远程进程的内存地址空间并建立远程线程,所以需要申请
file://足够的权限(PROCESS_CREATE_THREAD、VM_OPERATION、VM_WRITE)。
file://然后,我们可以建立LoadLibraryW函数这个线程来启动我们的DLL,
LoadLibraryW
file://函数是在kernel32.dll中定义的,用来加载DLL文件,它只有一个参数,就是DLL
file://文件的绝对路径名pszLibAFilename,(也就是DLL的全路径文件名),但是由于
file://DLL是在远程进程内调用的,所以我们首先还需要将这个文件名复制到远程地址
空
file://间:(否则远程线程是无法读到这个参数的)
hRemoteProcess := OpenProcess(PROCESS_CREATE_THREAD + file://允许远程创建线程
PROCESS_VM_OPERATION+ file://允许远程VM操作
PROCESS_VM_WRITE,//允许远程VM写
FALSE, dwRemoteProcessId);
file://计算DLL路径名需要的内存空间
cb := (1 + lstrlenW(pszLibAFilename)) * sizeof(WCHAR);
file://使用VirtualAllocEx函数在远程进程的内存地址空间分配DLL文件名缓冲区
pszLibFileRemote := PWIDESTRING( VirtualAllocEx( hRemoteProcess, nil,
cb, MEM_COMMIT, PAGE_READWRITE));
file://使用WriteProcessMemory函数将DLL的路径名复制到远程进程的内存空间
TempVar:=0;
iReturnCode := WriteProcessMemory(hRemoteProcess,pszLibFileRemote,
pszLibAFilename, cb, TempVar);
if iReturnCode then
begin
file://计算LoadLibraryW的入口地址
pfnStartAddr := GetProcAddress(GetModuleHandle('Kernel32'),
'LoadLibraryW');
file://OK,万事俱备,我们通过建立远程线程时的地址pfnStartAddr(实际上就是
LoadLibraryW
file://的入口地址)和传递的参数 pszLibFileRemote(实际上是我们复制过去的
DLL的全路
file://径文件名)在远程进程内启动我们的DLL:
file://启动远程线程LoadLibraryW,通过远程线程调用用户的DLL文件
TempVar:=0;
Result := CreateRemoteThread(hRemoteProcess, nil, 0, pfnStartAddr,
pszLibFileRemote, 0, TempVar);
end;
Freemem(pszLibAFilename);
end;
dfancy
2003-09-02
打赏
举报
回复
用HOOK的话程序必须做成DLL?
RamjetZhang
2003-09-02
打赏
举报
回复
你还不如取个名字叫svchost.exe之类的蒙人
Skylights
2003-09-02
打赏
举报
回复
to Eastunfail:我也要,ysqfei@sina.com 谢谢 ^o^
蓝色光芒
2003-09-02
打赏
举报
回复
直接写成服务程序就关不掉了
蓝色光芒
2003-09-02
打赏
举报
回复
直接写成服务程序就关不掉了
Eastunfail
2003-09-02
打赏
举报
回复
发了。请查收
pankun
2003-09-02
打赏
举报
回复
二\三楼的只有在9X下有用,2000以上可以用HOOK机制进行DLL注入来实现进程隐藏.
jerrymousenet2
2003-09-02
打赏
举报
回复
请给我也发一份,好吗?thanks.
oyxz@21cn.net
基于.NET的
Windows
高级任务栏技术
任务栏不再仅仅只是用于呈现运行
中
的应用
程序
图标,在管理重要应用
程序
方面已经处于核心地位。根据Win7、Win8、Win10安装所启用的功能,任务栏瞬间摇身一变成为各个窗口的一站式服务
中
心。 任务栏上显示的状态信息...
Windows
XP
任务栏
隐藏
解决
介绍几种关于
Windows
XP
任务栏消失/
隐藏
的解决办法: 1、按动键盘上的F11键。 2、按
windows
健(位于ctrl和alt
中
间),显示出开始菜单,在空白处单击右键,点击“属性,打开“任务栏和开始菜单属性”,在任务栏
中
...
xp
计算机管理下的服务显示不出来,Win
XP
系统任务栏不显示打开窗口的三种解决方案...
最近,不少
windows
XP
系统用户都碰到了任务栏不显示打开窗口的问题。不过,他们还反馈用TAB+ALT或
任务管理器
应用
程序
却可以看到任务项目。这是怎么回事呢?其实,该问题可能是桌面
程序
e
xp
lorer.exe有问题、任务栏设置...
全面了解
Windows
任务管理器
Windows
的
任务管理器
提供了有关计算机性能的信息,并显示了计算机上所运行的
程序
和进程的详细信息,可以显示最常用的度量进程性能的单位;如果连接到网络,那么还可以查看网络状态并迅速了解网络是如何工作的,今天...
Windows
XP
系统
任务管理器
几个另类用法
Windows
XP
系统
任务管理器
几个另类用法
Windows
任务管理器
可以用来察看当前运行的
程序
、启动的进程、CPU及内存使用情况等信息,这为我们进一步解决问题提供思路,用好
任务管理器
是菜鸟们竞升高手的必经之路。...
Windows SDK/API
1,183
社区成员
22,335
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章