数据恢复技术:从破损的虚拟机硬盘文件中 恢复自己的程序代码数据(创新代码)
2009-02-25 20:18
309 查看
/*原理:由于虚拟机使用的是二进制进行存储,要想从中恢复自己的程序数据,就得找到数据恢复的标志字。 一般而言,我们写的程序开头必然有:#include这一行,故可以作为找回自己数据的标志字。 思想源泉:用记事本打开二进制文件,英文字母是可见的。-------英文字母的二进制表示即自己本身,一个字母占一字节。 如此可以进行 任意一种数据挖掘(破解软件时)或者查询。 -----------代码虽然很简单,但也很有效。昨天,我的虚拟机XP系统不能正常进入后,我就相当的苦恼,可惜了我以前的VC6代码了。当时还想,我总不能碰到一个微软的人,再叫人家帮着解决这问题吧?今天去吃晚饭的时候,灵感突发,哈哈,我也弄个数据恢复的程序,没想到还真成了! -----------技术无处不在,只有想不到,没有做不到的。 */ #include<iostream> using namespace std; int Len=1024; void recover_data(const char *filename,const char * save_fname="recove_data.txt"); int main() { cout<<"设定间隔长度:"<<endl; cin>>Len; if(Len<=0) Len=1024; char n[256],m[256]; cout<<"请输入恢复数据的文件及导出数据的文件名:"<<endl; cin>>n>>m; recover_data(n,m); return 0; } void recover_data(const char *filename,const char * savename) { FILE* file=fopen(filename,"rb"); FILE* sfile=fopen(savename,"w"); if(file&&sfile==0) cout<<"open file error!"<<endl; cout<<"请你输入检索的关健词:"<<endl; char key[256],buf[256]; cin>>key; char *buffer=new char[Len+1]; buffer[Len]=0; while(feof(file)!=EOF) { if(buf[0]=fgetc(file)==key[0]) { int i,l=strlen(key); for(i=1;i<l;i++) if(buf[i]=fgetc(file)!=key[i]) break; if(i==l) { cout<<"/n"; char ch; do{ strncpy(buffer,key,l); if(fread(buffer+l,1,Len-l,file)==EOF) { cout<<"End of file!"<<endl; exit(1); } cout<<buffer<<endl; fprintf(file,"%s",buffer);//输出到文件 cout<<"是否继续输出?(y|n)"<<endl; cin>>ch; if(ch=='y'||ch=='Y') continue; else break; } while(1); } } } delete []buffer; fclose(file); fclose(sfile); } |
相关文章推荐
- 从虚拟机硬盘文件.vmdk恢复数据
- HP存储raid5两块硬盘离线lvm下vxfs文件系统恢复数据过程
- 移动硬盘提示未格式化,显示0字节,文件系统为RAW格式的数据恢复
- 数据恢复软件(二):用C++重写恢复BMP位图文件的小程序
- HP存储raid5两块硬盘离线lvm下vxfs文件系统恢复数据方案
- 虚拟机硬盘文件丢失,通过xx-flat.vmdk恢复方法 .
- 恢复Hyper-V虚拟机丢失的数据文件过程
- oracle下实现恢复一个丢失的数据文件的代码
- 如何自己恢复丢失的文件丨迅龙数据恢复丨
- 自己动手恢复硬盘丢失数据
- SequenceInputStream类的简单介绍。以及用该类合并集合文件数据的程序代码。
- 虚拟硬盘文件+Mac HFS文件系统的数据恢复
- 虚拟机硬盘文件丢失,通过xx-flat.vmdk恢复方法
- 数据持久化的本质 - 数据保存成文件,存储到程序的沙盒中 -在应用程序结束时,将内存中的数据以文件的形式搬到(保存到)硬盘中
- 恢复文件服务器硬盘数据
- 硬盘丢失的数据怎么恢复丨什么方法可以恢复硬盘文件呢丨
- 温州ESXI6.0虚拟机文件丢失数据恢复案例
- 虚拟机虚拟硬盘文件丢失,通过xx-flat.vmdk恢复方法
- 简要分析JM8.6代码中foreman_part_qcif.yuv文件的YUV数据如何悄无声息地进入程序
- 数据恢复软件(一):一个恢复BMP位图文件的小程序