我在一个python脚本中用到了WMI,用于确保杀死超时却未能自己结束的进程 (已经先尝试了Ctrl+Break中止)。
测试代码运行正常,但当我把这个函数放在子线程中使用时,却发现报错:
com_error: (-2147221020, ‘Invalid syntax’, None, None)
后来在网上检索,发现必须添加初始化函数和去初始化函数,所以在一个子线程中可使用的函数代码类似于:
import win32com.client import pythoncom import subprocess import logging def task_kill_timeout(timeout): pythoncom.CoInitialize() WMI = win32com.client.GetObject('winmgmts:') all_process = WMI.ExecQuery('SELECT * FROM Win32_Process where Name="aaa.exe" or Name="bbb.exe" or Name="ccc.exe"') for process in all_process: t = process.CreationDate t = t[:t.find('.')] start_time = time.strptime(str(t), '%Y%m%d%H%M%S' ) time_passed_by = time.time() - time.mktime(start_time) if time_passed_by > timeout: logging.error( 'Run taskkill %s' % process.name) print 'Run taskkill %s' % process.name subprocess.Popen('taskkill /F /pid %s' % process.processid, stderr=subprocess.PIPE, stdout=subprocess.PIPE, ) time.sleep(1.0) pythoncom.CoUninitialize ()
一旦上述aaa.exe,bbb.exe,ccc.exe进程运行超过timeout秒,即会被强制结束。
参考链接:
http://bytes.com/topic/python/answers/608938-importing-wmi-child-thread-throws-error
学长用的是什么插件让代码高亮的
应该是crayon-syntax-highlighter,右键看看源代码也有出现的。
soga,刚刚看到 学长在乌云本月rank榜排第一啊,太厉害了
我们的学长太厉害了哈哈哈哈
问一下你怎么一下子找到这么多SQL注入漏洞的呢? 我猜测一下: 先自动化查询各大网站的二级域名,然后爬虫获取SQL链接,在自动化注入 是这样的吗? 你把这些脚本都自动化了吗? 写这些程序花了多久呢?
你的思路是正确的,肯定是自动化扫描了。不过具体实现暂不会公开。 我和同事一起在做分布式扫描系统,以服务的形式提供。 单台PC,最高纪录,在半天时间扫描高达600个域名。 多数时间我们的系统也都在空转。 端口爆破相对耗时,在单独的机器上进行,但同样也集成到服务中了。
嗯谢谢啦,顺便问下你们实现这个系统花了多长的时间呢
刚在乌云看到学长了,好激动
亲,2015即将来临,开始发福利啰,独立ip主机限时抢啦