发新话题
打印

[转载]DataExplore使用技巧1 使用脚本来进行数据恢复

[转载]DataExplore使用技巧1 使用脚本来进行数据恢复

文章作者:wened

DataExplore软件支持脚本操作,编写Javascript脚本可以实现复杂的磁盘扇区查找,可以把特定的扇区复制成文件等,达到恢复数据的目的.

运行DataExplore后,在工具条上有个"脚本"按钮,点出脚本视图,左边是代码编辑窗口,右边是执行按钮和进度条,下面是代码执行的输出信息,可

以输出扇区位置等等.

本人将陆续放上编写好的脚本文件,会说明使用场合,功能,希望对大家有所帮助.

脚本接口函数说明:

1. int Msg(LPSTR lpszMsg);
弹出消息,消息内容是 lpszMsg 指向的字符串,如果想弹出消息框显示"您好",就这样调用: DataExplore.Msg("您好");

2. int SetState(LPSTR lpszMsg);
设置进度条的文本状态(很少使用)

3. int OpenDisk(LPSTR szDriverName);
打开磁盘或普通文件,磁盘需要在Window下能看到的.
文件: 如果想打开文件,可以输入文件的全路径,如 DataExplore.OpenDisk("C:\\Folder\\Disk.img"); 将打开 C:\Folder\Disk.img文件.多个

文件可以当成一个大文件打开,各个文件间以分号";"隔开,比如一个分区做成2个镜像文件,可以这样打开:

DataExplore.OpenDisk("C:\\Disk01.img;C:\\Disk02.img");
磁盘: 硬盘0 -> HD0 ,硬盘1 -> HD1 ,C盘 -> C: ,D盘 -> D: 依次类推, 如打开硬盘0: DataExplore.OpenDisk("HD0");

4. int CloseDisk();
关闭磁盘文件,对应于 OpenDisk

5. int ReadSector(int nSectorNo,int nOffSize);
读取扇区的某个字节,输入参数里 nSectorNo 表示读取的扇区号, nOffSize 表示该字节在扇区里的位置, 返回的是读出的字节,比如要读取63

扇区的第128字节: v = DataExplore.ReadSector(63,127); 注意在Jscript里面索引下标都是从0 开始的,这里的127(从0)表示是第128(从1计

数)字节

6. int WriteSector(int nSectorNo,int nValue,int nOffSize);
写入磁盘扇区,该函数未实现,安全方面考虑的

7. int FlushDisk(int nSectorNo);
批写入磁盘扇区,该函数未实现,安全方面考虑的

8. int OpenFile(LPSTR szFilePathName,int nFormat);
打开普通的文件
szFilePathName : 文件的路径名称, 如: C:\\Folder\\Data.img
nFormat : 打开文件的方式,可以是 FILE_READ,FILE_WRITE,FILE_READWRITE,FILE_CREATE,FILE_NOTRUNCATE,FILE_NOINHERIT 的组合方式
只读方式打开文件: DataExplore.OpenFile("C:\\File0.dat",FILE_READ);
写的方式打开文件: DataExplore.OpenFile("C:\\File0.dat",FILE_WRITE);
写的方式打开文件,如果该文件不存在就创建: DataExplore.OpenFile("C:\\File0.dat",FILE_WRITE|FILE_CREATE);
读写方式打开文件: DataExplore.OpenFile("C:\\File0.dat",FILE_READWRITE);

9. int CloseFile();
关闭打开的文件,对应于 OpenFile

10. int ReadFile();
从文件读出一个字节

11. int WriteFile(int nValue);
写入一个字节到文件

12. int SeekFile(int nOffSize,int nFormat);
设置文件指针的位置,一般很少用到这个函数

13. int FlushFile();
将文件缓存刷新到硬盘,一般很少用到,因为文件在关闭时会自己写入磁盘

14. int InsertColumn(int nCol,LPSTR lpszName);
往结果窗口中插入一列信息
nCol : 插入列的位置
lpszName : 列名
如在结果列表窗口中插入2列,第一列是开始扇区号,第二列是扇区信息:
DataExplore.InsertColumn(0,"开始扇区号");
DataExplore.InsertColumn(1,"扇区信息");


15. int DeleteAllItems();
删除结果窗口中的所有行

16. int InsertItem(int nItem,LPSTR lpszText);
往结果窗口插入一行

17. int SetItemText(int nItem,int nCol,LPSTR lpszText);
设置结果窗口中nItem行nCol列的文本

18. int GetItemCount();
得到结果窗口中的行数

19. BSTR GetItemText(int nItem,int nCol);
得到结果窗口中nItem行nCol列的文本

20. int SetSize();
刷新结果窗口的内容

21. int SetReadRemote(int bRemote);
设置是否读取远程数据

22. int ConnectRemote(LPSTR szIP);
连接远程主机,远程主机上需要运行DataExploreServer.exe,并且远程主机必须能ping通
如:
DataExplore.SetReadRemote(1);
DataExplore.ConnectRemote("192.168.0.1");

23. int CloseRemote();
关闭远程连接

24. int GetStop();
返回用户是否停止执行,如果用户在执行后按下停止按钮,本函数将返回 S_OK,否则返回 S_FALSE

25. void SetPos(int nPos);
设置进度条的当前进度

26. void SetRange(int nRange);
设置进度条的范围

27. int CopyFile(LPSTR szFileSour,LPSTR szFileDest);
复制磁盘的普通文件,可以实现chk后文件扩展名的辨认,如将文件A.dat复制到文件B.mp3:
DataExplore.CopyFile("C:\\A.dat","D:\\Folder\\B.mp3");

脚本恢复例子1:
收到一个mm的u盘镜像文件,情况是打印文件是感染病毒,删除u盘上的doc文档.
我用一般的方式看到被删除的文件,大小是0,开始簇号0,无法恢复,使用搜索doc文件,效果不好,就采取脚本的方式,思路是搜索到doc的文件头的话,就按连续扇区的的方式复制出数据到普通文件.在这个u盘里所有的以doc文件开头的扇区都被复制成200K大小的以doc为扩展名的文件,文件自动编号.
脚本文件下载: http://k888.k989.com/wened/spt/sector2doc.txt
运行这个脚本,需要注意几个地方:
1.修改var path = "D:\\AAA\\"; 这是存放复制出来的文件存放的位置,默认需要在D盘下手工建立 AAA 文件夹. 您可以修改这个路径,让复制出来的文件存放到别的路径下,注意是 \\ 哦
2.修改 b = DataExplore.OpenDisk("d:\\usb"); 我现在使用的是镜像文件,如果您想直接读U盘,请改成U盘的盘符比如M盘: b = DataExplore.OpenDisk("M:");
3.修改 var sector_count = 200*1000/512; 默认是每个文件存成200K左右大小,200K大约是200*1000字节,每扇区的字节数是512,所有就除以512,得到要复制的扇区数目.
4.修改 var range = 128*1000*1000/512; 这是U盘文件的大小, 128M 的U盘,大小大约是 128*1000*1000 字节,换算成扇区数需要除以512.
5.修改 var ext = ".doc"; 默认的复制成的文件以doc为扩展名
6.修改 if( ar[0] == 208 && ar[1] == 207 ) DOC文件头的前2个字节分别是208和207,我只判断每个扇区的前2个字节,如果是和doc文件头匹配,就从这个扇区开始连续复制出sector_count个扇区成文件.您如果要恢复别的类型文件,请研究它的文件头,然后修改这里.
7.如果还有什么不明白,请跟帖提问.

TOP

请问在那里可以下载这个软件的破解版?我的移动硬盘丢失了分区表信息,我用了dataexplore的确试用版,可惜只能导出4个文件.

TOP

引用:
下面是引用馅饼于2005-09-18 17:51发表的:
请问在那里可以下载这个软件的破解版?我的移动硬盘丢失了分区表信息,我用了dataexplore的确试用版,可惜只能导出4个文件.
为什么不用easyrecovery?
破解类这里多www.crsky.net
曾几何时,有人对我说:装B遭雷劈。我说:去你妈的。于是,这个人又对我说:如果再说脏话,上帝会惩罚你的。我说:我操上帝。结论:彪悍的人生不需要上帝。

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

引用:
下面是引用硬盘坏道于2005-09-21 00:15发表的:
这个是PC3K上带的恢复软件,有的下载也用不成的,要配合3K的卡才可以用的{注明:PC3K是俄罗斯研制的对硬盘可以编写固件和恢复原厂设置等反正功能超牛,DataExplore要有这个卡才可以用的},呵呵 [s:45]
更正:DataExplore是正宗国产,上海一位大哥写的,相当不容易

Acelab为PC3K开发的数据恢复软件叫DataExtractor

TOP

引用:
下面是引用小破坏神于2005-11-08 19:48发表的:
真的很好,但在下有个很棘手的问题需要大家的帮忙:
由坏道引起的文件不能被拷贝,硬盘数据能否修复或恢复?
如果修复了0磁道,硬盘数据会全部丢失吗?
硬盘坏道被修复后,硬盘数据能否被拷贝出来?

.......
由坏道引起的文件不能被拷贝,硬盘数据能否修复或恢复?
——对于个人来说用一些可以忽略扇区的强制拷贝工具可以得到略有残缺的文件,凑合着用吧,你舍得为了几个文件把硬盘废了再花上若干千元么?badcopy好像就可以

如果修复了0磁道,硬盘数据会全部丢失吗?
——这个没法回答,你应该是受到网上以讹传讹文章的误导

硬盘坏道被修复后,硬盘数据能否被拷贝出来?
——你如果用的是加入P-list级的修复,当然会把全盘数据搞乱,你可以理解成是另类的全盘清零吧

小弟弟我在用效率源修复希睫80G硬盘,没有对其进行格式化,只对硬盘坏道进行了修复,硬盘修复成功,但数据全部丢失,就跟一个新的硬盘一样,这个是怎么一回事啊??
——这就是严重不遵守规矩造成的恶果,不管是做硬盘维护还是数据恢复,备份数据、保护现场都是最要做的第一件事。效率源是P-list级的修复,当然会造成你全盘数据玩完。

TOP

引用:
下面是引用小破坏神于2005-11-09 14:59发表的:



那这位大哥,我的硬盘数据还能恢复吗?用EasyRecovery Professional可以吗?
用EasyRecovery Professional软件恢复时,现在都"DIR15.BMP/或"其他的后缀名,该怎么办
个人来讲,放弃吧,别想了,全盘扇区随机错位,不可能用软件恢复出来的

企业的话,花上几千块钱送出去找高手(国内能做这个活儿的没几个)纯手工搞,还能回来点儿东西(多少不确定)

用Easy的 RAW 模式可以出一些如你所说的DIR15.BMP之类的东西,你自己挑挑能用的留下,有多少算多少吧

最重要的是要吸取教训

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

发新话题