• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
VC下揭开“特洛伊木马”的隐藏面纱
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
VC下揭开“特洛伊木马”的隐藏面纱
软件发布 VC下揭开“特洛伊木马”的隐藏面纱
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 编程技术 >> VC教程 >> VC下揭开“特洛伊木马”的隐藏面纱

VC下揭开“特洛伊木马”的隐藏面纱

添加时间: 2006-2-11 0:11:42  作者: VC教程  阅读次数:114   来源: http://www.d9soft.com

          一、引言

  “特洛伊
木马”曾在网上造成很大恐慌,此类黑客程序通过欺骗手段在普通网络用户端安装木马的服务端,使用户的计算机在上网时留有后门,而黑客则可以通过这个后门对被感染的计算机随心所欲地进行监视、破坏。显然这种黑软对于普通网络用户的危害是非常严重的。

  就本质而言黑客软件仍然属于应用程序,是基于套接字的网络通讯程序。因此黑客能成功攻击被感染计算机的一个非常必要的先决条件就是此时被攻击方已经有木马程序的服务端在运行。由于木马程序是一种恶意程序,能在被攻击者没有察觉的情况下悄悄启动运行为攻击者打开后门,故显然不能象其他程序一样堂而皇之的显示在任务栏和任务列表中,否则会立即为用户所察觉而将其关闭,也就失去了为攻击者提供后门的作用。本文下面就针对其隐藏程序的机理展开讨论。

  二、程序在任务栏中的隐藏原理

  程序在任务栏的隐藏比较简单,首先要保证程序主界面的隐藏,一般是通过修改应用程序类的初始化实例函数InitInstance()的ShowWindow()语句的SW_SHOW参数为SW_HIDE来实现的。主界面隐藏的同时任务栏虽然也会消失,但在程序启动时会闪一下,因此需要修改程序的扩展属性。一种方法是SDK的写法,即直接利用GetWindowLong()获取到当前的扩展属性然后通过逻辑运算去掉原有的WS_EX_APPWINDOW属性,并新添加一个WS_EX_TOOLWINDOW属性,这样系统会将其认为是一个工具条窗口而不会再在任务栏中加以显示。最后需要将修改过的扩展属性通过SetWindowLong()函数将其写回。这两个函数的声明分别如下:

  

  LONG GetWindowLong(HWND hWnd,int nIndex);

  LONG SetWindowLong(HWND hWnd,int nIndex,LONG dwNewLong);

  另一种很简便的是MFC的写法:在程序框架类的预创建窗口函数里通过直接对CREATESTRUCT结构对象的逻辑操作而将程序属性进行改变:

  

  cs.style=WS_POPUP;

  cs.dwExStyle =WS_EX_TOOLWINDOW;

  这两种写法虽然表现形式各不相同,其本质都是一样的。
  三、程序在任务列表中的隐藏原理

  任务列表(Ctrl+Alt+Del时弹出的对话框)显示了当前系统正在运行的一些应用程序,如果实现了上一步,虽然在任务栏看不见程序,但有经验的用户可以通过观察任务列表而发现一些值得怀疑的应用程序而在此将其关闭。所以大多数黑软也都通过较复杂的手段实现了自身在任务列表中的隐藏,使被发现的机会大大降低。

  在Win9x/2000中,一般每个应用程序都要通过一个API(应用程序接口)函数RegisterServiceProcess()向系统申请注册成为一个服务进程,并且也是通过这个函数注销其服务进程来结束这个服务进程的运行。如果一个进程注册为一个服务进程,通过Ctrl+Alt+Del就可以在任务列表里看见该进程的标题。而如果一个进程运行了但没有向系统申请注册成为服务进程那么就不会在任务列表里显示。黑软也正是利用这个原理使自身在运行时能在任务列表中实现隐藏。该函数存放于系统内核Kernel32.dll中,具体声明如下:

  

  DWORD RegisterServiceProcess(DWORD dwProcessId,DWORD dwType);

  其第一个参数指定为一个服务进程的进程标识,如果是0则注册当前的进程;第二个参数指出是注册还是注销当前的进程,其状态分别为:RSP_SIMPLE_SERVICE和RSP_UNREGISTER_SERVICE。黑软一般是在程序启动初始化时首先从Kernel32.dll动态连接库中将RegisterServiceProcess()函数加载到内存,然后再通过该函数将程序从任务列表中隐藏:

  

  //从Kernel32.dll中加载RegisterServiceProcess()

  HMODULE m_hKernel=::GetModuleHandle("Kernel32.DLL");

  RSP m_rsp=(RSP)::GetProcAddress(m_hKernel,"RegisterServiceProcess");

  m_rsp(::GetCurrentProcessId(),1);//此时为隐藏,当第二个参数为0时显示

  另外,还有一部分黑软是通过ShowWindowAsync()函数启动一个新的线程来显示一个新窗口的。该函数的原形为:

  

  BOOL ShowWindowAsync(HWND hWnd,int nCmdShow);

  而黑软正是钻了该函数的第二个参数可以设置窗体显示状态的空子,在设置成SW_HIDE时就可以使目标窗体(黑软)从任务列表中隐藏。

  四、小结

  以上就是Win9x/2000下的黑客程序所具备的一些基本功能,在此基础上我们可以借助于其实现技巧来编写出一些诸如后台监控之类的实用程序。并且可以通过对黑客类软件的隐藏机理的分析能使广大用户对此类黑软采取一些必要的措施,通过加强防范来使自己的损失防患于未然。

 

上下文章:

 

上一篇文章: VC下显示JPEG、GIF图像的简便方法 下一篇文章: 使用Visual C++编程取得CPU信息

相关文章:

  • 评论:防御能否走在病毒木马前面
  • Vista组策略编辑器隐藏和限制分区
  • 金山软件7.28毒报:匿名下载器下载木马
  • 毒霸:木马武装模块加载木马
  • 创建隐藏IP地址的最后一项的函数

相关软件:

  • 木马分析专家个人防火墙 2008 0814
  • 木马防御专家 2.0
  • 木马克星(iparmor) 2008 0808
  • 木马分析专家 2008 9.93 Build 0811
  • 关闭有害木马端口程序
  • HideDir 隐藏文件夹 2.40

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • VC++之Button控件
  • VC++之Static Box控件
  • VC++之Edit Box控件
  • VC++之Static Box控件
  • VC++之Edit Box控件
  • VC++之Scroll Bar
  • VC++之Scroll Bar
  • VC++之List Box/Check List Box控...
  • VC++ Combo Box/Combo Box Ex控件
  • VC++ List Ctrl控件

VC教程阅读排行

  • VC++之List Box/Check List Box控...
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • VC++之Button控件
  • VC++之Tab Ctrl控件
  • VC++之Edit Box控件
  • VC++之Edit Box控件
  • VC遍历整个目录树查找文件
  • VC++之Scroll Bar
  • 深入编程:控制面板知多少?

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • 第二章 PowerBuilder 入门之创建新...
  • VC++之List Box/Check List Box控...
  • 第一章 什么是PowerBuilder
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有