当前位置: 代码网 > 服务器>网络安全>企业安全 > VC 下黑客软件隐蔽程序的手段

VC 下黑客软件隐蔽程序的手段

2008年10月08日 企业安全 我要评论
VC 下黑客软件隐蔽程序的手段 一、引言 随着计算机网络的不断发展,黑客技术也日益成为一支不可忽视的技术力量,尽管多数黑客的攻击目标以服务器为主,对大多数的互连网用户的直接危害并不大。但有一类称为&quo... 08-10-08
一、引言 随着计算机网络的不断发展,黑客技术也日益成为一支不可忽视的技术力量,尽管多数黑客的攻击目标以服务器为主,对大多数的互连网用户的直接危害并不大。但有一类称为"特洛伊木马"的黑客程序可以通过欺骗等手段在普通网络用户端安装木马的服务端,使用户的计算机在上网时留有后门,而黑客则可以通过这个后门对被感染的计算机随心所欲地进行监视、破坏。显然这种黑软对于普通网络用户的危害是非常严重的。 此类黑软仍然属于应用程序,其本质是基于套接字的网络通讯程序。因此黑客能成功攻击被感染计算机的一个非常必要的先决条件就是此时被攻击方已经有木马程序的服务端在运行。由于木马程序是一种恶意程序,能在被攻击者没有察觉的情况下悄悄启动运行为攻击者打开后门,故显然不能象其他程序一样堂而皇之的显示在任务栏和任务列表中,否则会立即为用户所察觉而将其关闭,也就失去了为攻击者提供后门的作用。本文下面就针对其隐藏程序的机理展开讨论。 二、程序在任务栏中的隐藏原理 程序在任务栏的隐藏比较简单,首先要保证程序主界面的隐藏,一般是通过修改应用程序类的初始化实例函数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中,一般每个应用程序都要通过一个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下的黑客程序所具备的一些基本功能,在此基础上我们可以借助于其实现技巧来编写出一些诸如后台监控之类的实用程序。并且可以通过对黑客类软件的隐藏机理的分析能使广大用户对此类黑软采取一些必要的措施,通过加强防范来使自己的损失防患于未然。
(0)

相关文章:

  • 破解数据库下载漏洞

    破解数据库下载漏洞

    破解数据库下载漏洞 作为脚本漏洞的头号杀手锏——数据库下载漏洞,现在已经被越来越多的人所熟知。在这个信息化技术更新飞快的时代,漏洞产生... [阅读全文]
  • 黑客如何破坏杀毒软件

    黑客如何破坏杀毒软件

    黑客如何破坏杀毒软件 最近有调查报告显示,知名品牌的杀毒软件对新型计算机病毒的查杀率只有20%,而漏杀率却高达80%。那么是什么原因造成这种状况的?到底是如今... [阅读全文]
  • 看黑客怎样汇编创建简单的窗口

    看黑客怎样汇编创建简单的窗口

    看黑客怎样汇编创建简单的窗口 理论: Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows Gui 函数。其实这对用户和程序员来说都有... [阅读全文]
  • UPDATE注射的两个基本模式

    UPDATE注射的两个基本模式

    UPDATE注射的两个基本模式 一.测试环境: OS: Windowsxp sp2 php: php 4.3.10 ( mysql 4.1.9 apache ... [阅读全文]
  • 新的挂马方式-ARP欺骗

    新的挂马方式-ARP欺骗

    新的挂马方式-ARP欺骗 网页挂马最难的就是传播了,小网站易入侵但是访问人数不多,收获的肉鸡也就不是很多。因此,一种新的挂马方式开始流行——局域网ARP欺骗挂... [阅读全文]
  • 菜鸟拿WebShell的经验

    菜鸟拿WebShell的经验

    菜鸟拿WebShell的经验 通过几次成功的拿Webshell,发现自己有时也走了一些弯路,为了避免其他的朋友再在困惑中迷失方向,现在我将自己的一些经验写出来... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com