位置: 首页»数据恢复 »重装系统后加密文件夹数据恢复 复制地址

重装系统后加密文件夹数据恢复

重装系统后加密文件夹数据恢复

 

EFS加密解密实例分析,让EFS加密文件重生,本文主要以恢复密钥为基础解决;

前言:公司一位同事的电脑中病毒,无药可救,帮她还原系统后才发觉她的D盘有部分文件无法打开使用,原因是这位MM竟然给自己的文件用了WINDOWS自带的EFS加密了。哎,真是骑虎难下!!万不得已,只得寻找相关技术资料并试图解密……

开始掌握和了解加密原理:

大家知道,EFS加密实际上综合了对称加密和不对称加密:

(1)随机生成一个文件加密密钥(叫做FEK),用来加密和解密文件。
(2)这个FEK会被当前帐户的公钥进行加密,加密后的FEK副本保存在文件$EFS属性的DDF字段里。
(3)要想解密文件,首先必须用当前用户的私钥去解密FEK,然后用FEK去解密文件。
看到这里,似乎EFS的脉络已经很清晰,其实不然,这样还不足于确保EFS的安全性。系统还会对EFS添加两层保护措施:

  1)Windows会用64字节的主密钥(Master Key)对私钥进行加密,加密后的私钥保存在以下文件夹:
%UserProfile%\Application Data\Microsoft\Crypto\RSA\SID  。提示 Windows系统里的各种私有密钥,都用相应的主密钥进行加密。Windows Vista的BitLocker加密,也用其主密钥对FVEK(全卷加密密钥)进行加密。

  2)为了保护主密钥,系统会对主密钥本身进行加密(使用的密钥由帐户密码派生而来),加密后的主密钥保存在以下文件夹:%UserProfile%\Application Data\Microsoft\Protect\SID 。

通过上面简单的介绍,我们可以得到这个结论,就是我们如果要对EFS进行解密必须要一下满足以下两点:

(1)必须知道该被删帐户的密码:没有帐户密码,就无法解密主密钥。因为其加密密钥是由帐户密码派生而来的。

(2)该被删帐户的配置文件必须存在:加密后的私钥和主密钥(还包括证书和公钥),都保存在配置文件里,所以配置文件万万不可丢失,否则就会彻底任务失败。

可能大家会想,只需新建一个同名的用户帐户,然后把原来配置文件复制给新帐户,不就可以解密EFS文件了?原因在于帐户的SID,因为新建用户的SID不可能和老帐户一样,所以常规方法是不可能奏效的。我们必须另辟蹊径,让系统再造一个完全一样的SID!

下面就看我的具体步骤:
 
(1)把新系统进行GHOST备份。

(2)找一张DOS下的支持NTFS 的EasyRecovery光盘,使用EasyRecovery 找回账户配置文件(具体能不能找回该配置文件,就要看大家的运气了,还好我的运气不错,找到了,不然就不知道怎么向MM交代了,呵呵)。然后把找到的用户配置文件另存到D盘。

 

(3)还原第一步做的GHOST的备份,进入系统,找到刚刚我们恢复的账户配置文件,

(4)再造SID,首先确认帐户的SID,这里可以进入以下文件夹:D:\华港用户\Application Data\Microsoft\Crypto\RSA
在其下应该有一个以该帐户的SID为名的文件夹,例如是S-1-5-21-1214440339-1078145449-1343024091-1004(RID为1004)现在我们要设法让新建帐户同样具有1004的RID,这样就能达到目的。

 

在Windows中,下一个新建帐户所分配的RID是由HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注册表项的F键值所确定的。F键值是二进制类型的数据,在偏移量0048处的四个字节,定义下一个帐户的RID。那么也就是说,只需要修改0048处的四个字节,就能达到目的(让新建帐户获得1004的RID)!

默认情况下,只有system帐户才有权限访问HKEY_LOCAL_MACHINE\SAM,这里在CMD命令提示符窗口,运行以下命令,以system帐户身份打开注册表编辑器:
psexec -i -d -s %windir%\regedit.exe

 

提示 可以在以下网站下载psexec:
http://www.sysinternals.com/Utilities/PsExec.html

(5)定位到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注册表项,双击打开右侧的F键值。

(6)这里要说明一下,Windows是以十六进制、而且以反转形式保存下一个帐户的RID。什么意思呢?也就是说,如果是1004的RID,对应十六进制就是03EC,但是我们必须把它反转过来变成EC03,再扩展为4个字节,就是EC 03 00 00。所以,我们应该把F键值的0048偏移量处,把其中四个字节改为“EC 03 00 00”。

 

(7)重启计算机!重启以后,新建一个同名帐户“华港用户”,它的SID应该和以前是完全一样。如果不相信的话,可以借助GetSID或者PsGetSID等工具测试一下。

(8)接下来的就非常简单了,用新建的“华港用户”帐户身份登录系统,随便加密一个文件,然后注销,用管理员帐户登录系统,把原来保留的配置文件覆盖到”C:\Documents and Settings\华港用户“文件夹。再用”华港用户“帐户登录系统,现在可以解密原来的EFS文件了。


前几天遇到了在NTFS格式硬盘上,EFS加密文件无法打开的情况,于是便上网求助。对于没有备份证书就用镜像重做系统的情况网上各种传说都是无解,就是说文件已经没得救了。因为看到各种各样关于EFS加密系统的资料都说其很强大,所以我也一度要放弃了,但最终还是误打误撞地挽救了我的资料。因为自己做的工作比较多,事后对各个步骤进行了检验,差不多有以下一些重要的步骤可以达到拯救加密文件的目的。
    要拯救资料的前提是你重做系统所用的镜像和原来所用的镜像相同,其实就是要保证sid不变。
    下面就开始拯救我们的资料吧:
一、打开我的电脑->工具->文件夹选项->查看,去掉“隐藏受保护的操作系统文件”前面的对勾,这时会出现提示,点“是”即可,然后选中“显示所有文件和文件夹”,点确定
二、查看被加密文件的属性->高级->详细信息,在弹出的对话框中可以看到证书缩略,将其记下来,或者不关闭对话框。
三、利用“免安装版”finaldata或PowerDataRecovery(建议用finaldata,因为finaldata可以按时间排列,而PowerDataRecovery是按文件夹排列,你还要打开每个文件夹去找你要的文件,非常麻烦,但也可行)恢复C盘里的数据,这个速度有点慢,你可以去吃个饭先。在丢失的目录下,按修改时间排列,找到文件名和证书缩略相同的文件,和它同时产生的应该还有两个文件,将三个文件一起恢复,放在一个文件夹内备用。需要注意的是,该文件夹命名要简单,且放在某个盘的根目录下,如存放在g:\123\内。
四、开始->运行->cmd,输入“attrib g:\123\*.* +s +h”
五、下面的操作是在下面这个文件夹进行的
C:\Documents and Settings\Administrator\Application Data\Microsoft\
将文件名与证书缩略相同的文件复制到下面的文件夹
SystemCertificates\My\Certificates
将文件名最长的文件复制到下面的文件夹
Crypto\RSA\S-1-5-21-1757981266-1004336348-682003330-500(对于S开头的这个文件夹名称你的不会是相同的,但是格式是一样的,这就是传说中的sid)(个人觉得这个文件并不重要)
将剩下的一个文件复制到下面的文件夹
Protect\S-1-5-21-1757981266-1004336348-682003330-500(注解同上)
六、重启计算机,再看看你的文件是否已被解密了呢

本文是专门针对没有备份证书而用镜像重做系统的情况提出的解决办法,对于其他情况是否有效还需要检验。

注:1、有人说用Advanced.EFS.Data.Recovery,这个倒是还行,但是它的恢复会出现乱码,有些文件依然打不开,所以建议按上述步骤来操作。
2、我原来的用户名就是administrator,所以是否需要原来的用户名和密码,我不太清楚。当然,记得用户名和密码最好
3、在整个过程中没有对任何系统文件进行修改,也不需要接触注册表,所以对系统没有任何影响。
4、一家之言,仅供参考,有不完善的地方希望各位指教

分享到:
标签:
上一篇:广州修电脑注意了!暴光一些电脑维修的黑幕
下一篇:本地连接打叉出现感叹号出现“本地连接受限或无连接”的几种原因

本文现有0条评论:

    欢迎您发表评论:




点击这里给广州数据恢复发消息点击这里给广州电脑维修发消息