codeblocks和vscode编译时弹出不支持的16位程序解决方案

困扰我多年的问题,用vscode也会出现类似的错误。网上的许多方案都是下载360,火绒类似的方案,但是治标不治本,过一段时间又不好了。其根本原因是映像劫持造成的,可以理解成病毒,下面我主要介绍一下:

映像劫持的根本原因就是被恶意程序篡改了注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options。

假如在这里新建一个子项notepad.exe,再在这子项里新建一个REG_SZ的名字为Debugger,内容为cmd.exe的值项。这样就会实现映像劫持了,这样你每次用记事本的方式打开文本文件时,却打开的是命令提示符的窗口。相信你也遇到过类似的情况吧。一下木马,病毒就是通过这个让杀毒软件和防火墙之类的应用程序,启动不起来。

Debugger参数的本意是为了让程序员能够通过双击程序文件直接进入调试器里调试自己的程序,曾经调试过程序的朋友也许会有一个疑问,既然程序启动时都要经过IFEO这一步,那么在调试器里点击启动刚被Debugger参数送进来的程序时岂不是又会因为这个法则的存在而导致再次产生一个调试器进程?微软并不是傻子,他们理所当然的考虑到了这一点,因此一个程序启动时是否会调用到IFEO规则取决于它是否“从命令行调用”的,那么“从命令行调用”该怎么理解呢?例如我们在命令提示符里执行taskmgr.exe,这就是一个典型的“从命令行调用”的执行请求,而我们在点击桌面上、普通应用程序菜单里的taskmgr.exe时,系统都会将其视为由外壳程序Explorer.exe 传递过来的执行请求,这样一来,它也属于“从命令行调用”的范围而触发IFEO规则了。为了与用户操作区分开来,系统自身加载的程序、调试器里启动的程 序,它们就不属于“从命令行调用”的范围,从而绕开了IFEO,避免了这个加载过程无休止的循环下去。由于Debugger参数的这种特殊作用,它又被称为“重定向”(Redirection), 而利用它进行的攻击,又被称为“重定向劫持”(Redirection Hijack),它和“映像劫持”(Image Hijack,或IFEO Hijack)只是称呼不同,实际上都是一样的技术手段。

这里介绍一个最简单粗暴的办法 cmd -> regedit -> 找到image file execution options 删除360提示的文件夹 然后设置权限 获得system完全控制的权限 然后删除这个文件夹  最后取消image file execution options的system用户的所有权限,这样一来外界就无法对此进行修改了。

原文地址:https://www.cnblogs.com/Jawen/p/11381211.html

时间: 2024-10-19 06:46:23

codeblocks和vscode编译时弹出不支持的16位程序解决方案的相关文章

VS2015+OpenGL4.0开发编译时弹出错误:glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _sscanf,该符号在函数 [email protected] 中被引用

一.问题描述: VS2015+OpenGL4.0开发编译时弹出如下所示的错误: 1>glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _sscanf,该符号在函数 [email protected] 中被引用 1>glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _vsprintf,该符号在函数 _PrintMessage 中被引用 二.问题原因: VS2015默认编译时将许多标准库采用内联方式处理,因而没有可以链

VS2012与VS2015同时安装用VS2012创建MFC程序时弹出编译错误”fatal error C1083: 无法打开包括文件:“mprapidef.h”: No such file or directory”的解决办法

在WIndows 7操作系统上同时安装VS2012与VS2015并用VS2012创建MFC程序时弹出编译错误"fatal error C1083: 无法打开包括文件:"mprapidef.h": No such file or directory"的解决办法: I installed vs2015 and vs2012, then the same problem occurs,however, I find a solution. open visual stud

win7,M?i?n?d?m?a?n?a?g?e?r?2?0?1?2使用模板时弹出Runtime error R6025解决方法

Mindjet.MindManager2012.v10.0在应用个别模板时提示"参数错误",然后自动关闭. 解决办法: 如果是win7系统,可以进入C:\Users\(用户名)\AppData\Local\Mindjet\MindManager\10\Library\ENU\Templates, 可以看到如下模板:Management/Meetings and Events/Personal Productivity/Problem Solving/Project Management

eclipse启动时弹出Failed to create the Java Virtual Machine

eclipse启动时弹出Failed to create the Java Virtual Machine 一.现象 今天装eclipse的时候出现Failed to create the Java Virtual Machine 的错误. 错误图片如下: 二.出错原因 把错误提示翻译一下,就是"无法创建java虚拟机",其实这也就是说明: 我的eclipse版本和虚拟机不兼容 三.查找错误 而我们知道,eclipse用的是系统的Java运行环境,也就是用的我们自己的JAVA虚拟机,也

点击删除时弹出是否删除提示框

点击删除时弹出是否删除提示框:在通常情况下,想要点击删除某一项的时候,一般会弹出一个框,以提示操作者是否真的要删除此项,这样可以免于出现误操作,比较人性化的一个举措,下面就简单介绍一下如何实现此效果.实例代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.soft

删除数据时弹出一个确认对话框

使用js实现点击按钮删除数据时弹出一个确认是否删除的对话框: <input type="button" class="wz2 btn" value="删除" onClick="sc('{$vo.name}','__URL__/delete?aid={$vo.id}')"/> <script type="text/javascript"> function sc($name,$ulr)

鼠标经过时弹出下拉菜单

<style type="text/css">#cssdropdown, #cssdropdown ul {padding: 0;margin: 0;list-style: none;}#cssdropdown li {float: left;position: relative;}.mainitems{border: 1px solid black;background-color: #FFEEC6;}.mainitems a{margin-left: 6px;margi

Android点击返回键back时弹出对话框Dialog

public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { ExitDialog(MainActivity.this).show(); return true; } return super.onKeyDown(keyCode, event); } private Dialog ExitDialog

eclipse启动时弹出Failed to load the JNI shared library jvm.dll的Java错误

原因1:给定目录下jvm.dll不存在. 对策:(1)重新安装jre或者jdk并配置好环境变量.(2)copy一个jvm.dll放在该目录下. 原因2:eclipse的版本与jre或者jdk版本不一致 对策:要么两者都安装64位的,要么都安装32位的,不能一个是32位一个是64位. 原因2的概率更大一些,原因1不太可能发生 eclipse启动时弹出Failed to load the JNI shared library jvm.dll的Java错误,布布扣,bubuko.com eclipse