出于某些原因,我正在使用此处描述的方法:http://geekswithblogs.net/TechTwaddle/archive/2009/10/16/how-to-embed-an-exe-inside-another-exe-as-a.aspx
它从嵌入文件的第一个字节开始,逐个经过4.234.925个字节!完成大约需要40秒。
还有其他方法可以将嵌入文件复制到硬盘吗? (我可能在这里错了,但我认为嵌入式文件是从内存中读取的)
感谢。
答案 0 :(得分:2)
一旦知道嵌入式exe的位置和大小,就可以一次写入。
LPBYTE pbExtract; // the pointer to the data to extract
UINT cbExtract; // the size of the data to extract.
HANDLE hf;
hf = CreateFile("filename.exe", // file name
GENERIC_WRITE, // open for writing
0, // no share
NULL, // no security
CREATE_ALWAYS, // overwrite existing
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no template
if (INVALID_HANDLE_VALUE != hf)
{
DWORD cbWrote;
WriteFile(hf, pbExtract, cbExtract, &cbWrote, NULL);
CloseHandle(hf);
}
答案 1 :(得分:1)
正如该男子所说,每个WriteFile调用写下更多文件(或整个文件)。每个字节的WriteFile调用将是非常慢的是。