驱动程序或注册表永久关闭Microsoft Edge

最近在参与公司一个PDF后缀名保护的驱动项目,这个驱动在win7上能稳定的保护.pdf后缀文件使用我们自己设定的PDF阅读器,而不会被其他PDF阅读器肆意篡改关联。

但是有意思的是,在win10上这个驱动并不能起到保护作用,其原因是win10系统自带了Microsoft Edge这个“流氓软件”,之所以叫它“流氓软件”主要有两个原因。

其一:功能鸡肋,该软件能打开.html、.pdf等后缀格式文件,但是打开网页的话,被Chrome各方面碾压,而且国内估计有90%的用户都不会使用Edge浏览网页。

其二:网上很多网友抱怨,自己修改了默认的后缀名打开方式,但是一段时间过后win10又会自动将默认方式改为Edge,而且这个软件是win10自带的,并不能通过常规途径卸载,所以网友对这个软件一向评价不高。

 

经过实验,我们每次通过hash解密过后,抢夺对.pdf后缀名文件的控制权,但是每次打开pdf后缀文件都会默认使用Edge,之所以是这样是因为win10系统将Edge这个软件设为最高优先级,每次抢夺后缀打开方式,ProId键的值都会指向AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723这个值,而这个值对应的项就是Edge这个软件(蛋疼),这就导致我们自己的第三方PDF阅读器能抢过其他PDF阅读器,但是怎么都抢不过这个Edge,所以我就在考虑怎么禁用Edge,经过一天的摸索,终于解决了这个问题。

方法一:注册表删除:

暴力方法:

最暴力方法是删除下面的注册表项路径,这样你电脑只要不更新就永远可以和Edge说byebye。

计算机\HKEY_CLASSES_ROOT\AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723

 保险方法:

Edge仍然存在,但是不会将其首选为默认打开方式。

使用命令行WIN+R打开注册表regedit

输入Edge路径(1):

计算机\HKEY_CLASSES_ROOT\AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723\Shell\open

删除下面的所有键

以及路径(2)

计算机\HKEY_CLASSES_ROOT\AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723\Shell\open\command

删除过后,右键打开方式就没有Edge这个软件了,而且默认打开方式里边也不会有Edge这个选项。

 

方法二:驱动程序代码删除:

没接触过内核驱动开发的网友直接跳过,这个方法只适合程序员(狗头保命)

void NewDeleteEdgeK(UNICODE_STRING &Us,PCWSTR Ps);//原型

UNICODE_STRING RegUnicodeString;
#define REG_EDGE_OPENAIDV L"HKEY_CLASSES_ROOT\\AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723\\Shell\\open\\ActivatableClassId";
#define REG_EDGE_OPENCIDV L"HKEY_CLASSES_ROOT\\AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723\\Shell\\open\\ContractId";
#define REG_EDGE_OPENDSV L"HKEY_CLASSES_ROOT\\AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723\\Shell\\open\\DesiredInitialViewState";
#define REG_EDGE_OPENPIDV L"HKEY_CLASSES_ROOT\\AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723\\Shell\\open\\PackageId";
#define REG_EDGE_DelV L"HKEY_CLASSES_ROOT\\AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723\\Shell\\open\\command\\DelegateExecute";

UNICODE_STRING EDGE_OPENAIDV;
UNICODE_STRING EDGE_OPENCIDV;
UNICODE_STRING EDGE_OPENDSV;
UNICODE_STRING EDGE_OPENPIDV;
UNICODE_STRING EDGE_DelV;

void NewDeleteEdgeK(UNICODE_STRING &Us,PCWSTR Ps)
{
    HANDLE hRegister;
    RtlInitUnicodeString(&Us,REG_EDGE);
    OBJECT_ATTRIBUTES objectAttributes;
    //初始化objectAttributes
    InitializeObjectAttributes(&objectAttributes,
                    &RegUnicodeString,
                    OBJ_CASE_INSENSITIVE, //对大小写敏感
                    NULL,
                    NULL);
    
    //打开注册表
    NTSTATUS ntStatus = ZwOpenKey(&hRegister,
                                KEY_ALL_ACCESS,
                                &objectAttributes);
    //判断
    if(NT_SUCCESS(ntStatus))
    {
        KdPrint(("Open register successfully!\n"));
    }

    //删除注册表键
    ntStatus = ZwDeleteKey(hRegister);
    if(NT_SUCCESS(ntStatus))
    {
        KdPrint(("DELETE the edge successfully\n"));
    }
    else if(ntStatus == STATUS_ACCESS_DENIED)
    {
        KdPrint(("STATUS_ACCESS_DENIED\n"));
    }
    else if(ntStatus == STATUS_INVALID_HANDLE)
    else
    {
        KdPrint(("Maybe the item has sub item to delete\n"));
    }
    //关闭句柄
    ZwClose(hRegister);
}

NewDeleteEdgeK(&RegUnicodeString,EDGE_OPENAIDV);
NewDeleteEdgeK(&RegUnicodeString,EDGE_OPENCIDV);
NewDeleteEdgeK(&RegUnicodeString,EDGE_OPENDSV);
NewDeleteEdgeK(&RegUnicodeString,EDGE_OPENPIDV);
NewDeleteEdgeK(&RegUnicodeString,EDGE_DelV);

改回方法:

打开左下角Windows图标进入设置->应用->搜索Edge->进入Edge高级设选项->修复即可还原

觉得不错的朋友可以点赞交流

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值