簡體   English   中英

DLL EXE混合C ++ Windows

[英]DLL EXE Hybrid C++ Windows

我目前正在使用DLL注入,並且需要有一個既可以同時充當可執行文件又可以充當DLL的混合二進制文件。 我想到可能要編寫一個DllMain和WinMain函數,然后將其編譯為可執行文件,但是我不知道這樣做會發生什么。 我知道可以通過使用諸如thinstall或將dll解壓縮到一個臨時位置然后從那里去的方式來組合dll和exe,但是我不想弄亂任何東西。 因此,基本上可以定義WinMain和Dll Main,然后將生成的可執行文件同時使用,如果沒有,是否有可能? 提前致謝!

沒有。

DLL和EXE都具有PE(便攜式可執行文件)標頭。 該標題具有字段IMAGE_FILE_HEADER::Characteristics 該字段的位14是0(對於EXE)或1(對於DLL)。

為什么不將所有通用代碼放入靜態庫(.lib)中,並且將DLL項目和EXE項目都作為靜態庫的一個非常薄的包裝器?

您可以創建可執行文件的臨時副本,修補PE標頭並注入該副本。 另一種方法是將DLL作為二進制資源放置到可執行文件中。 在運行時,您可以將此二進制資源寫入一個臨時文件,並用於注入。

也可以從exe導出功能。 因此,您應該能夠先加載LoadLibrary(“ foo.exe”),再執行GetProcAddress(hFoo,“ bar”)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM