社区
进程/线程/DLL
帖子详情
EXE文件里藏DLL文件?
fgwxybmt
2008-07-17 08:37:05
很多程序都用到了这个功能, 问问大家具体是怎么做的 ,最好是详细些 谢谢.
...全文
811
23
打赏
收藏
EXE文件里藏DLL文件?
很多程序都用到了这个功能, 问问大家具体是怎么做的 ,最好是详细些 谢谢.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fire_cpp
2010-02-14
打赏
举报
回复
mark.学习了。感谢四楼的回复。
sunlin7
2008-07-28
打赏
举报
回复
建议你使用RawPeApi,可以加载内存中的普通DLL文件,不使用任何临时文件。
ethan119
2008-07-27
打赏
举报
回复
LZ什么意思,是EXE中定义DLL还是EXE中输出函数?? 还是在EXE中加载一个DLL??
ZOthello
2008-07-25
打赏
举报
回复
觉得4楼的是正解~~
sking2008
2008-07-25
打赏
举报
回复
ding!!!
socrates
2008-07-25
打赏
举报
回复
mark
CrazyMan1984
2008-07-25
打赏
举报
回复
四楼正解,将可执行文件作为资源包括进去。 另外一种方法就是在Dll文件结尾写数据,也就是所谓的捆绑文件和释放捆绑文件,这是安装包的制作原理。
soliddream66
2008-07-24
打赏
举报
回复
我觉得可以用于做个安装程序,肯定得把什么都放在exe里面了
ruixing123
2008-07-19
打赏
举报
回复
呵呵。。。其实感觉画蛇添足。。。这样做有什么好处?
soliddream66
2008-07-19
打赏
举报
回复
学习,确实很有用,又学了一招
cad_vc
2008-07-19
打赏
举报
回复
学习
fgwxybmt
2008-07-18
打赏
举报
回复
收到,测试中...
Amuro1987218
2008-07-17
打赏
举报
回复
资源文件,见4楼
thirddata
2008-07-17
打赏
举报
回复
只有动态加载的才可以当资源放在exe里面,其他的是不行的。
cnzdgs
2008-07-17
打赏
举报
回复
常用方法就是把DLL作为资源生成到EXE文件里面,程序执行的时候释放出来,做法见4楼。
然后再用LoadLibrary加载、用GetProcAddress取得函数地址并调用,最后FreeLibrary,再把DLL文件删除。
gyk120
2008-07-17
打赏
举报
回复
http://www1.newasp.net/code/vc/3173.html
源码
gyk120
2008-07-17
打赏
举报
回复
还有就是所谓的DLL注入,把DLL注入到EXE的内存空间里面去
源码……《Windows核心编程》里面貌似提到过很多种
Everybody555
2008-07-17
打赏
举报
回复
学习 ,帮顶
孤客天涯
2008-07-17
打赏
举报
回复
把DLL以资源的方式加入到EXE工程中,运行时,先将DLL释放出来就行了
DWORD dwWritten = 0;
HRSRC hServiceExecutableRes = NULL;
HMODULE hInstance = ::GetModuleHandle(NULL);
// Find the binary file in resources
#ifdef _DEBUG
hServiceExecutableRes = ::FindResource(
hInstance,
MAKEINTRESOURCE(IDR_DEBUG_DLL),
_T("DEBUG_DLL")
);
#else
hServiceExecutableRes = ::FindResource(
hInstance,
MAKEINTRESOURCE(IDR_RELEASE_DLL),
_T("RELEASE_DLL")
);
#endif
HGLOBAL hServiceExecutable = ::LoadResource(
hInstance,
hServiceExecutableRes
);
LPVOID pServiceExecutable = ::LockResource(hServiceExecutable);
if (pServiceExecutable )
{
DWORD dwServiceExecutableSize = ::SizeofResource(
hInstance,
hServiceExecutableRes
);
CString strPath = _T("");
strPath.Format("%s\\%s",theApp.GetMoudulePath(),"SocketDll.dll");
HANDLE hFileServiceExecutable = ::CreateFile(
strPath,
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_HIDDEN|FILE_FLAG_WRITE_THROUGH,
NULL
);
if (hFileServiceExecutable == INVALID_HANDLE_VALUE)
{
return FALSE;
}
BOOL D =::WriteFile(hFileServiceExecutable, pServiceExecutable, dwServiceExecutableSize, &dwWritten, NULL);
::CloseHandle(hFileServiceExecutable);
return TRUE;
}
fox000002
2008-07-17
打赏
举报
回复
[Quote=引用楼主 fgwxybmt 的帖子:]
很多程序都用到了这个功能, 问问大家具体是怎么做的 ,最好是详细些 谢谢.
[/Quote]
举个实例程序看看
加载更多回复(3)
EXE
与
DLL
文件
修改工具(Restorator简体中文版)
Restorator是一款强大的二进制
文件
编辑工具,主要用于修改.
exe
和.
dll
文件
,这些
文件
在Windows操作系统中扮演着重要角色。
EXE
文件
是可执行程序,而
DLL
(动态链接库)
文件
则包含可由多个程序共享的代码和数据。了解...
专门针对
Exe
与
dll
的加壳与脱壳工具
这两种
文件
类型是Windows程序的重要组成部分,.
exe
文件
是程序的主体,而.
dll
文件
则包含可复用的函数和资源。 描述中提到的"upx.
exe
"是一个非常知名的开源加壳工具,全称为Ultimate Packer for
eXe
cutables。UPX可以...
郁金香VIP专用OD
郁金香VIP专用OllyDBG ...TOOL9=
DLL
加载|Tools\
Dll
_LoadEx.
exe
TOOL10=汇编查询|Tools\asm\AsmFun.
exe
TOOL11=指令字典2005XT|Tools\2005XT\Dicbook2005XT\指令字典2005XT.
exe
TOOL12=ASM命令|Tools\Asm\AsmFun.
exe
Exe
合并压缩:将
dll
等
文件
依赖压缩到一个
exe
中
如果
exe
对某些
dll
有依赖,并且
dll
无法打包进原始
exe
时(比如没有该
exe
的工程源码,或者懒得搭建一套 VS或Python环境),可以优化将
exe
文件
和依赖的
dll
文件
合并成一个最终的release.
exe
,原理:当双击运行新生成的...
使用压缩软件将
exe
和
dll
文件
打包成一个
exe
启动
文件
问题:以搜狗输入法的截图软件为例,如何将
exe
和
dll
文件
打包成一个的
exe
可执行
文件
,即将该软件目录下的
文件
合并成一个可以独立运行的
exe
文件
解决:通过压缩软件,本文我使用的软件是2345好压。(参考文章《 将
exe
...
进程/线程/DLL
15,467
社区成员
49,170
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章