繁体   English   中英

EXE是否已锁定(相对于DLL)?

[英]Is EXE locked (vs DLL)?

如果我将所有控件都放在EXE中,是否可以从外部访问它,就像将其放置在DLL中一样?

因此,您所追求的是通常会导出符号的概念,除非您执行显式操作,否则在Windows中编译exe时不会导出符号。 现在,如果您正在谈论.NET,则问题有所不同。 但是,我注意到您对此进行了安全标记。 为了安全起见,我不会依赖这个事实。 代码注入等攻击要比这复杂得多。

如BobbyShaftoe所述,这取决于您使用的是托管代码还是非托管代码,但在此我将假定您使用的是非托管C或C ++。

基本上,一个已编译的可执行文件(在Windows中为EXE或DLL)由一堆函数和全局变量组成,并且每个文件在可执行文件的逻辑地址空间中都有一个特定的位置(当可执行文件被映射到物理内存地址时)已加载)。

如果某人知道其可执行文件中特定功能或变量的地址,则可以采取多种措施阻止他们使用它-但是在DLL中,该信息实际上是可用的,因此人们实际上可以查找您的功能( ,即您选择导出的名称)。

通常,您将为您的DLL提供一个头文件,该头文件将处理此名称查找,因此它们只需要像调用它们自己的程序一样调用这些函数即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM