#1 楼
任何动态链接的可执行文件都需要从动态加载的库中导入功能。您拥有的可执行文件需要comctl32.dll中的某些功能才能完成其工作。像UPX这样的打包程序基本上是在创建一个全新的可执行文件,并将原始文件压缩为“有效负载”。打包的可执行文件现在具有更多依赖项的原因是因为UPX解码器在运行时会解压缩原始可执行文件,因此它具有自己的依赖项。我猜想它从kernel32.dll导入LoadLibrary和GetProcAddress。您可以在MSDN上阅读更多信息,但总而言之,这些功能允许UPX拆包存根加载其他库,而无需明确链接到它们。