1、将一个的exe文件读取到内存中,并返回读取后在内存中的地址
我写了一个c++的helloworld程序。然后通过文件流观察大小。
1 #include2 void main() 3 { 4 FILE* fp=NULL; 5 int f1; 6 fp=fopen("C:/Users/newen/Desktop/hellow.exe","rb+"); 7 fseek(fp,0,SEEK_END); 8 f1=ftell(fp); 9 fclose(fp);10 printf("%d\n",f1);11 12 }
修改完后结果(与winhex对比完全相同)
代码部分。
1 #include2 #include 3 #include 4 void main() 5 { 6 FILE* fp=NULL; 7 int f1; 8 char *p=NULL; 9 int i=0;10 char ch=0x00;11 fp=fopen("C:/Users/newen/Desktop/hellow.exe","rb+");12 fseek(fp,0,SEEK_END);//定位到文件末尾13 f1=ftell(fp);14 15 p=(char*)malloc(f1);//动态分配内存16 memset(p,0,f1);//内存初始化17 18 fseek(fp,0,SEEK_SET);19 for(i=0;i
2、将内存中的数据存储到文件中,双击打开,看能否使用
1 #include2 #include 3 #include 4 void main() 5 { 6 FILE* fp=NULL; 7 FILE* fp2=NULL; 8 int f1; 9 char *p=NULL;10 int i=0;11 char ch=0x00;12 fp=fopen("C:/Users/newen/Desktop/hellow.exe","rb+");13 fseek(fp,0,SEEK_END);//定位到文件末尾14 f1=ftell(fp);15 16 p=(char*)malloc(f1);//动态分配内存17 memset(p,0,f1);//内存初始化18 19 fseek(fp,0,SEEK_SET);20 for(i=0;i
运行成功