CN101382904B - 一种智能密钥设备实现自动安装的方法和系统 - Google Patents
一种智能密钥设备实现自动安装的方法和系统 Download PDFInfo
- Publication number
- CN101382904B CN101382904B CN200810223248.9A CN200810223248A CN101382904B CN 101382904 B CN101382904 B CN 101382904B CN 200810223248 A CN200810223248 A CN 200810223248A CN 101382904 B CN101382904 B CN 101382904B
- Authority
- CN
- China
- Prior art keywords
- equipment
- cipher key
- intelligent cipher
- key equipment
- keyboard
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
- G06F9/4413—Plug-and-play [PnP]
Abstract
本发明公开了一种智能密钥设备实现自动安装的方法和系统,属于智能卡领域。方法包括:智能密钥设备与计算机建立连接;智能密钥设备向计算机声明自身为含有USB键盘设备的复合设备;向计算机发送预先定义的第一键盘消息序列,第一键盘消息序列用于启动计算机的运行环境;当启动运行环境后,将预先存储的运行安装程序的脚本指令转换为第二键盘消息序列,并将第二键盘消息序列发送给计算机;向计算机发送预先定义的第三键盘消息序列,第三键盘消息序列用于运行安装程序。系统包括:智能密钥设备和计算机。本发明通过智能密钥设备和计算机交互,解决了在Windows的autorun功能被屏蔽时,智能密钥设备不能实现自动安装的问题,为智能密钥设备实现自动安装提供方便。
Description
技术领域
本发明涉及智能卡领域,特别涉及一种智能密钥设备实现自动安装的方法和系统。
背景技术
.bat是一种批处理文件(也被称为批处理程序或脚本),它是无格式的文本文件,它包含一条或多条命令。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe,按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件,可以简化日常或重复性任务。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何32位的Windows程序都可以放在批处理文件中运行,
自动运行功能(autorun)是USB(Universal Serial BUS,通用串行总线)-SCSI(Small Computer Standard Interface,小型计算机系统接口)所自带的一个功能,它使得对光盘的操作变得更加容易。一般习惯上称这种自动运行程序为autorun程序。所以当含有autorun程序的设备连接到计算机上时,计算机的操作系统如Windows会自动调用自动运行程序,实现自动运行功能。
随着计算机技术和互联网技术的高速发展,网络在日常的生活、工作、学习等方面提供了很大的方便,所以使得很多的活动转移到了网络上来进行。
然而,病毒(如autorun病毒)、黑客的出现,对网上的各种活动造成很大的威胁,而计算机操作系统所支持的自动运行功能的存在,无疑给这些威胁制造了一定的机会,甚至成为黑客的帮凶,因此,很多用户或是Windows安全防护程序出于安全等考虑,经常屏蔽Windows操作系统的autorun功能,但是,发明人在实现本发明时发现,当屏蔽Windows操作系统的autorun功能后,会使得一些设备的运行出现了问题,例如autorun类型的智能密钥设备无法实现自动安装,需要人员进行手动安装,耗费时间和人力,造成不必要的浪费。
发明内容
为解决现有技术中,由于当操作系统的autorun功能被屏蔽时,autorun型智能密钥设备不能实现自动安装的问题,本发明提供了一种智能密钥设备实现自动安装的方法和系统,具体方案如下:
一方面,提供了一种智能密钥设备实现自动安装的方法,所述方法包括:
智能密钥设备与计算机建立连接;
所述智能密钥设备向所述计算机声明自身为含有USB键盘设备的复合设备;
所述智能密钥设备向所述计算机发送预先定义的第一键盘消息序列,所述第一键盘消息序列用于启动所述计算机的运行环境;
当启动所述运行环境后,所述智能密钥设备将预先存储的运行安装程序的脚本指令转换为第二键盘消息序列,并将所述第二键盘消息序列发送给所述计算机;
所述智能密钥设备向所述计算机发送预先定义的第三键盘消息序列,所述第三键盘消息序列用于运行安装程序。
其中,当安装程序运行完毕,执行应用程序时,所述方法还包括:
所述计算机向所述智能密钥设备发送设备类型切换指令;
所述智能密钥设备收到所述设备类型切换指令后,将自身设备描述符切换为正常工作所需的设备描述符;
所述智能密钥设备向所述计算机报告正常工作所需的设备插入消息,声明自身为与所述正常工作所需的设备插入消息对应的设备,进入正常的工作模式。
上述,所述含有USB键盘设备的复合设备,具体包括:
USB键盘设备和光盘设备;或,
USB键盘设备和USB mass storage设备;或,
USB键盘设备和智能密钥设备。所述智能密钥设备,具体包括:
USB智能密钥设备;或,HID(Human Interface Device,人机交互设备)智能密钥设备;或,SCSI智能密钥设备;或,CCID(Chip/Smart Card Interface Devices,芯片智能卡接口设备)智能密钥设备。
其中,所述设备类型切换指令是事先约定的所述复合设备能够接收的指令,其中,当所述USB键盘设备的复合设备为USB键盘设备和光盘设备时,所述设备类型切换指令是光盘弹出指令;
当所述USB键盘设备的复合设备为USB键盘设备和智能密钥设备的复合设备时,所述设备类型切换指令为设置键盘灯状态指令。
其中,所述预先定义的第一键盘消息序列,具体包括:
将尝试启动命令行操作模式指令转换得到的键盘消息序列;或,
将启动批处理运行环境指令转换得到的键盘消息序列。
其中,所述预先存储的运行安装程序的脚本指令,具体包括:
尝试运行安装程序的命令行指令;或,
尝试运行安装程序的批处理脚本;或,
安装程序编译生成的二进制编码;或,
用于打开浏览器,访问URL的命令行指令。
其中,当所述预先存储的运行安装程序的脚本指令具体为尝试运行安装程序的命令行指令时,
所述智能密钥设备向所述计算机声明自身为含有USB键盘设备的复合设备之后,还包括:
智能密钥设备判断所述安装程序是否通过自动运行程序autorun运行完毕,如果是,则所述计算机向所述智能密钥设备发送设备类型切换指令,所述智能密钥设备收到所述设备类型切换指令后,将自身设备描述符切换为正常工作所需的设备描述符;所述智能密钥设备向所述计算机报告正常工作所需的设备插入消息,声明自身为与所述正常工作所需的设备插入消息对应的设备,进入正常的工作模式;
否则,执行后续所述智能密钥设备向所述计算机发送预先定义的第一键盘消息序列的步骤。
其中,所述预先定义的第三键盘消息序列,具体为将尝试激活所述安装程序的脚文转换得到的键盘消息序列;具体包括:
将确认键命令转换得到的键盘消息序列;或,
将所述尝试激活所述安装程序的脚本存储在所述计算机中,并运行所述安装程序的命令转换得到的键盘消息序列。
另一方面,提供了一种实现自动安装的系统,所述系统包括:智能密钥设备和计算机;
所述智能密钥设备包括:通信模块、声明模块、保存模块和发送模块,
所述通信模块,用于实现所述智能密钥设备与计算机连接的建立;
所述声明模块,用于实现所述智能密钥设备向所述计算机声明自身为含有USB键盘设备的复合设备;
所述保存模块,用于预先存储运行安装程序的脚本指令;
所述发送模块,用于实现所述智能密钥设备向所述计算机发送预先定义的第一键盘消息序列,所述第一键盘消息序列用于启动所述计算机的运行环境;还用于当启动所述运行环境后,所述智能密钥设备将所述保存模块预先存储的运行安装程序的脚本指令转换为第二键盘消息序列,并将所述第二键盘消息序列发送给所述计算机;还用于实现所述智能密钥设备向所述计算机发送预先定义的第三键盘消息序列,所述第三键盘消息序列用于运行安装程序。
所述计算机包括:通信模块,接收模块,处理模块;
所述计算机的通信模块,用于实现所述计算机和所述智能密钥设备连接的建立;
所述接收模块,用于接收所述智能密钥设备的发送模块发送的第一键盘消息序列、第二键盘消息序列和第三键盘消息序列;
所述处理模块,用于根据所述接收模块接收到的键盘消息序列,执行相应的处理动作。
其中,所述保存模块具体用于保存尝试运行安装程序的命令行指令;或,保存尝试运行安装程序的批处理脚本;或,保存安装程序编译生成的二进制编码;或,保存用于打开浏览器,访问URL的命令行指令。
其中,当所述保存模块保存尝试运行安装程序的命令行指令时,所述智能密钥设备还包括:
判断模块,用于判断安装程序是否运行安装完毕。
其中,所述判断模块具体用于判断所述安装程序是否为通过自动运行程序autorun运行完毕,如果在所述发送模块发送第一键盘消息序列之前,在第一预设的时间内收到第一预设的安装完毕的消息,则表示所述安装程序为通过自动运行程序autorun运行完毕;还用于判断所述安装程序是否为通过键盘消息序列运行完毕,如果在所述发送模块发送第一键盘消息序列之后,在第二预设的时间内收到第二预设的安装完毕的消息,则表示所述安装程序是通过键盘消息序列运行完毕。
进一步地,所述智能密钥设备还包括:
切换模块,用于当所述安装程序运行完毕后,当运行应用程序时,收到所述计算机发送的设备类型切换指令后,将所述智能密钥设备的设备描述符切换为正常工作所需要的设备描述符;
报告模块,用于向所述计算机报告正常工作所需的设备插入消息,并向所述计算机声明自身为与所述正常工作所需的设备插入消息对应的设备。
本发明实施例提供的技术方案的有益效果是:
通过本发明提供的智能密钥设备和计算机的交互,解决了在Windows的autorun功能被屏蔽时,智能密钥设备不能实现自动安装的问题,为智能密钥设备实现自动安装提供方便。
附图说明
图1是本发明实施例1提供的一种智能密钥设备实现自动安装的方法流程示意图;
图2是本发明实施例2提供的一种智能密钥设备实现自动安装的方法流程示意图;
图3是本发明实施例3提供的一种智能密钥设备实现自动安装的方法流程示意图。
图4是本发明实施例4提供的一种智能密钥设备实现自动安装的方法流程示意图;
图5是本发明实施例5提供的一种智能密钥设备实现自动安装的方法流程示意图;
图6是本发明实施例6提供的一种智能密钥设备实现自动安装的系统示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在以下实施例中,将键盘上的确定键(即回车键)用“enter”表示,windows徽标键用“windows”表示,其中,任意两个键同时按下的组合键,如“A”键、“B”键同时触发,用A+B表示。
本领域技术人员可以获知:一个完整的键盘消息序列是由三个消息码组成的序列,其中,上述消息码分别为:接通码,按键扫描码和释放码;
例如,当组合键(如A+B)被按下时,对应的键盘消息是:接通码-接通码-按键A扫描码-按键B扫描码-释放码-释放码。
在以下实施例中,将脚本转换为键盘消息序列的方法具体是:
步骤1:将脚本中的字符映射为相应的扫描码;
步骤2:如果要转换的是单独的按键,则在扫描码前后分别加上接通码和释放码;如果要转换的是组合键,则在扫描码序列前后分别加上相应数目的接通码和释放码;
步骤3:如果还有要转换的按键,执行步骤2;否则,转换完成。
实施例1
为了解决现有技术中,由于当操作系统的autorun功能被屏蔽时,autorun型智能密钥设备不能实现自动安装的问题,本发明提供了一种智能密钥设备实现自动安装的方法,参见图1,该方法内容如下:
步骤101:智能密钥设备与计算机建立连接;
步骤102:智能密钥设备向计算机声明自身为含有USB键盘设备的复合设备;
其中,在实际应用时,上述含有USB键盘设备的复合设备具体是:
USB键盘设备和光盘设备;或,
USB键盘设备和USB海量存储USB mass storage设备;或,
USB键盘设备和智能密钥设备。
此处,特别需要注意的是,当上述含有USB键盘设备的复合设备是USB键盘设备和智能密钥设备时,该智能密钥设备与计算机之间的通信协议可以采用现有的基于USB的通信协议,如HID、SCSI、CCID等,还可以采用自定义的USB通信协议;因此,相应地,该智能密钥设备可以为HID设备、SCSI设备、CCID设备或自定义的USB设备。
步骤103:智能密钥设备向计算机发送预先定义的第一键盘消息序列,启动运行环境;
其中,该预先定义的第一键盘消息序列具体可以为:尝试启动命令行操作模式指令转换得到的键盘消息序列;或,启动批处理运行环境指令转换得到的键盘消息序列。
步骤104:当启动了运行环境后,智能密钥设备将预先存储的运行安装程序的脚本指令转换为第二键盘消息序列,并发送给计算机;
其中,上述脚本指令具体可以为:尝试运行安装程序的命令行指令;或,尝试运行安装程序的批处理脚本;或,安装程序编译生成的二进制编码;或,用于打开浏览器,访问URL的命令行指令。
步骤105:智能密钥设备向计算机发送预先定义的第三键盘消息序列,运行安装程序。
其中,上述第三键盘消息序列具体可以为:“enter”命令转换成的键盘消息序列;或,把上述脚本存储在计算机中并运行安装程序的命令转换得到的键盘消息序列。
进一步地,当上述安装程序运行完毕,运行应用程序时,所述步骤105之后,还包括:
步骤106:计算机向智能密钥设备发送类型切换指令;
该设备类型切换指令是事先约定的上述复合设备能够接收的指令。如,对USB键盘设备和光盘设备的复合设备,优选地,所述类型切换指令是光盘弹出指令;对USB键盘设备和智能密钥设备的复合设备,优选地,所述类型切换指令是设置键盘灯状态指令,等等。
步骤107:智能密钥设备接收到类型切换指令后,将自身设备描述符切换成正常工作所需的设备描述符,向计算机报告正常工作所需的设备插入的消息,声明自身为相应的设备,进入正常的工作模式。
其中,上述正常工作所需的设备包括HID设备、CCID设备或SCSI设备。
特别需要注意的是,当在步骤104中涉及的第二键盘消息序列为将预先存储的尝试运行安装程序的命令行指令转换得到的第二键盘消息序列时,本发明实施例提供的方法,在步骤102之后,在步骤103之前还包括:
判断安装程序是否通过autorun运行完毕,如果智能密钥设备在预设时间内,接收到预设的安装完毕的消息,说明所述安装程序可以通过autorun运行完毕,则执行步骤106;否则,执行步骤103。
综上,通过本发明实施例提供的方法,通过智能密钥设备和计算机的交互,解决了在Windows的autorun功能被屏蔽时,智能密钥设备不能实现自动安装的问题,为智能密钥设备实现自动安装提供方便。
为了对本发明实施例提供的方法进行详细说明,请参见如下实施例。
实施例2
参见图2,本发明实施例提供了一种智能密钥设备实现自动安装的方法,本实施例以在智能密钥设备作为复合设备,具体为USB键盘设备和光盘设备为例,并且以在该智能密钥设备中存储的脚本为尝试运行安装程序的命令行指令为例进行说明,由于本实施例是以复合设备,具体为USB键盘设备和光盘设备,则在该智能密钥设备中还保存有ISO格式的光盘镜像,其中,该光盘镜像内部含有autorun所需的autorun.inf和安装程序。当安装程序运行完毕后,安装程序将向智能密钥设备USB Key发出预先约定的安装完毕的消息。优选地,本实施例中,所述消息是弹出光盘的指令。
该方法内容如下:
步骤201、智能密钥设备USB Key连接到计算机上;
步骤202、智能密钥设备USB Key向计算机声明自身为含有USB键盘设备的复合设备;
如前所述,本实施例中以该复合设备为光盘设备和USB键盘设备为例进行的说明。
步骤203、智能密钥设备USB Key等待接收弹出光盘的指令;若在预先约定的时间内接收到指令,则说明安装程序通过autorun运行完毕,执行步骤211,否则执行步骤204;
为了便于说明,本实施例中,以上述预先约定的时间为30秒为例;
步骤204、智能密钥设备USB Key向计算机发送第一键盘消息序列,启动命令行操作模式;
其中,该第一键盘消息序列具体为:
//打开计算机操作系统中的“运行”窗口
“windows”+r
//启动命令行操作模式
cmd
“enter”
步骤205、智能密钥设备USB Key设定当前盘符为C;
步骤206、智能密钥设备USB Key将保存的脚本指令转换成第二键盘消息序列,如果操作指令中的盘符与当前盘符不一致,则用当前盘符替换操作指令中的盘符,将转换后的第二键盘消息序列发送到计算机;
其中,智能密钥设备USB Key保存的脚本是尝试运行安装程序的命令行指令,该命令行指令参考如下:
C:\GUID\setup.exe/l
其中,GUID是事先约定的目录名,setup.exe是事先约定的安装程序名,1是预先约定的参数,用于标识尝试运行的安装程序。实际应用中,也可以使用其中的一部分做为标识。优选地,本实施例中,采用目录名+安装程序名+参数的方式。
步骤207、智能密钥设备USB Key发送“enter”的键盘消息序列给计算机(这里称该键盘消息序列为第三键盘消息序列),尝试启动安装程序,等待弹出光盘的指令。如果在预先约定的时间内接收到指令,则执行步骤211;否则,执行步骤208;
为了便于说明,本实施例中,以上述预先约定的时间为30秒为例;
步骤208、智能密钥设备USB Key判断当前盘符是否为Z,如果是,则执行步骤210;否则,执行步骤209;
步骤209、智能密钥设备USB Key使当前盘符递增,执行步骤206;
步骤210、智能密钥设备USB Key的安装程序不能运行完毕,结束操作;
步骤211、安装程序安装完成后,智能密钥设备USB Key接收到弹出光盘的指令后,将自身的设备描述符切换为正常工作所需的设备描述符(如HID设备描述符),再向计算机报告设备插入的消息,声明自身为相应的设备,进入正常工作模式。
综上,通过本发明实施例提供的方法,通过智能密钥设备和计算机的交互,解决了在Windows的autorun功能被屏蔽时,智能密钥设备不能实现自动安装的问题,为智能密钥设备实现自动安装提供方便。
实施例3
参见图3,本发明实施例提供了一种智能密钥设备实现自动安装的方法,本实施例以在智能密钥设备作为复合设备,具体为USB键盘设备和USB mass storage设备为例,并且以在该智能密钥设备中存储的脚本为尝试运行安装程序的批处理脚本为例进行说明,该方法内容如下:
步骤301、智能密钥设备USB Key连接到计算机上;
步骤302、智能密钥设备USB Key向计算机声明自身为含有USB键盘设备的复合设备;
本实施例中,该复合设备为USB键盘设备和USB mass storage设备。
步骤303、智能密钥设备USB Key向计算机发送第一键盘消息序列,启动批处理运行环境;
其中,该第一键盘消息序列具体为:
//打开运行窗口
“windows”+r
//启动命令行操作模式
cmd
“enter”
//到当前驱动器的根目录下,避免可能的权限控制
//也可以是cd c:\
∥不过这样可以避免没有C盘造成的问题
Cd V/
“enter”
echo
步骤304、智能密钥设备USB Key将存储的脚本(包括其中的换行符)转换成第二键盘消息序列,发送到计算机。
其中,在智能密钥设备USB Key中存在遍历驱动器,尝试运行安装程序的批处理脚本以及安装程序,其中,上述存储的尝试运行安装程序的批处理脚本具体内容参考如下:
@echo off
setlocal enabledelayedexpansion
wmic logicaldisk get name,DriveType|more+1>>temp.txt
for/f"tokens=1,2"%%a in(temp.txt)do if exist%%b\GUID\setup.exe start%%b\GUID\setup.exe/l
del temp.txt
其中,GUID是事先约定的目录名,setup.exe是事先约定的安装程序名,1是预先约定的参数,用于标识尝试运行的安装程序。在实际应用中,也可以使用其中的一部分做为标识。优选地,本实施例中,采用目录名+安装程序名+参数。特别需要注意的是,在将脚本存入USB Key时,其中的换行符也一并存入。
步骤305、智能密钥设备USB Key将下列命令转换成第三键盘消息序列,并发送到计算机,安装程序在计算机开始运行。
其中,该第三键盘消息序列具体是:
//将脚本保存在当前目录
>setup.bat
“enter”
//运行安装脚本
setup.bat
“enter”
步骤306、智能密钥设备USB Key等待预先约定的安装程序安装完毕的消息;如果接收到,则执行步骤307,否则,继续等待。
步骤307、安装程序安装完成后,智能密钥设备USB Key接收到SCSI移除指令,将自身的设备描述符进行切换,切换为正常工作模式的设备描述符(如HID设备描述符),再向计算机报告正常工作所需的设备插入的消息,声明自身为正常工作模式的设备(如HID设备),进入正常工作模式。
综上,通过本发明实施例提供的方法,通过智能密钥设备和计算机的交互,解决了在Windows的autorun功能被屏蔽时,智能密钥设备不能实现自动安装的问题,为智能密钥设备实现自动安装提供方便。
实施例4
参见图4,本发明实施例提供了一种智能密钥设备实现自动安装的方法,本实施例以在智能密钥设备作为复合设备,具体为USB键盘设备和一种HID智能密钥设备为例,并且以在该智能密钥设备中存储的脚本为安装程序编译生成的二进制代码编码为例进行说明,该方法内容如下:
步骤401、智能密钥设备USB Key连接到计算机上;
步骤402、智能密钥设备USB Key向计算机声明自身为含有USB键盘设备的复合设备;
其中,本实施例中,该复合设备为USB键盘设备和HID智能密钥设备。本领域技术人员可以获知,由于该智能密钥设备与计算机之间的通信协议可以采用现有的基于USB的通信协议,如HID、SCSI、CCID等,也可以使用自定义的USB通信协议。相应地,智能密钥设备可以被报告为HID设备、SCSI设备、CCID设备或USB设备。优选地,在本实施例中,智能密钥设备被报告为HID设备,即该复合设备具体为USB键盘设备和HID智能密钥设备。
步骤403、智能密钥设备USB Key向计算机发送第一键盘消息序列,启动命令行操作模式;
本实施例中,将键盘上的回车键用“enter”表示,该第一键盘消息序列具体为:
//打开“运行”窗口
“windows”+r
//启动命令行操作模式
cmd
“enter”
步骤404、智能密钥设备USB Key将存储的脚本(包括其中的换行符)转换成第二键盘消息序列,发送到计算机;
其中,在USB Key中保存的脚文为安装程序编译生成的二进制代码编码。本实施例中,安装程序为setup.exe,可以用以下VBscript脚本得到安装程序setup.exe的二进制代码编码,内容参考如下:
fp=wscript.arguments(0)
fn=right(fp,len(fp)-instrrev(fp,"\"))
with createobject("adodb.stream")
.type=1:.open:.loadfromfile fp:str=.read:sl=lenb(str)
end with
sll=sl mod 65536:slh=sl\65536
with createobject("scripting.filesystemobject").opentextfile(fp&".bat",2,true)
.write"echo str="""
for i=1 to sl
bt=ascb(midb(str,i,1))
ifbt<16then.write"0"
.write hex(bt)
ifi mod 128=0 then.write"""_>>debug.vbs"+vbcrlf+"echo+"""
next
.writeline""">>debug.vbs"+vbcrlf+"echo with wscript.stdout:r=vbcrlf"_
+":for i=1to len(str)step 48:.write""e""+hex(256+(i-1)/2)"_
+":forj=i to i+46 step 2:.write""""+mid(str,j,2):next:.write r:next>>debug.vbs"
.writeline"echo.write""rbx""+r+"""+hex(slh)+"""+r+""rcx""+r+"""+hex(sll)_
+"""+r+""n debug.tmp""+r+""w""+r+""q""+r:end with"_
+">>debug.vbs&&cscript//nologo debug.vbs|debug.exe>nul&&ren debug.tmp
"""&fn&"""&del debug.vbs"
end with
将上述代码保存为.vbs结尾的脚本文件(如transfer.vbs)
相应地,采用命令行方式运行此脚本:
cscript transfer.vbs setup.exe
运行结束后便可在名为seup.exe.bat的新建文件中得到二进制代码编码。将二进制代码编码存入智能密钥设备USB Key时,其中的换行符也一并存入。
本领域技术人员可以获知,除了利用VB脚本之外,也可以直接启动debug.exe,输入安装文件的机器码,利用参数A得到二进制代码编码。
步骤405、智能密钥设备USB Key发送“enter”的键盘消息序列给计算机(这里称该键盘消息序列为第三键盘消息序列),安装程序在计算机开始运行;
步骤406、智能密钥设备USB Key等待安装完毕的消息;如果接收到,则执行步骤407,否则,继续等待。
步骤407、安装完成,直接进入正常的工作模式。
综上,通过本发明实施例提供的方法,通过智能密钥设备和计算机的交互,解决了在Windows的autorun功能被屏蔽时,智能密钥设备不能实现自动安装的问题,为智能密钥设备实现自动安装提供方便。
实施例5
参见图5,本发明实施例提供了一种智能密钥设备实现自动安装的方法,本实施例以在智能密钥设备作为复合设备,具体为USB键盘设备和一种USB智能密钥设备为例,并且以在该智能密钥设备中存储的脚本为打开浏览器,访问URL的命令行指令为例进行说明,该方法内容如下:
步骤501、智能密钥设备USB Key连接到计算机上;
步骤502、智能密钥设备USB Key向计算机报告为含有USB键盘设备的复合设备;
本实施例中,该复合设备为USB键盘设备和USB智能密钥设备。其中,智能密钥设备与计算机之间的通信协议可以采用现有的基于USB的通信协议,如HID、SCSI、CCID等,也可以使用自定义的USB通信协议。相应地,智能密钥设备可以被报告为HID设备、SCSI设备、CCID设备或USB设备。优选地,在本实施例中,智能密钥设备被报告为USB设备为例。
步骤503、智能密钥设备USB Key向计算机发送第一键盘消息序列,启动命令行操作模式;
其中,上述第一键盘消息序列具体为:
//打开“运行”窗口
“windows”+r
//启动命令行操作模式
cmd
“enter”
步骤504、智能密钥设备USB Key将存储的脚本指令转换成第二键盘消息序列,发送到计算机;
其中,在智能密钥设备USB Key中保存的脚本是:打开浏览器,访问URL的命令行指令。该指令具体参考如下:
explorer http://www example com
其中,http://www.example.com内嵌了有自动下载并运行安装程序的控件的网页地址。网页中调用控件的具体内容是:
<object CLASSID=′clsid:4DE03A9C-D725-4514-84BA-6A7388E8FC42′CODEBASE=′files/install.cab#Version=1,00,0000′BORDER=0 VSPACE=0HSPACE=0ALIGN=TOP HEIGHT=0%WIDTH=0%></object>
其中的install.cab就是安装程序。
步骤505、智能密钥设备USB Key发送“enter”的按键消息序列给计算机(这里称该键盘消息序列为第三键盘消息序列),计算机启动浏览器访问http://www.example.com,下载安装程序并在计算机运行;
步骤506、智能密钥设备USB Key等待安装完毕的消息;如果接收到,则执行步骤507,否则,继续等待。
步骤507、安装完成,直接进入正常的工作模式。
综上,通过本发明实施例提供的方法,通过智能密钥设备和计算机的交互,解决了在Windows的autorun功能被屏蔽时,智能密钥设备不能实现自动安装的问题,为智能密钥设备实现自动安装提供方便。
实施例6
参见图6,本发明实施例提供了一种智能密钥设备实现自动安装的系统,该系统包括:智能密钥设备601和计算机602;
智能密钥设备601包括:通信模块6011、声明模块6012、保存模块6013和发送模块6014,
通信模块6011,用于实现智能密钥设备601与计算机602连接的建立;
声明模块6012,用于实现智能密钥设备601向计算机602声明自身为含有USB键盘设备的复合设备;
保存模块6013,用于预先存储运行安装程序的脚本指令;
发送模块6014,用于实现智能密钥设备601向计算机602发送预先定义的第一键盘消息序列,第一键盘消息序列用于启动计算机602的运行环境;还用于当启动运行环境后,智能密钥设备601将保存模块6013预先存储的运行安装程序的脚本指令转换为第二键盘消息序列,并将第二键盘消息序列发送给计算机602;还用于实现智能密钥设备601向计算机602发送预先定义的第三键盘消息序列,第三键盘消息序列用于运行安装程序。
计算机602包括:通信模块6021,接收模块6022,处理模块6023;
通信模块6021,用于实现计算机602和智能密钥设备601连接的建立;
接收模块6022,用于接收智能密钥设备601的发送模块6014发送的第一键盘消息序列、第二键盘消息序列和第三键盘消息序列;
处理模块6023,用于根据接收模块6022接收到的键盘消息序列,执行相应的处理动作。
其中,保存模块6013具体用于保存尝试运行安装程序的命令行指令;或,保存尝试运行安装程序的批处理脚本;或,保存安装程序编译生成的二进制编码;或,保存用于打开浏览器,访问URL的命令行指令。
当保存模块6013具体用于保存尝试运行安装程序的命令行指令时,智能密钥设备601还包括:
判断模块,用于判断安装程序是否运行安装完毕。
其中,判断模块具体用于判断安装程序是否为通过自动运行程序autorun运行完毕,如果在发送模块6014发送第一键盘消息序列之前,在第一预设的时间内收到第一预设的安装完毕的消息,则表示安装程序为通过自动运行程序autorun运行完毕;还用于判断安装程序是否为通过键盘消息序列运行完毕,如果在发送模块6014发送第一键盘消息序列之后,在第二预设的时间内收到第二预设的安装完毕的消息,则表示安装程序通过键盘消息序列运行完毕。
进一步地,智能密钥设备601还包括:
切换模块,用于当安装程序运行完毕后,当运行应用程序时,收到计算机602发送的设备类型切换指令后,将智能密钥设备601的设备描述符切换为正常工作所需要的设备描述符;
其中,具体实现时,上述设备类型切换指令是事先约定的上述复合设备能够接收的指令。如,对USB键盘设备和光盘设备的复合设备,优选地,所述类型切换指令是光盘弹出指令;对USB键盘设备和智能密钥设备的复合设备,优选地,所述类型切换指令是设置键盘灯状态指令,等等。
报告模块,用于向计算机602报告正常工作所需的设备插入消息,并向计算机602声明自身为与正常工作所需的设备插入消息对应的设备。
综上,通过本发明实施例提供的系统,通过智能密钥设备和计算机的交互,解决了在Windows的autorun功能被屏蔽时,智能密钥设备不能实现自动安装的问题,为智能密钥设备实现自动安装提供方便。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种智能密钥设备实现自动安装的方法,其特征在于,所述方法包括:
智能密钥设备与计算机建立连接;
所述智能密钥设备向所述计算机声明自身为含有USB键盘设备的复合设备;
所述智能密钥设备向所述计算机发送预先定义的第一键盘消息序列,所述第一键盘消息序列用于启动所述计算机的运行环境;
当启动所述运行环境后,所述智能密钥设备将预先存储的运行安装程序的脚本指令转换为第二键盘消息序列,并将所述第二键盘消息序列发送给所述计算机;
所述智能密钥设备向所述计算机发送预先定义的第三键盘消息序列,所述第三键盘消息序列用于运行安装程序。
2.如权利要求1所述的方法,其特征在于,当安装程序运行完毕,执行应用程序时,所述方法还包括:
所述计算机向所述智能密钥设备发送设备类型切换指令;
所述智能密钥设备收到所述设备类型切换指令后,将自身设备描述符切换为正常工作所需的设备描述符;
所述智能密钥设备向所述计算机报告正常工作所需的设备插入消息,声明自身为与所述正常工作所需的设备插入消息对应的设备,进入正常的工作模式。
3.如权利要求1所述的方法,其特征在于,所述含有USB键盘设备的复合设备,具体包括:
USB键盘设备和光盘设备;或,
USB键盘设备和USB mass storage设备;或,
USB键盘设备和智能密钥设备。
4.如权利要求3所述的方法,其特征在于,所述智能密钥设备,具体包括:
USB智能密钥设备;或,HID智能密钥设备;或,SCSI智能密钥设备;或,CCID智能密钥设备。
5.如权利要求2所述的方法,其特征在于,
所述设备类型切换指令是事先约定的所述复合设备能够接收的指令。
6.如权利要求5所述的方法,其特征在于,
当所述USB键盘设备的复合设备为USB键盘设备和光盘设备时,所述设备类型切换指令是光盘弹出指令;
当所述USB键盘设备的复合设备为USB键盘设备和智能密钥设备的复合设备时,所述设备类型切换指令为设置键盘灯状态指令。
7.如权利要求1所述的方法,其特征在于,所述预先定义的第一键盘消息序列,具体包括:
将尝试启动命令行操作模式指令转换得到的键盘消息序列;或,
将启动批处理运行环境指令转换得到的键盘消息序列。
8.如权利要求1所述的方法,其特征在于,所述预先存储的运行安装程序的脚本指令,具体包括:
尝试运行安装程序的命令行指令;或,
尝试运行安装程序的批处理脚本;或,
安装程序编译生成的二进制编码;或,
用于打开浏览器,访问URL的命令行指令。
9.如权利要求7所述的方法,其特征在于,当所述预先存储的运行安装程序的脚本指令具体为尝试运行安装程序的命令行指令时,
所述智能密钥设备向所述计算机声明自身为含有USB键盘设备的复合设备的步骤之后,还包括:
智能密钥设备判断所述安装程序是否通过自动运行程序autorun运行完毕,如果是,则所述计算机向所述智能密钥设备发送设备类型切换指令,所述智能密钥设备收到所述设备类型切换指令后,将自身设备描述符切换为正常工作所需的设备描述符;所述智能密钥设备向所述计算机报告正常工作所需的设备插入消息,声明自身为与所述正常工作所需的设备插入消息对应的设备,进入正常的工作模式;
否则,执行后续所述智能密钥设备向所述计算机发送预先定义的第一键盘消息序列的步骤。
10.如权利要求1所述的方法,其特征在于,所述预先定义的第三键盘消息序列,具体为将尝试激活所述安装程序的脚本转换得到的键盘消息序列;具体包括:
将确认键命令转换得到的键盘消息序列;或,
将所述尝试激活所述安装程序的脚本存储在所述计算机中,并运行所述安装程序的命令转换得到的键盘消息序列。
11.一种智能密钥设备实现自动安装的系统,其特征在于,所述系统包括:智能密钥设备和计算机;
所述智能密钥设备包括:通信模块、声明模块、保存模块和发送模块,
所述通信模块,用于实现所述智能密钥设备与计算机连接的建立;
所述声明模块,用于实现所述智能密钥设备向所述计算机声明自身为含有USB键盘设备的复合设备;
所述保存模块,用于预先存储运行安装程序的脚本指令;
所述发送模块,用于实现所述智能密钥设备向所述计算机发送预先定义的第一键盘消息序列,所述第一键盘消息序列用于启动所述计算机的运行环境;还用于当启动所述运行环境后,所述智能密钥设备将所述保存模块预先存储的运行安装程序的脚本指令转换为第二键盘消息序列,并将所述第二键盘消息序列发送给所述计算机;还用于实现所述智能密钥设备向所述计算机发送预先定义的第三键盘消息序列,所述第三键盘消息序列用于运行安装程序。
所述计算机包括:通信模块,接收模块,处理模块;
所述计算机的通信模块,用于实现所述计算机和所述智能密钥设备连接的建立;
所述接收模块,用于接收所述智能密钥设备的发送模块发送的第一键盘消息序列、第二键盘消息序列和第三键盘消息序列;
所述处理模块,用于根据所述接收模块接收到的键盘消息序列,执行相应的处理动作。
12.如权利要求11所述的系统,其特征在于,
所述保存模块具体用于保存尝试运行安装程序的命令行指令;或,保存尝试运行安装程序的批处理脚本;或,保存安装程序编译生成的二进制编码;或,保存用于打开浏览器,访问URL的命令行指令。
13.如权利要求12所述的系统,其特征在于,当所述保存模块保存尝试运行安装程序的命令行指令时,所述智能密钥设备还包括:
判断模块,用于判断安装程序是否运行安装完毕。
14.如权利要求13所述的系统,其特征在于,
所述判断模块具体用于判断所述安装程序是否为通过自动运行程序autorun运行完毕,如果在所述发送模块发送第一键盘消息序列之前,在第一预设的时间内收到第一预设的安装完毕的消息,则表示所述安装程序为通过自动运行程序autorun运行完毕;还用于判断所述安装程序是否为通过键盘消息序列运行完毕,如果在所述发送模块发送第一键盘消息序列之后,在第二预设的时间内收到第二预设的安装完毕的消息,则表示所述安装程序是通过键盘消息序列运行完毕。
15.如权利要求11所述的系统,其特征在于,所述智能密钥设备还包括:
切换模块,用于当所述安装程序运行完毕后,当运行应用程序时,收到所述计算机发送的设备类型切换指令后,将所述智能密钥设备的设备描述符切换为正常工作所需要的设备描述符;
报告模块,用于向所述计算机报告正常工作所需的设备插入消息,并向所述计算机声明自身为与所述正常工作所需的设备插入消息对应的设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810223248.9A CN101382904B (zh) | 2008-09-28 | 2008-09-28 | 一种智能密钥设备实现自动安装的方法和系统 |
US12/437,152 US8140716B2 (en) | 2008-09-28 | 2009-05-07 | Method and system for implementing automatic installation of key device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810223248.9A CN101382904B (zh) | 2008-09-28 | 2008-09-28 | 一种智能密钥设备实现自动安装的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101382904A CN101382904A (zh) | 2009-03-11 |
CN101382904B true CN101382904B (zh) | 2012-04-18 |
Family
ID=40462757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810223248.9A Active CN101382904B (zh) | 2008-09-28 | 2008-09-28 | 一种智能密钥设备实现自动安装的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8140716B2 (zh) |
CN (1) | CN101382904B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0624582D0 (en) * | 2006-12-08 | 2007-01-17 | Visible Computing Ltd | USB autorun devices |
US8589698B2 (en) * | 2009-05-15 | 2013-11-19 | International Business Machines Corporation | Integrity service using regenerated trust integrity gather program |
CN101576863B (zh) * | 2009-06-02 | 2011-05-11 | 中兴通讯股份有限公司 | 用于移动终端的自启动方法、装置和包括其的移动终端 |
TWI391824B (zh) * | 2009-12-18 | 2013-04-01 | Feeling Technology Corp | Drive the connection system |
CN102467624B (zh) * | 2010-11-10 | 2014-04-02 | 金蝶软件(中国)有限公司 | 一种软件许可回收与自动重新申请的方法及系统 |
US9448809B2 (en) | 2011-12-06 | 2016-09-20 | Apple Inc. | Peripheral device mapping |
US8954926B2 (en) * | 2012-03-05 | 2015-02-10 | Microsoft Corporation | Code coverage detection with scriptable language unmodified source |
CN103218558B (zh) * | 2013-03-15 | 2015-12-09 | 飞天诚信科技股份有限公司 | 一种防密码窃听的方法 |
CN103218232B (zh) * | 2013-04-24 | 2016-04-13 | 大唐移动通信设备有限公司 | 一种控制工程设备执行操作命令的方法及装置 |
US10810020B2 (en) * | 2018-10-18 | 2020-10-20 | EMC IP Holding Company LLC | Configuring a device using an automated manual process bridge |
CN111522629A (zh) * | 2020-04-27 | 2020-08-11 | 广州大学 | 一种在计算机创建程序并运行的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1838142A (zh) * | 2006-04-29 | 2006-09-27 | 北京飞天诚信科技有限公司 | 带有数据存储和智能密钥的usb设备及其控制方法 |
CN2896370Y (zh) * | 2006-03-14 | 2007-05-02 | 北京飞天诚信科技有限公司 | 一种智能密钥装置 |
CN101013406A (zh) * | 2007-02-12 | 2007-08-08 | 北京飞天诚信科技有限公司 | 一种可自动安装的信息安全设备及其控制方法 |
CN101212303A (zh) * | 2007-12-24 | 2008-07-02 | 北京飞天诚信科技有限公司 | 动态口令输出方法、动态口令生成方法及其装置 |
CN101221511A (zh) * | 2008-01-25 | 2008-07-16 | 中兴通讯股份有限公司 | 一种终端设备应用软件的自动安装及升级方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6704824B1 (en) * | 1999-07-27 | 2004-03-09 | Inline Connection Corporation | Universal serial bus adapter with automatic installation |
US7865351B2 (en) * | 2007-12-30 | 2011-01-04 | Sandisk Il Ltd. | Device and method for automatically launching applications residing on USB flash drives |
-
2008
- 2008-09-28 CN CN200810223248.9A patent/CN101382904B/zh active Active
-
2009
- 2009-05-07 US US12/437,152 patent/US8140716B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2896370Y (zh) * | 2006-03-14 | 2007-05-02 | 北京飞天诚信科技有限公司 | 一种智能密钥装置 |
CN1838142A (zh) * | 2006-04-29 | 2006-09-27 | 北京飞天诚信科技有限公司 | 带有数据存储和智能密钥的usb设备及其控制方法 |
CN101013406A (zh) * | 2007-02-12 | 2007-08-08 | 北京飞天诚信科技有限公司 | 一种可自动安装的信息安全设备及其控制方法 |
CN101212303A (zh) * | 2007-12-24 | 2008-07-02 | 北京飞天诚信科技有限公司 | 动态口令输出方法、动态口令生成方法及其装置 |
CN101221511A (zh) * | 2008-01-25 | 2008-07-16 | 中兴通讯股份有限公司 | 一种终端设备应用软件的自动安装及升级方法 |
Also Published As
Publication number | Publication date |
---|---|
US20100082843A1 (en) | 2010-04-01 |
US8140716B2 (en) | 2012-03-20 |
CN101382904A (zh) | 2009-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101382904B (zh) | 一种智能密钥设备实现自动安装的方法和系统 | |
US7865351B2 (en) | Device and method for automatically launching applications residing on USB flash drives | |
CN102004655B (zh) | 自动安装驱动程序的装置及方法 | |
JP5595490B2 (ja) | インストール不要のデータカードドライバの実現方法、操作方法及びそのシステム | |
CN101110039B (zh) | 终端设备自安装及自启动系统及方法 | |
CN110032392B (zh) | 服务治理方法及装置、存储介质和电子设备 | |
CA2675666A1 (en) | Accelerated execution for emulated environments | |
US20070169000A1 (en) | Profiling interface assisted class loading for byte code instrumented logic | |
CN103279706A (zh) | 拦截在移动终端中安装安卓应用程序的方法和装置 | |
US9323646B2 (en) | Hardware security module with means to selectively activate or inhibit debugging and corresponding debugging method | |
CN106066803B (zh) | 应用程序运行控制的方法及装置 | |
CN103399761A (zh) | 固件烧录方法及其装置 | |
CN105718171B (zh) | 一种数据处理方法及终端 | |
US8886997B2 (en) | Hardware security module and processing method in such a module with augmented communication features | |
KR100654428B1 (ko) | 자바 프로그램의 처리 속도를 향상시키는 시스템 및 그 방법 | |
JP6195465B2 (ja) | 同期サーバ側スクリプティングを用いた遠隔カードコンテンツ管理 | |
CN101382903B (zh) | 智能密钥设备实现自动安装的方法和系统 | |
CN105701406A (zh) | 安卓平台运行传统支付应用的方法 | |
WO2022017242A1 (zh) | 在第一系统运行第二系统应用的方法、装置、设备及介质 | |
CN104346572A (zh) | 一种通用的外置式智能终端安全运行环境构建方法 | |
US10664342B2 (en) | Leak protection of executables with debug information | |
CN101324900B (zh) | 一种打开图形使用者界面的方法、装置及系统 | |
CN112114889B (zh) | 信息处理方法和装置、及存储介质 | |
CN112954016B (zh) | 基于usb-hid的文件传输方法、装置、设备及介质 | |
CN101661426A (zh) | 一种在Windows CE操作系统下更改MTU的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |