C#调用第三方dll生成exe被dep拦截

前段时间用C#写了个小程序,用到了第三方的dll,在编译运行后直接闪退,找了半天发现是被windows的dep给拦截了,尝试后很多方法,最终解决了,现在分享给大家!

try1.关闭指定程序的dep保护

关闭相关dep保护
在系统→高级系统设置→高级→设置→数据执行保护中,为除下列选定程序之外的所有程序和服务启用DEP,将选定的程序添加到列表中。
ps:我的是win10 64,vs2017,在添加指定程序是提示:
此程序必须在启用数据执行保护(DEP)的情况下运行。你不能关闭此程序的 DEP。

try2.关闭windows dep保护

因为1失败,所以尝试关闭windows的DEP保护,以管理员身份运行,输入 bcdedit.exe /set {current} nx AlwaysOff(如果提示设置元素数据时出错。该值受安全引导策略保护,无法进行修改或删除,那是因为windows安全引导保护导致的,需要在bios中设置security中secure boot为DisEnable,然后重新设置),然后重启,重启后再查看dep保护,整个窗口都是灰色无法修改的,此时可以正常运行原先被拦截的程序。
关于开启dep保护,网上命令是bcdedit.exe/set {current} nx AlwaysOn ,但是我试了没用,我用的是bcdedit.exe/se

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值