使用達思SQL數(shù)據(jù)庫修復軟件修復中了勒索病毒加密的數(shù)據(jù)庫教程

用達思SQL數(shù)據(jù)庫修復軟件怎么修復中了后綴.[mr.hacker@tutanota.com]的勒索病毒加密的數(shù)據(jù)庫?(一卡通綜合管理平臺)
2.33GB的sql數(shù)據(jù)庫被后綴.[mr.hacker@tutanota.com]加密
最近幾天有一個一卡通綜合管理平臺的數(shù)據(jù)庫被勒索病毒加密了,因為整個服務器只有sql數(shù)據(jù)庫是重要的,而且客戶拒絕向勒索病毒的黑客繳納贖金,客戶聯(lián)系達思科技,希望達思科技能夠幫助修復數(shù)據(jù)庫。
由于中了勒索病毒的客戶越來越多,達思科技數(shù)據(jù)庫修復團隊也希望用這個案例,把整個勒索病毒加密的sql數(shù)據(jù)庫修復的過程展示出來,以便幫助更多的受到勒索病毒威脅的公司降低隨時。
一、SQL數(shù)據(jù)庫修復前的準備工作
1.1 環(huán)境準備:
1、操作系統(tǒng):推薦使用windows server2016或2019
2、SQL數(shù)據(jù)庫環(huán)境:從2000開始安裝(如何安裝,網(wǎng)上有相應的教程),按照版本依次安裝,可以安裝SQL Server2000、2005、2008、2008R2、2012、2014、2016、2017、2019等;
3、硬盤:修SQL數(shù)據(jù)庫對硬盤讀寫要求較高,推薦使用m.2接口(NVMe協(xié)議)的SSD固態(tài)硬盤。
內(nèi)存:建議64GB以上
1.2判斷SQL Server數(shù)據(jù)庫的版本?
如果客戶可以準確提供SQL數(shù)據(jù)庫版本,就不需要自己檢測版本了,如果客戶不確定,我們也可以自己判斷,用winhex打開sql數(shù)據(jù)庫的mdf文件,跳轉(zhuǎn)到第144扇區(qū),看看00012060X4和00012060X5兩個字節(jié),看看16BIT對應的數(shù)值,就可以準確判斷SQL數(shù)據(jù)庫的版本,準確判斷SQL版本來確定我們修復數(shù)據(jù)庫時需要選擇的輸出環(huán)境的版本。
請看下圖,本案例庫數(shù)值是661,說明版本是SQL SERVER 2008R2
圖一:判斷數(shù)據(jù)庫版本
不同SQL數(shù)據(jù)庫版本對應的內(nèi)部數(shù)據(jù)庫版本數(shù)字如下:
SQL Server數(shù)據(jù)庫版本 | 對應的內(nèi)部數(shù)據(jù)庫版本(數(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ū)被病毒破壞,就需要客戶提供具體的數(shù)據(jù)庫版本了。
1.3檢測SQL數(shù)據(jù)庫文件,判斷修復成功率
1、下載最新版本的達思sql數(shù)據(jù)庫修復軟件

D-RecoverySQLServer2019 v3.0 達思sql數(shù)據(jù)庫修復軟件正式版
- 類型:數(shù)據(jù)庫
- 大小:106MB
- 語言:簡體中文
- 時間:2020-02-10
無需安裝直接運行!打開達思SQL數(shù)據(jù)庫修復軟件,點擊“檢查文件”,測試數(shù)據(jù)庫損壞程度。
圖二:檢測數(shù)據(jù)庫文件的損壞率
打開檢測文件對話框后,點擊“選擇文件”選取相應目錄后再點擊“開始檢測”。
圖三:檢測數(shù)據(jù)庫文件的損壞率
掃描結(jié)束后,重點看一下錯誤頁和空頁的數(shù)量和比例,如果空頁和壞頁比例小于5%以下,則數(shù)據(jù)庫修復成功率更高。
圖四:檢測數(shù)據(jù)庫文件的損壞率
請看圖,本案例的空頁為4720,占比為1.5%,錯誤頁(損壞的頁)為142,占比幾乎為零,因此可以判斷,數(shù)據(jù)庫修復的成功率很高!
二、SQL數(shù)據(jù)庫修復過程
1、關(guān)于參考庫(為什么需要參考庫?):
由于SQL數(shù)據(jù)庫的損壞的不確定性,很有可能系統(tǒng)表結(jié)構(gòu)、存儲過程等重要參數(shù)受損的情況下,我們?nèi)绻型Y(jié)構(gòu)的好的老備份,達思軟件可以把好的表結(jié)構(gòu)提取出來,再把數(shù)據(jù)庫填進去。
2、關(guān)于內(nèi)置的表結(jié)構(gòu)(達思軟件打開數(shù)據(jù)庫文件時對話框可選):
達思軟件內(nèi)置了金蝶、用友、管家婆、浪潮、思迅等品牌的數(shù)十個版本的表結(jié)構(gòu),在沒有同結(jié)構(gòu)的參考庫的情況下,可以選擇內(nèi)置表結(jié)構(gòu)作為參考庫,以提高數(shù)據(jù)庫修復的準確率和成功率。
3、達思軟件修復SQL數(shù)據(jù)庫的過程
在達思軟件界面中選擇“打開文件”,選擇需要修復的損壞的sql數(shù)據(jù)庫以及和壞庫同結(jié)構(gòu)的好數(shù)據(jù)庫作為參照庫,開始修復損壞的SQL數(shù)據(jù)庫。
圖五:打開需要修復的數(shù)據(jù)庫文件
圖六:打開需要修復的數(shù)據(jù)庫文件
選擇好需要修復的損壞的SQL數(shù)據(jù)庫文件后,再選擇事先準備好的相同表結(jié)構(gòu)的好庫做參照。
圖七:數(shù)據(jù)庫修復的必要選項
如果客戶可以提供老的備份作為參考,就優(yōu)先選擇老的備份作為參考。
如果客戶無法提供老的備份作為參考,則可以選擇達思軟件內(nèi)置的版本作為參考。
如果達思軟件內(nèi)置也沒有,這可以在客戶的數(shù)據(jù)庫環(huán)境下新建同結(jié)構(gòu)的空庫作為參考。
因此,參考庫的優(yōu)先級為:同一個數(shù)據(jù)庫的好的老備份>同結(jié)構(gòu)的的好庫>達思軟件內(nèi)置的相同版本>相同環(huán)境下新建的表結(jié)構(gòu)一樣的空庫
圖八:自動解析數(shù)據(jù)庫文件
選擇完成后,點擊“開始恢復”!
達思軟件將會自動修復,根據(jù)不同大小以及損壞程度的不同,一般在幾分鐘內(nèi)就可以完成展開。
SQL數(shù)據(jù)庫展開后,就可以在達思軟件界面中查看數(shù)據(jù)庫的修復結(jié)果和數(shù)據(jù)。如下圖:左側(cè)紅框中顯示的是所有表,右側(cè)藍框中是修復后的數(shù)據(jù)庫文件的解析結(jié)果報告。
圖九:數(shù)據(jù)庫文件解析結(jié)果報告
從左側(cè)欄中雙擊某個表,可以在右側(cè)看到修復后該表里的數(shù)據(jù),這個時候可以檢查一下重要的表數(shù)據(jù)是否正確。
圖十:核對表數(shù)據(jù)是否正確
打開SQL Server2008R2,登陸SQL SERVER,附加好的參照庫(提前復制出一份),然后,清空參考庫里面的表數(shù)據(jù)作為接收庫。
圖十一:在sql server里打開參考數(shù)據(jù)庫
圖十二:附加好的參考庫(清空表數(shù)據(jù)作為接收庫)
圖十三:附加好的參考庫(清空表數(shù)據(jù)作為接收庫)
圖十四:附加好的參考庫(清空表數(shù)據(jù)作為接收庫)
附加完成后,右鍵選擇該庫,選擇“新建查詢”輸入指令完成清除表數(shù)據(jù)
圖十五:新建查詢(清空表數(shù)據(jù)作為接收庫)
清空表數(shù)據(jù):
清空表數(shù)據(jù),保留視圖,存儲過程,函數(shù),以及保留表約束、觸發(fā)器等等,可以給故障數(shù)據(jù)庫預留一個好的軀殼,把壞庫數(shù)據(jù)導入此軀殼。對用友、金蝶等數(shù)據(jù)庫恢復有時候能達到好的效果。
清除表數(shù)據(jù)有兩種方法:
一種用delete from [表名] ,這種方法對于大數(shù)據(jù)庫,速度慢,會產(chǎn)生很大的日志信息,對于小庫,速度可以忽略;
另一種是truncate table [表名] ,這種方法速度快,但清除不了具有外鍵的表數(shù)據(jù)。
在清除表數(shù)據(jù)時,可以采用兩種方法結(jié)合。
清除表數(shù)據(jù)時先禁用一切約束,清除完成以后再次啟用約束就行了。
1、 采用truncate table [表名] 清除表數(shù)據(jù),排除具有外鍵屬性的表,清除語句獲取如下:
Use [要操作的庫名字]
-----------------------------------------------------------------------
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語句得到的結(jié)果,再次在SQL查詢分析器里運行。
2、用 delete from [表名] 清除表數(shù)據(jù)語句獲取如下
Use [要操作的庫名字]
-----------------------------------------------------------------------
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查詢分析器,對于 上述語句后面的 go ,copy出來后不自動換行,可以把運行結(jié)果保存到文本文件中,查詢分析器打開以后,會自動換行。如果不自動換行,sql語句執(zhí)行報錯。
4、 可能遇到清除不了的某些表,查看它和哪些表關(guān)聯(lián)外鍵,先把兩個表的約束同時禁用,再用delete from [表名],完了以后,兩個表同時恢復約束使用。
5、 查看清除數(shù)據(jù)是否成功徹底,用下述語句查看記錄數(shù)量:
Use [要操作的庫名字]
-----------------------------------------------------------------------
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
圖十六:清空參考庫的表數(shù)據(jù)
再從下面藍框中,單機“TableName”,選擇所有表后,右鍵單擊復制
圖十七:清空參考庫的表數(shù)據(jù)作為接收庫
復制完后,在上面指令欄中粘貼所有復制內(nèi)容
圖十八:清空參考庫的表數(shù)據(jù)作為接收庫
將光標點到最開始的位置,然后選擇執(zhí)行
圖十九:清空參考庫的表數(shù)據(jù)作為接收庫
等待指令執(zhí)行完畢后,再用最上面的查詢指令查詢一下結(jié)果,一般執(zhí)行2-3遍后,所有表數(shù)據(jù)都會被清空(個別清除不了的情況需要逐條去清除數(shù)據(jù))
圖二十:清空參考庫的表數(shù)據(jù)作為接收庫
圖二十一:清空參考庫的表數(shù)據(jù)作為接收庫
表數(shù)據(jù)清空后,用軟件把數(shù)據(jù)導入到目標庫里,在軟件界面選擇“導出數(shù)據(jù)”
圖二十二:導出數(shù)據(jù)庫
彈出連接設(shè)置界面,服務器名默認為:127.0.0.1(若該機器SQL SERVER版本有很多,后面需要加上“\SQL版本號”,如127.0.0.1\SQL2000或127.0.0.1\SQL2008R2來指定輸出環(huán)境),
數(shù)據(jù)庫名則輸入清除完表數(shù)據(jù)的目標庫名稱。
圖二十三:數(shù)據(jù)庫連接設(shè)置
點擊確定,繼續(xù)彈出選擇界面,一般情況選擇全部數(shù)據(jù)類型即可,數(shù)據(jù)開始導出
圖二十四:導出數(shù)據(jù)庫
導出過程中,先生成所有表,目標庫中這些表已經(jīng)存在
圖二十五:自動創(chuàng)建表,導出數(shù)據(jù)庫
創(chuàng)建完所有表后,開始自動導出數(shù)據(jù)。
圖二十六:導出數(shù)據(jù)庫
導出的時間根表的數(shù)量以及數(shù)據(jù)庫大小有關(guān),為了提升導出的效率,推薦您使用高速的SSD固態(tài)硬盤以及大容量內(nèi)存。
導出完成后,會生成導出結(jié)果報告
圖二十七:導出數(shù)據(jù)庫完成后生成結(jié)果報告
自此,數(shù)據(jù)庫修復導出完成
最后,我們來驗證一下修復的數(shù)據(jù)庫是否完整?經(jīng)過驗證,這個客戶的一卡通綜合管理系統(tǒng)完美恢復成功!
圖二十八:在一卡通綜合管理平臺的應用系統(tǒng)里驗證修復后的數(shù)據(jù)庫是否成功
數(shù)據(jù)庫修復完成后,會自動生成MDF文件和LDF文件,把數(shù)據(jù)庫導入到應用中既可以完成驗證工作。
相關(guān)文章
職場人慌了! DeepSeek配合Mermaid自動繪圖的技巧
DeepSeek這玩意兒,配合Mermaid,自動生成甘特圖,這速度,這效率,簡直了神奇了,下面我們就來看看用法2025-03-05- 今天匯總15個很值得收藏的DeepSeek 提示詞,包含職場打工人必備,自媒體爆款創(chuàng)作,學生黨逆襲,個人成長開掛等等全方面2025-03-04
如何在iPhone上部署DeepSeek-R1? DeepSeek-R1在手機上部署全攻略
你以為只在大機器上跑的模型,其實在手機上也能玩得轉(zhuǎn)!為了體驗一下國產(chǎn)模型的魅力,我在蘋果手機上部署了DeepSeek-R1 1.5B版,詳細步驟如下2025-03-01- 我們之前分享了很多DeepSeek安裝及本地部署教程,今天我們來看看怎么馴化DeepSeek為自己服務,下面我們就來看看DeepSeek 7天指導手冊2025-02-21
手機端本地部署 Deepseek +桌面端 Deepseek 搭建知識庫指南
關(guān)于 Deepseek,這段時間也傳來不少新聞,本文將介紹如何在安卓手機和桌面設(shè)備上分別部署本地運行的 Deepseek R1 模型,并搭建知識庫,詳細如下文2025-02-21DeepSeek-R1 與 AnythingLLM 安裝部署本地知識庫詳細教程
DeepSeek R1是目前最火的大模型,近來有很多朋友問怎么搭建DeepSeek 本地知識庫,在這里分享一種使用DeepSeek + AnythingLLM快速搭建本地知識庫的方法,完全本地化,懶人必2025-02-20DeepSeek怎么獲取官方API? 一文教會你獲取DeepSeek官方API技巧
想要體驗DeepSeek,該怎么貨期官方API呢?下面我們就來看看獲取DeepSeek官方API的詳細圖文教程2025-02-12DeepSeek怎么一秒生成工作表目錄? DeepSeek辦公自動化的技巧
面對日益增長的數(shù)據(jù)量和復雜多變的業(yè)務需求,傳統(tǒng)的Excel操作方式在效率和靈活性上逐漸顯露出不足,如果接入DeepSeek就可以補足缺陷,詳細請看下文介紹2025-02-12DeepSeek入門必備技巧與隱藏功能! DeepSeek新手使用指南
幾乎一夜之間,所有人都在關(guān)注DeepSeek,今天就來聊一聊DeepSeek,從什么是DeepSeek開始,到火爆原因,怎么下載使用,以及使用場合和隱藏功能分享,詳細如下2025-02-12DeepSeek卡頓延遲問題怎么解決? 流暢使用DeepSeek的方法大全
由于deepseek人氣越來越高,讓越來越多人開始使用deepseek,另一方面由于前陣子登錄熱搜的外網(wǎng)網(wǎng)絡攻擊,導致用戶在使用時常常還沒說幾句話,就出現(xiàn)服務器繁忙字樣,或使用2025-02-12