Windows下盗取帐号密码的木马程序的设计(VB)
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
目  录
论文总页数:25页
1 引言 1
1.1课题背景 1
1.2 木马发展史 1
1.2.1 第一代木马:伪装型木马 1
1.2.2 第二代木马:AIDS型木马 2
1.2.3 第三代木马:网络传播性木马 2
1.3 本课题研究的意义 2
2 需求分析 3
2.1 木马的分类 3
2.2 木马的特点 4
2.2.1隐秘性 4
2.2.2 自动运行性 4
2.3 功能需求分析 4
2.3.1 自动隐藏 4
2.3.2 自动运行 5
2.3.3 键盘记录 5
2.4 性能需求 6
2.5 程序开发环境介绍 6
3 木马程序的设计与实现 7
3.1 设计 7
3.1.1 设计逻辑图 7
3.1.2 具体功能划分 7
3.2 实现 8
3.2.1 键盘记录模块的实现 8
3.2.2 自动运行模块的实现 12
3.2.3 自动隐藏模块的实现 14
4 程序测试 15
4.1 测试环境 15
4.2 测试截图及其说明 15
4.3 测试结果 17
结    论 18
参考文献 19
附    录 20
致    谢 24 [资料来源:http://www.THINK58.com]
声    明 25 [资料来源:http://think58.com]
3.1.2 具体功能划分
根据设计功能需求分析,该设计主要划分为三个模块,最终的设计为这个三个模块的有机组合完成。
1.自动隐藏模块
该模块是保证整个木马程序能顺利运行的关键所在。就想前面介绍的一样,如突然跳一个不明的程序出来运行,那么程序将无条件的失去意义。所以,在木马程序运行期间,都应该保证,程序是隐藏起来的。这样我们才有机会去做我们想做的事情。
2.自动运行模块
一个好的木马绝对不可能奢望对方来点击运行,也不能只执行一次,然后随着系统的关机而不再运行,这样的只发作一次的木马是没有什么作用的。木马往往具有自动运行性,也就是说要么随机子的启动运行而发作,要么等某个条件来触发,而这个触发条件应该是很常用的。不管怎么做,我们最终所必须要实现的就是,不能使木马程序只运行一次,只运行一次就失去了我们的目的,进行键盘记录盗取帐号与密码。所以,考虑好这个模块是很关键的,它是我们有没有必要进行其他模块编写的理由。
3.键盘记录模块
这个模块是整个程序的核心与基础所在,我们所要获取的所有信息都是由这个模块完成。所以在进行这个模块的设计时我们应考虑的更加严谨,应该尽量减少BUG的存在。
在设计这个模块时, HOOK函数是一个很不错的想法。其实除此之外,还有一API函数,同样可以轻松进行键盘记录,那就是GetAsyncKeyState,这个函数根据虚拟键表判断按键类型。返回值为一个16位的二进制数,如果被按下则最高位为1,即返回-32767,但是如果需要对键盘进行全局性的记录,则需要与另一个API函数GetKeyState配合使用才能实现。原因在于GetAsyncKeyState函数只在按键的瞬间执行一次,如果按下的键是开关键(如:caps lock),那么过了那一瞬间GetAsyncKeyState函数则不起任何作用。而这个时候就需要用GetKeyState来判断该开关键是否按下。 [来源:http://www.think58.com]
另外,使用一个功能强大的SendMessage函数,在其它API函数的配合下,直接抓取玩家输入的游戏帐号和密码。
但是,HOOK函数的隐藏性不是很好,他很容易就被杀毒软件发现,特别是专杀工具。而SendMessage函数这个方法实现难度很大,在Win9X下运行虽然没问题,但是现在大家使用的操作系统都是WinNT/2000以上的,在这些系统当中禁止不同的进程间相互访问数据,如果要用SendMessage函数实现键盘记录则需要用到其它API创建一个数据共享或者编写一个DLL文件实现数据共享才行。这样的话无形中给设计带了很多逻辑上的问题。最后,GetAsyncKeyState函数虽然代码上会带来一点冗长,但是它不存在隐藏性,与逻辑上的问题。 [版权所有:http://think58.com]
预览图: