autoit 怎么对安全控件进行输入?
如 https://cmpay.10086.cn/index.xhtml输入密码的地方是一个安全控件
怎么鼠标按键输入密码? 回复 1# au3au3
手机发帖,看不到,如果可以取消的话就先取消了再登录,淘宝的登录我就是这么干的 没人?au3高手呢?怎么解决? 安全控件的不是标准的IE控件,所以不能直接用IE操作函数赋值,其实可以考虑直接用普通的控件操作函数来获取这个的控件对象句柄的,然后直接ControlSendText 就可以了,以前我输入支付宝密码就是这么操作成功的, 这个网站的你也可以试试 回复 4# passkalilo
楼主,麻烦给个代码,我是新人,还不懂怎么写 #include <IE.au3>
$oIE = _IEAttach("https://cmpay.10086.cn/index.xhtml","url")
$Ele = _IEGetObjById($oIE,"MBLNO_OR_LOGID")
_IEFormElementSetValue($Ele,"13800138000")
;~ _IEImgClick($oIE,"https://cmpay.10086.cn/images/skinhome/hdimg/btn_login.jpg") ;点击登录它这个密码框不支持模拟输入..连系统自带的虚拟键盘都不行!所以没法子了. 言下之意,autoit 对这些安全控件无能为力嚒? 不会吧??
继续求助高手。。。。 回复 5# au3au3
你自己才是楼主~~ 回复 8# annybaby
高手,怎么办?模拟输入不行? 回复 9# au3au3
安全控件的东西就别折腾了,你随便都搞定了,人家就没饭吃了
PS:别这样叫我~~ 回复 10# annybaby
autoit 不是无所不能吗? 回复 11# au3au3
你我搞不定,跟AU3有鸟关系啊??
反正我是不敢乱代表~~ 回复 11# au3au3
AU3当然是无所不能的。我对IE类的操作不甚熟悉,只会用模拟发送按键的方式搞定,提示你以下几点:
1、Ntdll.dll中的NtSystemDebugControl函数,它的15号功能可以将数据写入指定的硬件端口(键盘的0x62号端口是控制端口,0x60号是数据端口),但这个函数需要调用者线程开启SeDebugPrivilege权限,一般情况下只有管理员组的成员才有这个权限。并且,由于这个函数异常强大,也存在危险性,所以很多杀软都会HOOK这个函数,这可能导致调用失败。
2、如果第1种方法不成功,可以尝试调整AU3进程的IO特权等级,方法是调用NtSetInformationProcess函数的16号功能,成功提升IO特权等级之后,便可直接用汇编的in、out指令来读写键盘端口。同样,这个函数需要调用者线程需要一定的特权,那就是SeTcbPrivilege,一般情况下,只有SYSTEM用户才有这个特权,连管理员都没有。这个函数也同样会被杀软保护。
3、第3种方法,原理同第2种方法。可以在csrss.exe或System进程中插入一个远程线程,在远程线程中使用in、out指令操作硬件,因为这两个进程默认都提升了IO特权等级。在创建远程线程时,应该确保能以PROCESS_CREATE_THREAD权限打开进程句柄,一般情况下,调用者线程应该开启SeDebugPrivilege权限才能成功打开进程句柄。
以上,是我总结的在ring3层直接操作硬件的3种方法,无论哪种方法,都有可能因杀软防护,而导致操作失败。 回复 13# pusofalse
很强大,还想到了这么多方法 回复 13# pusofalse
难得见P大出没,等你的教程等得好辛苦啊……