注意事项:
发现win10的记事本文件不适用于下面的代码, 猜测可能需要DLL文件
因此本次使用不需要加载dll的"飞鸽传书"来实现
题目1)-将记事本的.exe文件读取到内存,并返回读取后在内存中的地址.
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
BYTE* buffer = nullptr;
DWORD fileSize = 0;
void LoadToMemory() {char* road = "D:\\Ddisk\\goodThing\\fg.exe";//设置文件路径FILE *note = NULL;fopen_s(¬e, road, "rb");//打开文件fseek(note, 0, SEEK_END);//将文件指针移到末端fileSize = ftell(note);//获取文件指针位置得知文件大小fseek(note, 0, SEEK_SET);//将文件指针移到开始位置buffer = (BYTE*)malloc(fileSize);//根据文件大小分配内存fread(buffer, 1, fileSize, note);//将文件指针指向的内容读取到内存中fclose(note);//关闭文件指针
}
int main() {LoadToMemory();printf("%x\n",);
}
题目2)-将内存中的数据存储到一个文件中,(.exe格式),然后双击打开,看是否能够使用
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
BYTE* buffer = nullptr;
DWORD fileSize = 0;
void LoadToMemory() {char* road = "D:\\Ddisk\\goodThing\\fg.exe";//设置文件路径FILE *note = NULL;fopen_s(¬e, road, "rb");//打开文件fseek(note, 0, SEEK_END);//将文件指针移到末端fileSize = ftell(note);//获取文件指针位置得知文件大小fseek(note, 0, SEEK_SET);//将文件指针移到开始位置buffer = (BYTE*)malloc(fileSize);//根据文件大小分配内存fread(buffer, 1, fileSize, note);//将文件指针指向的内容读取到内存中fclose(note);//关闭文件指针
}
int main() {LoadToMemory();char* road = "D:\\Ddisk\\goodThing\\hello.exe";FILE *bomb = NULL;fopen_s(&bomb, road, "wb");size_t written = fwrite(buffer, 1, fileSize, bomb);fclose(bomb);
}