#include <windows.h>
#include <iostream>
#include <fstream>
using namespace std;
void EmbedData(const char* exePath, const char* dataPath) {
ifstream exeFile(exePath, ios::binary | ios::ate);
if (!exeFile.is_open()) {
cout << "无法打开可执行文件" << endl;
return;
}
streampos exeSize = exeFile.tellg();
char* exeData = new char[exeSize];
exeFile.seekg(0, ios::beg);
exeFile.read(exeData, exeSize);
exeFile.close();
ifstream dataFile(dataPath, ios::binary | ios::ate);
if (!dataFile.is_open()) {
cout << "无法打开数据文件" << endl;
delete[] exeData;
return;
}
streampos dataSize = dataFile.tellg();
char* data = new char[dataSize];
dataFile.seekg(0, ios::beg);
dataFile.read(data, dataSize);
dataFile.close();
ofstream outFile("modified.exe", ios::binary);
outFile.write(exeData, exeSize);
outFile.write(data, dataSize);
outFile.close();
delete[] exeData;
delete[] data;
cout << "数据嵌入成功" << endl;
}
int main() {
EmbedData("original.exe", "data.txt");
return 0;
}