python 修改 删除 驱动服务 注册

发布时间:2019-08-09 09:12:39编辑:auto阅读(1895)

    外挂释放.sys到C:\Windows下,使用python通过修改其启动方式后断电重启禁止驱动加载,源码如下
    另外Python操作注册表出现“WindowsError: (5, ”)”的话
    其实解决的办法很简单,通过阅读文档发现,问题在于_winreg.OpenKey()中的sam参数sam参数用来定义key的存取类型查询的设置成READ 写入的设置成WRITE就不会出现错误了

    v 1.0

    # -*- coding:utf-8 -*-
    import glob
    import os
    from _winreg import *
    
    
    f = glob.glob('C:\Windows' + '\\*.sys')  
    for file in f :  
        filename = os.path.basename(file)  
    filename2 = filename[0:-4]
    chinesedisplay = '6666666666666666666666666666666666666666:   C:\Windows\%s' %filename
    print chinesedisplay.decode("utf-8")
    
    #change value
    regpath = 'SYSTEM\\CurrentControlSet\\services' + '\\' + filename2
    reg = OpenKey(HKEY_LOCAL_MACHINE, regpath, 0, KEY_WRITE)
    Start = 'Start'
    value2 = '4'
    SetValueEx (reg, Start, 0, REG_DWORD, 4)
    
    #delete key
    #regpath2 = 'SYSTEM\\CurrentControlSet\\services'
    #reg2 = OpenKey(HKEY_LOCAL_MACHINE, regpath2, res=0, sam=KEY_WRITE)
    #DeleteKey(reg2, filename2)
    chinesedisplay2 = '666666666666666666666666666666666'
    print chinesedisplay2.decode("utf-8")
    
    #print isinstance(filename2, basestring)
    
    CloseKey(reg)

    v1.1

    # -*- coding:utf-8 -*-
    import glob
    import os
    from _winreg import *
    
    #获取当前程序所在路径
    currentpath1 = os.getcwd()
    currentpath2 = '现在程序所在的路径为 :'+ currentpath1
    print currentpath2.decode("utf-8")
    
    #遍历所有可疑文件
    
    f = glob.glob('C:\Windows' + '\\*.sys')
    print ('666 C:\Windows 666').decode("utf-8")
    
    #判断有多少个驱动文件并删除没有加载的驱动
    
    for i, file in enumerate(f) :
        #枚举路径
        filename = os.path.basename(file)
        sysrootpath2 = 'C:\\Windows\\' + filename
        #print i, filename
        #尝试删除驱动文件
        try:
            os.remove(sysrootpath2)
            print ('66666').decode("utf-8") + filename + ('6666').decode("utf-8")
        except:
            print ('6666666666666666').decode("utf-8")
    
    #if i==0:
    #    print ('6666666666666666').decode("utf-8")
    #else:
    #    print ('6666666666666666666666666666666666666666666').decode("utf-8")
    
    #确认外挂驱动名
    
    for filewg in f :  
        wdfilename = os.path.basename(filewg)  
    realwgfilename = wdfilename[0:-4]
    print ('6666666666666666666666666666666:').decode("utf-8")
    print (wdfilename)
    
    #修改外挂驱动注册表键值
    
    regpath = 'SYSTEM\\CurrentControlSet\\services' + '\\' + realwgfilename
    reg = OpenKey(HKEY_LOCAL_MACHINE, regpath, 0, KEY_WRITE)
    Start = 'Start'
    SetValueEx (reg, Start, 0, REG_DWORD, 4)
    CloseKey(reg)
    
    #delete key
    #regpath2 = 'SYSTEM\\CurrentControlSet\\services'
    #reg2 = OpenKey(HKEY_LOCAL_MACHINE, regpath2, res=0, sam=KEY_WRITE)
    #DeleteKey(reg2, filename2)
    #chinesedisplay2 = '66666666666666666666666666666666666666666666'
    #print chinesedisplay2.decode("utf-8")
    #print isinstance(filename2, basestring)
    
    print ('666666666666666666666666666666666666666666666666').decode("utf-8")

关键字