【数据库】+Navicat 过期/14天试用期满


一、效果

破解后继续试用 14天试用满了之后 再次运行程序进行破解即可

二、代码

直接运行即可

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
@Time    :2021/2/13 22:01
@Author  :
@File    :main.py
@Version :1.0
@Function:
"""

import winreg


# DesktopPath = winreg.QueryValueEx(key, "Desktop")[0]
# print(DesktopPath)

class Key:
    @staticmethod
    def find():
        """
        查找HKEY_CURRENT_USER\Software\Classes\CLSID下的子文件夹是否只包含一个名为Info的文件夹
        :return info所在的文件夹 list
        """
        key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Classes\CLSID")
        index = 0
        del_index = 1
        del_key = []
        while True:
            try:
                name = winreg.EnumKey(key, index)
                try:
                    winreg.EnumKey(winreg.OpenKey(winreg.HKEY_CURRENT_USER, f"Software\Classes\CLSID\{name}"),
                                   del_index)
                except:
                    # 说明 <=一个key
                    try:
                        del_name = winreg.EnumKey(
                            winreg.OpenKey(winreg.HKEY_CURRENT_USER, f"Software\Classes\CLSID\{name}"), 0)
                        if del_name == 'Info':
                            del_key.append(f'Software\Classes\CLSID\{name}')
                    except:
                        # 一个key都没有
                        index += 1
                        continue
                index += 1
                # print(name)
            except:
                break
        # print(*del_key, sep='\n')
        return del_key

    @staticmethod
    def del_key(key):
        def check_key(c_key):
            try:
                d_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, c_key)
                name = winreg.EnumKey(d_key, 0)
                check_key(f'{c_key}\{name}')
            except:
                # key下面没有值
                try:
                    winreg.DeleteKey(winreg.HKEY_CURRENT_USER, c_key)
                    print(f'已删除:{c_key}')
                except:
                    pass
                # return None

        # key_ = winreg.OpenKey(winreg.HKEY_CURRENT_USER, key)
        # 判断下面是否有值 有则删除 最后再删除此key
        check_key(key)
        try:
            winreg.DeleteKey(winreg.HKEY_CURRENT_USER, key)
            print(f'已删除:{key}')
        except:
            pass

    @staticmethod
    def find_hk_install(is_print=False):
        key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SYSTEM\CurrentControlSet\Services\ACSDAGServer")
        index_count = 0
        while True:
            try:
                name, value, type = winreg.EnumValue(key, index_count)
                # print(name, value, type)
                if name == 'ImagePath':
                    hk_path = value[1:].split('\ACSDAG\\')[0]
                    if is_print: print(hk_path)
                    return hk_path
                index_count += 1
            except:
                return None


class DelNavicat:
    @staticmethod
    def del_():
        for i in range(70):
            # 查找Info
            info_list = Key.find()
            info_list.append('Software\PremiumSoft\Data')
            # 删除Info
            for i in info_list:
                Key.del_key(i)
        print('Navicat破解完成 现可继续试用 试用过期后 再次运行此程序即可')


if __name__ == '__main__':
    DelNavicat.del_()