优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

Windows下盗取帐号密码的木马程序的设计

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
摘? 要 随着互联网技术的迅猛发展,网络给人们带来了很多便利,日益发达的网络产品越来越多。伴随这样的发展,随之而来的是越来越多的帐号与密码,而这些帐号与密码背后伴随的是很多的经济价值。在这种状况下,很多人想尽一切办法的去找取配套的密码与帐号,所以为了使帐号与密码更加安全,有必要去研究盗号木马的工作原理。 文章从木马的发展历史出发,介绍了木马的特点和工作原理,详细分析并设计实现了一个基于windows操作系统的盗号木马软件。在具体设计实现中,首先对本软件具有的功能和特点进行了分析,将系统划分为自动隐藏、自动运行、记录键盘三大主要模块,并选择了合适的开发环境;其次根据软件工程的要求做了逻辑设计;最后是编码实现和测试,并且对测试结果进行了分析。 关键词:自动隐藏;自动运行;记录键盘 3.1.2 具体功能划分 根据设计功能需求分析,该设计主要划分为三个模块,最终的设计为这个三个模块的有机组合完成。 1.自动隐藏模块 该模块是保证整个木马程序能顺利运行的关键所在。就想前面介绍的一样,如突然跳一个不明的程序出来运行,那么程序将无条件的失去意义。所以,在木马程序运行期间,都应该保证,程序是隐藏起来的。这样我们才有机会去做我们想做的事情。 2.自动运行模块 一个好的木马绝对不可能奢望对方来点击运行,也不能只执行一次,然后随着系统的关机而不再运行,这样的只发作一次的木马是没有什么作用的。木马往往具有自动运行性,也就是说要么随机子的启动运行而发作,要么等某个条件来触发,而这个触发条件应该是很常用的。不管怎么做,我们最终所必须要实现的就是,不能使木马程序只运行一次,只运行一次就失去了我们的目的,进行键盘记录盗取帐号与密码。所以,考虑好这个模块是很关键的,它是我们有没有必要进行其他模块编写的理由。 3.键盘记录模块 这个模块是整个程序的核心与基础所在,我们所要获取的所有信息都是由这个模块完成。所以在进行这个模块的设计时我们应考虑的更加严谨,应该尽量减少BUG的存在。 在设计这个模块时, HOOK函数是一个很不错的想法。其实除此之外,还有一API函数,同样可以轻松进行键盘记录,那就是GetAsyncKeyState,这个函数根据虚拟键表判断按键类型。返回值为一个16位的二进制数,如果被按下则最高位为1,即返回-32767,但是如果需要对键盘进行全局性的记录,则需要与另一个API函数GetKeyState配合使用才能实现。原因在于GetAsyncKeyState函数只在按键的瞬间执行一次,如果按下的键是开关键(如:caps lock),那么过了那一瞬间GetAsyncKeyState函数则不起任何作用。而这个时候就需要用GetKeyState来判断该开关键是否按下。 另外,使用一个功能强大的SendMessage函数,在其它API函数的配合下,直接抓取玩家输入的游戏帐号和密码。 但是,HOOK函数的隐藏性不是很好,他很容易就被杀毒软件发现,特别是专杀工具。而SendMessage函数这个方法实现难度很大,在Win9X下运行虽然没问题,但是现在大家使用的操作系统都是WinNT/2000以上的,在这些系统当中禁止不同的进程间相互访问数据,如果要用SendMessage函数实现键盘记录则需要用到其它API创建一个数据共享或者编写一个DLL文件实现数据共享才行。这样的话无形中给设计带了很多逻辑上的问题。最后,GetAsyncKeyState函数虽然代码上会带来一点冗长,但是它不存在隐藏性,与逻辑上的问题。