【发布时间】:2013-06-03 11:44:28
【问题描述】:
我有以下情况:
我有一个德尔福应用程序{$APPTYPE GUI}。 (APP1)
如果APP1 启动,它会在
begin 和 end.,应该是这样。
稍后,APP1 将转换为 DLL(另一个应用程序将执行此操作 - APP2)。
APP2 将IMAGE_FILE_DLL 标志添加 到APP1 的NTFileHeader 中的Characteristics。
然后APP2 尝试使用LoadLibrary(或其他一些COM 命令来加载dll)加载DLL(APP1),但它返回错误:
Windows 在初始化 COM 时遇到内部错误 图书馆。
我用C 项目完成了所有这些工作,并使用了WinMain 函数。但是它似乎在 Delphi 中不起作用(APP1 没有作为 DLL 启动)。如何将APP1 转换为工作DLL?
编辑:
我正在尝试将此代码从 C 移植到 Delphi:http://level-23.info/forum/showthread.php?14721-UAC-Bypass-for-Windows-7-RTM-SP1-Windows-8-DP&p=31749
我已正确移植它,一切正常,但 CRYPTBASE.dll (APP1) 无法启动。 (见上面的错误)
简而言之:
创建一个delphi应用,在文件头添加IMAGE_FILE_DLL特征。将其重命名为 CRYPTBASE.dll 并将其复制到 C:\Windows\System32\sysprep。然后开始sysprep.exe
这里的信息: http://www.pretentiousname.com/misc/W7E_Source/win7_uac_poc_details.html
【问题讨论】:
-
我认为您需要在这里详细说明。我完全不明白你的意思。
-
有什么原因不能导出不同的函数名吗?导入的
WinMain可能与宿主应用程序的WinMain冲突... -
我一点也不明白。而且我真的不明白该代码试图做什么。
-
告诉我们你的应用是$Apptype GUI的原因是什么?默认情况下,这是任何 delphi VCL 表单应用程序,您不必在任何地方声明它。有两种类型,console 和 gui,你创建的是哪一种?
-
我认为他想要一个可执行文件,将自己“作为 dll”注入到另一个可执行文件中
标签: windows delphi winapi dll portable-executable