我目前的DLL注入工作,需要有一個單一的混合二元可能既充當可執行文件和一個DLL。我想也許編寫一個DllMain和WinMain函數,然後將其編譯爲可執行文件,但我不知道如果我這樣做會發生什麼。我知道這是posssible使用類似thinstall或提取的dll到一個臨時位置,然後從那裏到一個DLL和EXE結合,但我不想惹任何東西。所以基本上,是否可以定義一個WinMain和Dll Main,然後使用生成的可執行文件作爲兩者,如果沒有,這甚至有可能嗎?提前致謝!DLL EXE混合C++的Windows
回答
號
既是一個DLL和一個EXE具有PE(可移植可執行)報頭。該標題有一個字段IMAGE_FILE_HEADER::Characteristics
。該字段的位14是0(對於EXE)或1(對於DLL)。
好的,謝謝! – user37875 2010-02-14 04:12:46
你爲什麼不把所有的公共代碼到一個靜態庫(.LIB),並同時擁有DLL項目和EXE項目圍繞靜態庫非常薄的包裝?
沒有共同的代碼。我試圖使用基本上沒有DLL的DLL注入。 – user37875 2010-01-19 02:28:36
你可以創建你的可執行文件的臨時副本,打補丁的PE頭和注入這個副本。另一種方法是將DLL作爲二進制資源添加到可執行文件中。在運行時,您可以將此二進制資源寫入臨時文件並將其用於注入。
它可以從一個exe文件中導出函數了。所以你應該可以在LoadLibrary(「foo.exe」)後加上GetProcAddress(hFoo,「bar」)
- 1. 混淆.NET EXE/DLL的
- 2. DLL要EXE轉換? [C++]
- 3. 在EXE中分發DLL(C++)
- 4. 將混合模式應用程序項目(.exe)轉換爲混合模式動態庫(.dll)
- 5. WMI查詢以讀取「Microsoft-Windows-AppLocker/EXE和DLL」C#
- 6. Windows上混合Julia和C項目的最小工作示例
- 7. 混合C和C++
- 8. 混合C/C++庫
- 9. C#混合流
- 10. 混合C++和Objective C的
- 11. 合併Win32 C++ dll與託管C++ dll
- 12. 將值從exe傳遞給dll C++
- 13. 在MFC C++ EXE中嵌入DLL?
- 14. 將C++項目從.exe轉換爲.dll?
- 15. Visual C++ - 針對EXE鏈接插件DLL?
- 16. 在C++ exe中包含MSVRC100.dll
- 17. 從dll調用函數到exe C++
- 18. 將C++ .exe項目轉換爲DLL
- 19. Windows身份驗證混合
- 20. 如何使用BTMemoryModule從Delphi調用混合模式C#dll?
- 21. 如何在node.js中使用混合C++&.Net dll? (Error:abort()has been called)
- 22. 將資源添加到Visual C++/CLI混合DLL
- 23. DLL內存管理器混合
- 24. C:指針混合
- 25. 混合gtk +和C++
- 26. DSO中的SIGSEGV,混合C/C++
- 27. 從C++調用C#,反向P/Invoke,混合模式DLL和C++/CLI
- 28. 混合本機C++和C++/CLI
- 29. 混合C和Objective-C
- 30. 將C#與Objective-C混合
爲什麼不試試呢?最多應該花幾分鐘時間。 – 2010-01-19 02:26:31
不是一個壞主意,我只是想檢查,因爲我是一個緩慢的程序員。 – user37875 2010-01-19 02:29:36