二进制exe文件能直接在cmd中运行的原理

来源:百度知道 编辑:UC知道 时间:2024/09/24 04:13:13

其实不论是在CMD中还是通过鼠标点击或别的地方启动程序,原理都是一样的:SHELL加载程序到内存,自动重定位(可执行文件里的偏移和它在内存中的偏移有差异),然后更换CONTEXT(包括IP指令,REG,线程上下文,等等),准备好了后,CPU就从ENTRY POINT(主线程入口)开始执行。
当然了,可执行文件至少有几种,比如16位的,在CMD控制台中,以虚拟86模式执行;32位的控制台程序和普通的窗口程序差异很小,都是一样的PE格式;
控制台可以启动所有这些程序;反之,从任务管理器,资源管理器等GUI模式下,也可以启动控制台程序。

windows下的应用程序 分为win32 控制台应用程序 和win32应用程序(带界面的)
你所说的cmd 应该是控制台应用程序,这类程序没有友好的界面,必须依赖控制台运行..