1

由于某些原因,我使用此处描述的方法:http: //geekswithblogs.net/TechTwaddle/archive/2009/10/16/how-to-embed-an-exe-inside-another-exe-as-a .aspx

它从嵌入文件的第一个字节开始,一个一个地经过 4.234.925 个字节!完成大约需要 40 秒。

有没有其他方法可以将嵌入文件复制到硬盘?(我可能在这里错了,但我认为嵌入的文件是从内存中读取的)

谢谢。

4

2 回答 2

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);
}
于 2010-02-14T20:54:13.327 回答
1

正如那个人所说,每个 WriteFile 调用写入更多文件(或整个文件)。每个字节的 WriteFile 调用会非常慢,是的。

于 2010-02-14T20:51:50.127 回答