当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>WinNT及Win2K下实现进程的完好躲藏</b>[VC/C++编程]

赞助商链接



  本文“<b>WinNT及Win2K下实现进程的完好躲藏</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

面对众多的计算机高手,考虑好久,终于还是决意出来献丑一下,文章内尽大概利用最简便易懂的词汇及例子来介绍,但愿可以对一些初学与进阶者有所帮忙.

关于进程的躲藏,98下的例子不可胜数.WinNT/Win2K下的躲藏办法,西祠的高手shotgun在去年的6月就已经在网上公布出实例《揭开木马的奥秘面纱<四>》 ,我也多次拜读他的文章,对他的计算机水平及热情帮忙朋友的作风非常敬佩.这里也可算是对shotgun的文章的增补与深化介绍吧,好了,闲话少说.

在WinNT下"真正躲藏进程"这一说法,可以讲是根本不大概实现,只要我们的程序是以进程内核的情势运行,都是不大概逃离CTRL+ALT+DEL的法眼.那么奇特了,这岂不是与我们的标题《WinNT & Win2K下实现进程的完好躲藏》相冲突吗?是的,实际上应当是:以非进程方法履行目标代码,而躲避进程查看器的查抄,从而到达"进程躲藏"的目的.

我们这里用的,是在宿主进程中,以线程的方法履行我们的代码.实现起来非常简单.首先,我们先成立一个不履行任何语句的线程

DWORD stdcall ThreadProc(LPVOID *lpVoid){
return 0;
}

然后,将线程代码拷备至宿主进程所可以履行的任何地方(即页面属性为PAGGE_EXECUTE_READWRITE),如:同享内存影射区、宿主进程内.这里我们挑选宿主进程,拷备的时侯,我们需求先在宿主进程中利用VirtualAllocEx函数申请一段内存,然后再利用WriteProcessMemory将线程体写入宿主进程中.

以上工作完成后,我们便可CreateRemoteThread函数激活其履行.下面给出一个完好的例子

//远程线程履行体

DWORD __stdcall ThreadProc (void *lpPara){
return 0;
}
int main(int argc, char* argv[]){
const DWORD THREADSIZE=1024*4;//暂定线程体大小为4K,实际上没这么大,稍后我将会介绍
DWORD byte_write;
//得到指定进程ID句柄,并设其权限为PROCESS_ALL_ACCESS,992是宿进程的ID号,获得ID号的办法这里我就不多讲了
HANDLE hWnd = ::OpenProcess (PROCESS_ALL_ACCESS,FALSE,992);
if(!hWnd)return 0;
void *pRemoteThread =::VirtualAllocEx(hWnd,0,THREADSIZE,MEM_COMMIT| MEM_RESERVE,PAGE_EXECUTE_READWRITE);//申请
if(!pRemoteThread)return 0;
if(!::WriteProcessMemory(hWnd,pRemoteThread,&ThreadProc,THREADSIZE,0))//写入进程
return 0;
//启动线程
HANDLE hThread = ::CreateRemoteThread (hWnd ,0,0,(DWORD (__stdcall *)(void *))pRemoteThread ,NULL,0,&byte_write);
if(!hThread){ //还有内存分配未释放
return 0;
}
return 0;
}


  以上是“<b>WinNT及Win2K下实现进程的完好躲藏</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .