请教:一个文件能不能既是EXE又是DLL?如何实现? 请教:一个文件能不能既是EXE又是DLL?如何实现?多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以把一個Exe文件當Dll用。一般我們會用LoadLibrary()去加載一個Dll,但也可以用這個函數來打開一個Exe,以獲取此文件中的資源。 我要调用Exe的函数可以吗?能给个例子吗? 什么意思呀?文件有很多种了.exe,.bat,.com,.dll,.dat,.bmp,.jpg,.txt,.doc.... http://www.vchelp.net/vchelp/zsrc/rmtr.asp?type_id=28&class_id=1&cata_id=2&article_id=466&search_term=有段这样的话:d) LoadLibraryEx提供一个参数用于控制dll的加载方式--dwFlags。dwFlags可取DONT_RESOLVE_DLL_REFERENCES和LOAD_LIBRARY_AS_DATAFILE或其他值。LOAD_LIBRARY_AS_DATAFILE让LoadLibraryEx把dll当成一个数据文件加载,不做任何调整;DONT_RESOLVE_DLL_REFERENCES让LoadLibraryEx把dll当成一个image文件加载,但是不解决IAT和重定位表,当然也不会调用DllMain。但是,有没有一种方法,让LoadLibraryEx解决IAT和重定位表,但是又不调用DllMain呢?出于个人兴趣,我研究了LoadLibraryEx,发现他做一些调整后,最终调用了ntdll.dll中的LdrLoadDll,LdrLoadDll又调用了LdrLoadDllEx(这个API没有被nt/2k导出,名字也是我自己起的)。LdrLoadDllEx比LdrLoadDll多一个参数,前几个完全相同,最后一个指明是否调用DllMain。这样我们又有了第4中加载exe的方法:修改exe的Characteristics,伪装成dll,直接调用LdrLoadDllEx,最后一个参数为0。 DWORD WINAPI LdrLoadDllEx(LPCWSTR szSearchPath, DWORD *dwFlags, UNICODE_STRING *uszImagePath, HMODULE *pModule, BOOL fCallDllMain) 对不起。是我没说清楚。我的本意是想做单文件的hook. 恩 有创意! 要告诉你的是某些Hook一定要是全局hook比如键盘钩子 因为它需要截获所有的键盘消息 就必须为dll形式.呵呵 不过你可以这样做,就做一个dll 然后用rundll32.exe 执行这个dll。 关心!我也有这样的需求,即A_EXE可以将B_EXE看做是一个DLL,使用其内部的过程,同时也是独立的可执行程序。 创建数据库文件时,多一文件却不能自动删除 文件合并 怎么判断ClassA实现了InterfaceA呢? Delphi7下面怎么使用Windows 的WMI接口啊? 线程如何创建和释放(在线等) 游戏开发C/S应该接用什么数据库呢?理想。。。 使用线程后出现的错误 如何在运行时查找发布的事件? 一個小小問題﹗ 为什么我的数据窗口中放的ADOQUERY等数据控件比较多出现滚动条后,只要一按保存键,窗口里的控件位置便会变乱? 远程文件传输 关于设置Printer打印页面大小的问题??亟盼!亟盼!
但也可以用這個函數來打開一個Exe,
以獲取此文件中的資源。
能给个例子吗?
有段这样的话:
d) LoadLibraryEx提供一个参数用于控制dll的加载方式--dwFlags。dwFlags可取DONT_RESOLVE_DLL_REFERENCES和LOAD_LIBRARY_AS_DATAFILE或其他值。LOAD_LIBRARY_AS_DATAFILE让LoadLibraryEx把dll当成一个数据文件加载,不做任何调整;DONT_RESOLVE_DLL_REFERENCES让LoadLibraryEx把dll当成一个image文件加载,但是不解决IAT和重定位表,当然也不会调用DllMain。但是,有没有一种方法,让LoadLibraryEx解决IAT和重定位表,但是又不调用DllMain呢?出于个人兴趣,我研究了LoadLibraryEx,发现他做一些调整后,最终调用了ntdll.dll中的LdrLoadDll,LdrLoadDll又调用了LdrLoadDllEx(这个API没有被nt/2k导出,名字也是我自己起的)。LdrLoadDllEx比LdrLoadDll多一个参数,前几个完全相同,最后一个指明是否调用DllMain。这样我们又有了第4中加载exe的方法:修改exe的Characteristics,伪装成dll,直接调用LdrLoadDllEx,最后一个参数为0。
DWORD WINAPI LdrLoadDllEx(LPCWSTR szSearchPath, DWORD *dwFlags, UNICODE_STRING *uszImagePath, HMODULE *pModule, BOOL fCallDllMain)
是我没说清楚。
我的本意是想做单文件的hook.
呵呵 不过你可以这样做,就做一个dll 然后用rundll32.exe 执行这个dll。
我也有这样的需求,即A_EXE可以将B_EXE看做是一个DLL,使用其内部的过程,同时也是独立的可执行程序。