用達(dá)思SQL數(shù)據(jù)庫(kù)修復(fù)軟件怎么修復(fù)中了后綴.[mr.hacker@tutanota.com]的勒索病毒加密的數(shù)據(jù)庫(kù)?(一卡通綜合管理平臺(tái))
2.33GB的sql數(shù)據(jù)庫(kù)被后綴.[mr.hacker@tutanota.com]加密
最近幾天有一個(gè)一卡通綜合管理平臺(tái)的數(shù)據(jù)庫(kù)被勒索病毒加密了,因?yàn)檎麄€(gè)服務(wù)器只有sql數(shù)據(jù)庫(kù)是重要的,而且客戶(hù)拒絕向勒索病毒的黑客繳納贖金,客戶(hù)聯(lián)系達(dá)思科技,希望達(dá)思科技能夠幫助修復(fù)數(shù)據(jù)庫(kù)。
由于中了勒索病毒的客戶(hù)越來(lái)越多,達(dá)思科技數(shù)據(jù)庫(kù)修復(fù)團(tuán)隊(duì)也希望用這個(gè)案例,把整個(gè)勒索病毒加密的sql數(shù)據(jù)庫(kù)修復(fù)的過(guò)程展示出來(lái),以便幫助更多的受到勒索病毒威脅的公司降低隨時(shí)。
一、SQL數(shù)據(jù)庫(kù)修復(fù)前的準(zhǔn)備工作
1.1 環(huán)境準(zhǔn)備:
1、操作系統(tǒng):推薦使用windows server2016或2019
2、SQL數(shù)據(jù)庫(kù)環(huán)境:從2000開(kāi)始安裝(如何安裝,網(wǎng)上有相應(yīng)的教程),按照版本依次安裝,可以安裝SQL Server2000、2005、2008、2008R2、2012、2014、2016、2017、2019等;
3、硬盤(pán):修SQL數(shù)據(jù)庫(kù)對(duì)硬盤(pán)讀寫(xiě)要求較高,推薦使用m.2接口(NVMe協(xié)議)的SSD固態(tài)硬盤(pán)。
內(nèi)存:建議64GB以上
1.2判斷SQL Server數(shù)據(jù)庫(kù)的版本?
如果客戶(hù)可以準(zhǔn)確提供SQL數(shù)據(jù)庫(kù)版本,就不需要自己檢測(cè)版本了,如果客戶(hù)不確定,我們也可以自己判斷,用winhex打開(kāi)sql數(shù)據(jù)庫(kù)的mdf文件,跳轉(zhuǎn)到第144扇區(qū),看看00012060X4和00012060X5兩個(gè)字節(jié),看看16BIT對(duì)應(yīng)的數(shù)值,就可以準(zhǔn)確判斷SQL數(shù)據(jù)庫(kù)的版本,準(zhǔn)確判斷SQL版本來(lái)確定我們修復(fù)數(shù)據(jù)庫(kù)時(shí)需要選擇的輸出環(huán)境的版本。
請(qǐng)看下圖,本案例庫(kù)數(shù)值是661,說(shuō)明版本是SQL SERVER 2008R2
圖一:判斷數(shù)據(jù)庫(kù)版本
不同SQL數(shù)據(jù)庫(kù)版本對(duì)應(yīng)的內(nèi)部數(shù)據(jù)庫(kù)版本數(shù)字如下:
SQL Server數(shù)據(jù)庫(kù)版本 | 對(duì)應(yīng)的內(nèi)部數(shù)據(jù)庫(kù)版本(數(shù)字) |
SQL Server 2017 | 869 |
SQL Server 2016 | 852 |
SQL Server 2014 | 782 |
SQL Server 2012 | 706 |
SQL Server2012 CTP1 | 684 |
SQL Server 2008 R2 | 665 |
SQL Server 2008 | 661 |
SQL Server 2005 with vardecimal enabled | 612 |
SQL Server 2005 | 611 |
SQL Server 2000 | 539 |
SQL Server 7.0 | 515 |
注意:如果前512扇區(qū)或2048或4096扇區(qū)被病毒破壞,就需要客戶(hù)提供具體的數(shù)據(jù)庫(kù)版本了。
1.3檢測(cè)SQL數(shù)據(jù)庫(kù)文件,判斷修復(fù)成功率
1、打開(kāi)達(dá)思SQL數(shù)據(jù)庫(kù)修復(fù)軟件,點(diǎn)擊“檢查文件”,測(cè)試數(shù)據(jù)庫(kù)損壞程度。
圖二:檢測(cè)數(shù)據(jù)庫(kù)文件的損壞率
打開(kāi)檢測(cè)文件對(duì)話(huà)框后,點(diǎn)擊“選擇文件”選取相應(yīng)目錄后再點(diǎn)擊“開(kāi)始檢測(cè)”。
圖三:檢測(cè)數(shù)據(jù)庫(kù)文件的損壞率
掃描結(jié)束后,重點(diǎn)看一下錯(cuò)誤頁(yè)和空頁(yè)的數(shù)量和比例,如果空頁(yè)和壞頁(yè)比例小于5%以下,則數(shù)據(jù)庫(kù)修復(fù)成功率更高。
圖四:檢測(cè)數(shù)據(jù)庫(kù)文件的損壞率
請(qǐng)看圖,本案例的空頁(yè)為4720,占比為1.5%,錯(cuò)誤頁(yè)(損壞的頁(yè))為142,占比幾乎為零,因此可以判斷,數(shù)據(jù)庫(kù)修復(fù)的成功率很高!
二、SQL數(shù)據(jù)庫(kù)修復(fù)過(guò)程
1、關(guān)于參考庫(kù)(為什么需要參考庫(kù)?):
由于SQL數(shù)據(jù)庫(kù)的損壞的不確定性,很有可能系統(tǒng)表結(jié)構(gòu)、存儲(chǔ)過(guò)程等重要參數(shù)受損的情況下,我們?nèi)绻型Y(jié)構(gòu)的好的老備份,達(dá)思軟件可以把好的表結(jié)構(gòu)提取出來(lái),再把數(shù)據(jù)庫(kù)填進(jìn)去。
2、關(guān)于內(nèi)置的表結(jié)構(gòu)(達(dá)思軟件打開(kāi)數(shù)據(jù)庫(kù)文件時(shí)對(duì)話(huà)框可選):
達(dá)思軟件內(nèi)置了金蝶、用友、管家婆、浪潮、思迅等品牌的數(shù)十個(gè)版本的表結(jié)構(gòu),在沒(méi)有同結(jié)構(gòu)的參考庫(kù)的情況下,可以選擇內(nèi)置表結(jié)構(gòu)作為參考庫(kù),以提高數(shù)據(jù)庫(kù)修復(fù)的準(zhǔn)確率和成功率。
3、達(dá)思軟件修復(fù)SQL數(shù)據(jù)庫(kù)的過(guò)程
在達(dá)思軟件界面中選擇“打開(kāi)文件”,選擇需要修復(fù)的損壞的sql數(shù)據(jù)庫(kù)以及和壞庫(kù)同結(jié)構(gòu)的好數(shù)據(jù)庫(kù)作為參照庫(kù),開(kāi)始修復(fù)損壞的SQL數(shù)據(jù)庫(kù)。
圖五:打開(kāi)需要修復(fù)的數(shù)據(jù)庫(kù)文件
圖六:打開(kāi)需要修復(fù)的數(shù)據(jù)庫(kù)文件
選擇好需要修復(fù)的損壞的SQL數(shù)據(jù)庫(kù)文件后,再選擇事先準(zhǔn)備好的相同表結(jié)構(gòu)的好庫(kù)做參照。
圖七:數(shù)據(jù)庫(kù)修復(fù)的必要選項(xiàng)
如果客戶(hù)可以提供老的備份作為參考,就優(yōu)先選擇老的備份作為參考。
如果客戶(hù)無(wú)法提供老的備份作為參考,則可以選擇達(dá)思軟件內(nèi)置的版本作為參考。
如果達(dá)思軟件內(nèi)置也沒(méi)有,這可以在客戶(hù)的數(shù)據(jù)庫(kù)環(huán)境下新建同結(jié)構(gòu)的空庫(kù)作為參考。
因此,參考庫(kù)的優(yōu)先級(jí)為:同一個(gè)數(shù)據(jù)庫(kù)的好的老備份>同結(jié)構(gòu)的的好庫(kù)>達(dá)思軟件內(nèi)置的相同版本>相同環(huán)境下新建的表結(jié)構(gòu)一樣的空庫(kù)
圖八:自動(dòng)解析數(shù)據(jù)庫(kù)文件
選擇完成后,點(diǎn)擊“開(kāi)始恢復(fù)”!
達(dá)思軟件將會(huì)自動(dòng)修復(fù),根據(jù)不同大小以及損壞程度的不同,一般在幾分鐘內(nèi)就可以完成展開(kāi)。
SQL數(shù)據(jù)庫(kù)展開(kāi)后,就可以在達(dá)思軟件界面中查看數(shù)據(jù)庫(kù)的修復(fù)結(jié)果和數(shù)據(jù)。如下圖:左側(cè)紅框中顯示的是所有表,右側(cè)藍(lán)框中是修復(fù)后的數(shù)據(jù)庫(kù)文件的解析結(jié)果報(bào)告。
圖九:數(shù)據(jù)庫(kù)文件解析結(jié)果報(bào)告
從左側(cè)欄中雙擊某個(gè)表,可以在右側(cè)看到修復(fù)后該表里的數(shù)據(jù),這個(gè)時(shí)候可以檢查一下重要的表數(shù)據(jù)是否正確。
圖十:核對(duì)表數(shù)據(jù)是否正確
打開(kāi)SQL Server2008R2,登陸SQL SERVER,附加好的參照庫(kù)(提前復(fù)制出一份),然后,清空參考庫(kù)里面的表數(shù)據(jù)作為接收庫(kù)。
圖十一:在sql server里打開(kāi)參考數(shù)據(jù)庫(kù)
圖十二:附加好的參考庫(kù)(清空表數(shù)據(jù)作為接收庫(kù))
圖十三:附加好的參考庫(kù)(清空表數(shù)據(jù)作為接收庫(kù))
圖十四:附加好的參考庫(kù)(清空表數(shù)據(jù)作為接收庫(kù))
附加完成后,右鍵選擇該庫(kù),選擇“新建查詢(xún)”輸入指令完成清除表數(shù)據(jù)
圖十五:新建查詢(xún)(清空表數(shù)據(jù)作為接收庫(kù))
清空表數(shù)據(jù):
清空表數(shù)據(jù),保留視圖,存儲(chǔ)過(guò)程,函數(shù),以及保留表約束、觸發(fā)器等等,可以給故障數(shù)據(jù)庫(kù)預(yù)留一個(gè)好的軀殼,把壞庫(kù)數(shù)據(jù)導(dǎo)入此軀殼。對(duì)用友、金蝶等數(shù)據(jù)庫(kù)恢復(fù)有時(shí)候能達(dá)到好的效果。
清除表數(shù)據(jù)有兩種方法:
一種用delete from [表名] ,這種方法對(duì)于大數(shù)據(jù)庫(kù),速度慢,會(huì)產(chǎn)生很大的日志信息,對(duì)于小庫(kù),速度可以忽略;
另一種是truncate table [表名] ,這種方法速度快,但清除不了具有外鍵的表數(shù)據(jù)。
在清除表數(shù)據(jù)時(shí),可以采用兩種方法結(jié)合。
清除表數(shù)據(jù)時(shí)先禁用一切約束,清除完成以后再次啟用約束就行了。
1、 采用truncate table [表名] 清除表數(shù)據(jù),排除具有外鍵屬性的表,清除語(yǔ)句獲取如下:
Use [要操作的庫(kù)名字]
-----------------------------------------------------------------------
select
'alter table [' +name+ '] nocheck constraint all; alter table [' +name + '] disable trigger all;
truncate table ['+name+'];'
+ ' alter table [' +name + '] enable trigger all; alter table [' +name + '] check constraint all;
go'
from sysobjects where id not in(select parent_object_id from sys.foreign_keys ) and id not in(select referenced_object_id from sys.foreign_keys ) and type='U'
-----------------------------------------------------------------------
上述SQL語(yǔ)句得到的結(jié)果,再次在SQL查詢(xún)分析器里運(yùn)行。
2、用 delete from [表名] 清除表數(shù)據(jù)語(yǔ)句獲取如下
Use [要操作的庫(kù)名字]
-----------------------------------------------------------------------
SELECT 'alter table [' +object_name (id) + '] nocheck constraint all; alter table [' +object_name (id) + '] disable trigger all;
delete from ['+object_name (id)+'];' + '
alter table [' +object_name (id) + '] enable trigger all; alter table [' +object_name (id) + '] check constraint all;
go'
TableName from sysobjects where type='U'
-----------------------------------------------------------------------
3、 有些MS SQL Server查詢(xún)分析器,對(duì)于 上述語(yǔ)句后面的 go ,copy出來(lái)后不自動(dòng)換行,可以把運(yùn)行結(jié)果保存到文本文件中,查詢(xún)分析器打開(kāi)以后,會(huì)自動(dòng)換行。如果不自動(dòng)換行,sql語(yǔ)句執(zhí)行報(bào)錯(cuò)。
4、 可能遇到清除不了的某些表,查看它和哪些表關(guān)聯(lián)外鍵,先把兩個(gè)表的約束同時(shí)禁用,再用delete from [表名],完了以后,兩個(gè)表同時(shí)恢復(fù)約束使用。
5、 查看清除數(shù)據(jù)是否成功徹底,用下述語(yǔ)句查看記錄數(shù)量:
Use [要操作的庫(kù)名字]
-----------------------------------------------------------------------
SELECT object_name (i.id) TableName,
rows as RowCnt
FROM sysindexes i
INNER JOIN sysObjects o
ON (o.id = i.id AND o.xType = 'U ')
WHERE indid < 2 and RowCnt>0
ORDER BY RowCnt desc
圖十六:清空參考庫(kù)的表數(shù)據(jù)
再?gòu)南旅嫠{(lán)框中,單機(jī)“TableName”,選擇所有表后,右鍵單擊復(fù)制
圖十七:清空參考庫(kù)的表數(shù)據(jù)作為接收庫(kù)
復(fù)制完后,在上面指令欄中粘貼所有復(fù)制內(nèi)容
圖十八:清空參考庫(kù)的表數(shù)據(jù)作為接收庫(kù)
將光標(biāo)點(diǎn)到最開(kāi)始的位置,然后選擇執(zhí)行
圖十九:清空參考庫(kù)的表數(shù)據(jù)作為接收庫(kù)
等待指令執(zhí)行完畢后,再用最上面的查詢(xún)指令查詢(xún)一下結(jié)果,一般執(zhí)行2-3遍后,所有表數(shù)據(jù)都會(huì)被清空(個(gè)別清除不了的情況需要逐條去清除數(shù)據(jù))
圖二十:清空參考庫(kù)的表數(shù)據(jù)作為接收庫(kù)
圖二十一:清空參考庫(kù)的表數(shù)據(jù)作為接收庫(kù)
表數(shù)據(jù)清空后,用軟件把數(shù)據(jù)導(dǎo)入到目標(biāo)庫(kù)里,在軟件界面選擇“導(dǎo)出數(shù)據(jù)”
圖二十二:導(dǎo)出數(shù)據(jù)庫(kù)
彈出連接設(shè)置界面,服務(wù)器名默認(rèn)為:127.0.0.1(若該機(jī)器SQL SERVER版本有很多,后面需要加上“\SQL版本號(hào)”,如127.0.0.1\SQL2000或127.0.0.1\SQL2008R2來(lái)指定輸出環(huán)境),
數(shù)據(jù)庫(kù)名則輸入清除完表數(shù)據(jù)的目標(biāo)庫(kù)名稱(chēng)。
圖二十三:數(shù)據(jù)庫(kù)連接設(shè)置
點(diǎn)擊確定,繼續(xù)彈出選擇界面,一般情況選擇全部數(shù)據(jù)類(lèi)型即可,數(shù)據(jù)開(kāi)始導(dǎo)出
圖二十四:導(dǎo)出數(shù)據(jù)庫(kù)
導(dǎo)出過(guò)程中,先生成所有表,目標(biāo)庫(kù)中這些表已經(jīng)存在
圖二十五:自動(dòng)創(chuàng)建表,導(dǎo)出數(shù)據(jù)庫(kù)
創(chuàng)建完所有表后,開(kāi)始自動(dòng)導(dǎo)出數(shù)據(jù)。
圖二十六:導(dǎo)出數(shù)據(jù)庫(kù)
導(dǎo)出的時(shí)間根表的數(shù)量以及數(shù)據(jù)庫(kù)大小有關(guān),為了提升導(dǎo)出的效率,推薦您使用高速的SSD固態(tài)硬盤(pán)以及大容量?jī)?nèi)存。
導(dǎo)出完成后,會(huì)生成導(dǎo)出結(jié)果報(bào)告
圖二十七:導(dǎo)出數(shù)據(jù)庫(kù)完成后生成結(jié)果報(bào)告
自此,數(shù)據(jù)庫(kù)修復(fù)導(dǎo)出完成
最后,我們來(lái)驗(yàn)證一下修復(fù)的數(shù)據(jù)庫(kù)是否完整?經(jīng)過(guò)驗(yàn)證,這個(gè)客戶(hù)的一卡通綜合管理系統(tǒng)完美恢復(fù)成功!
圖二十八:在一卡通綜合管理平臺(tái)的應(yīng)用系統(tǒng)里驗(yàn)證修復(fù)后的數(shù)據(jù)庫(kù)是否成功
數(shù)據(jù)庫(kù)修復(fù)完成后,會(huì)自動(dòng)生成MDF文件和LDF文件,把數(shù)據(jù)庫(kù)導(dǎo)入到應(yīng)用中既可以完成驗(yàn)證工作。
達(dá)思數(shù)據(jù)恢復(fù)中心(北京總部):
地址:中國(guó)北京市朝陽(yáng)區(qū)北苑東路19號(hào)院中國(guó)鐵建廣場(chǎng)D座2204室
手機(jī)導(dǎo)航請(qǐng)搜“達(dá)思數(shù)據(jù)恢復(fù)中心”,跟著導(dǎo)航來(lái)達(dá)思數(shù)據(jù)恢復(fù)吧
電話(huà):400-700-0017 010-62672120
QQ:65196945 QQ群:120161291 遠(yuǎn)程支持QQ:55356052 151208
達(dá)思軟件用戶(hù)QQ群:327273411(需驗(yàn)證正版信息)
數(shù)據(jù)恢復(fù)與取證方案: 18600668588(微信同號(hào)))
掃一掃加微信 抖音掃一掃
Copyright ? 2007 達(dá)思凱瑞技術(shù)(北京)有限公司 達(dá)思科技官網(wǎng) www.js6754.com All rights reserved. ICP備案號(hào):京ICP備09028603號(hào)-15
360網(wǎng)站安全檢測(cè)平臺(tái)