欧美精品国产一区二区

<bdo id="wtk6p"><address id="wtk6p"><big id="wtk6p"></big></address></bdo>

    1. 數據恢復及取證技術文章

      data recovery and forensics Technical Articles

      用達思SQL數據庫修復軟件怎么修復中了勒索病毒加密的數據庫

      發布時間:2019-08-06    閱讀數:

      用達思SQL數據庫修復軟件怎么修復中了后綴.[mr.hacker@tutanota.com]的勒索病毒加密的數據庫?(一卡通綜合管理平臺)


      111.jpg

      2.33GB的sql數據庫被后綴.[mr.hacker@tutanota.com]加密

          最近幾天有一個一卡通綜合管理平臺的數據庫被勒索病毒加密了,因為整個服務器只有sql數據庫是重要的,而且客戶拒絕向勒索病毒的黑客繳納贖金,客戶聯系達思科技,希望達思科技能夠幫助修復數據庫。

          由于中了勒索病毒的客戶越來越多,達思科技數據庫修復團隊也希望用這個案例,把整個勒索病毒加密的sql數據庫修復的過程展示出來,以便幫助更多的受到勒索病毒威脅的公司降低隨時。


      一、SQL數據庫修復前的準備工作


      1.1 環境準備:

      1、操作系統:推薦使用windows server2016或2019

      2、SQL數據庫環境:從2000開始安裝(如何安裝,網上有相應的教程),按照版本依次安裝,可以安裝SQL Server2000、2005、2008、2008R2、2012、2014、2016、2017、2019等;

      3、硬盤:修SQL數據庫對硬盤讀寫要求較高,推薦使用m.2接口(NVMe協議)的SSD固態硬盤。

            內存:建議64GB以上


      1.2判斷SQL Server數據庫的版本?

          如果客戶可以準確提供SQL數據庫版本,就不需要自己檢測版本了,如果客戶不確定,我們也可以自己判斷,用winhex打開sql數據庫的mdf文件,跳轉到第144扇區,看看00012060X4和00012060X5兩個字節,看看16BIT對應的數值,就可以準確判斷SQL數據庫的版本,準確判斷SQL版本來確定我們修復數據庫時需要選擇的輸出環境的版本。


      請看下圖,本案例庫數值是661,說明版本是SQL SERVER 2008R2

       1.jpg

      圖一:判斷數據庫版本

      不同SQL數據庫版本對應的內部數據庫版本數字如下:


      SQL Server數據庫版本對應的內部數據庫版本(數字)
      SQL Server 2017869
      SQL Server 2016852
      SQL Server 2014782
      SQL Server 2012706
      SQL Server2012 CTP1684
      SQL Server 2008 R2665
      SQL Server 2008661
      SQL Server 2005 with vardecimal enabled612
      SQL Server 2005611
      SQL Server 2000539
      SQL Server 7.0515


      注意:如果前512扇區或2048或4096扇區被病毒破壞,就需要客戶提供具體的數據庫版本了。


      1.3檢測SQL數據庫文件,判斷修復成功率

      1、打開達思SQL數據庫修復軟件,點擊“檢查文件”,測試數據庫損壞程度。

       2.jpg

      圖二:檢測數據庫文件的損壞率

      打開檢測文件對話框后,點擊“選擇文件”選取相應目錄后再點擊“開始檢測”。


       3.jpg

      圖三:檢測數據庫文件的損壞率

      掃描結束后,重點看一下錯誤頁和空頁的數量和比例,如果空頁和壞頁比例小于5%以下,則數據庫修復成功率更高。


      4.jpg 

      圖四:檢測數據庫文件的損壞率


      請看圖,本案例的空頁為4720,占比為1.5%,錯誤頁(損壞的頁)為142,占比幾乎為零,因此可以判斷,數據庫修復的成功率很高!


      二、SQL數據庫修復過程

      1、關于參考庫(為什么需要參考庫?):

      由于SQL數據庫的損壞的不確定性,很有可能系統表結構、存儲過程等重要參數受損的情況下,我們如果有同結構的好的老備份,達思軟件可以把好的表結構提取出來,再把數據庫填進去。

      2、關于內置的表結構(達思軟件打開數據庫文件時對話框可選):

      達思軟件內置了金蝶、用友、管家婆、浪潮、思迅等品牌的數十個版本的表結構,在沒有同結構的參考庫的情況下,可以選擇內置表結構作為參考庫,以提高數據庫修復的準確率和成功率。

      3、達思軟件修復SQL數據庫的過程

      在達思軟件界面中選擇“打開文件”,選擇需要修復的損壞的sql數據庫以及和壞庫同結構的好數據庫作為參照庫,開始修復損壞的SQL數據庫。

       5.jpg

      圖五:打開需要修復的數據庫文件

       6.jpg

      圖六:打開需要修復的數據庫文件

      選擇好需要修復的損壞的SQL數據庫文件后,再選擇事先準備好的相同表結構的好庫做參照。

       7.jpg

      圖七:數據庫修復的必要選項

      如果客戶可以提供老的備份作為參考,就優先選擇老的備份作為參考。

      如果客戶無法提供老的備份作為參考,則可以選擇達思軟件內置的版本作為參考。

      如果達思軟件內置也沒有,這可以在客戶的數據庫環境下新建同結構的空庫作為參考。

      因此,參考庫的優先級為:同一個數據庫的好的老備份>同結構的的好庫>達思軟件內置的相同版本>相同環境下新建的表結構一樣的空庫

       8.jpg

      圖八:自動解析數據庫文件

      選擇完成后,點擊“開始恢復”!

      達思軟件將會自動修復,根據不同大小以及損壞程度的不同,一般在幾分鐘內就可以完成展開。

      SQL數據庫展開后,就可以在達思軟件界面中查看數據庫的修復結果和數據。如下圖:左側紅框中顯示的是所有表,右側藍框中是修復后的數據庫文件的解析結果報告。

       9.jpg

      圖九:數據庫文件解析結果報告

      從左側欄中雙擊某個表,可以在右側看到修復后該表里的數據,這個時候可以檢查一下重要的表數據是否正確。

       10.jpg

      圖十:核對表數據是否正確

      打開SQL Server2008R2,登陸SQL SERVER,附加好的參照庫(提前復制出一份),然后,清空參考庫里面的表數據作為接收庫。

       11.jpg

      圖十一:在sql server里打開參考數據庫

       12.jpg

      圖十二:附加好的參考庫(清空表數據作為接收庫)


       13.jpg

      圖十三:附加好的參考庫(清空表數據作為接收庫)


       14.jpg

      圖十四:附加好的參考庫(清空表數據作為接收庫)


      附加完成后,右鍵選擇該庫,選擇“新建查詢”輸入指令完成清除表數據

       15.jpg

      圖十五:新建查詢(清空表數據作為接收庫)

      清空表數據:

      清空表數據,保留視圖,存儲過程,函數,以及保留表約束、觸發器等等,可以給故障數據庫預留一個好的軀殼,把壞庫數據導入此軀殼。對用友、金蝶等數據庫恢復有時候能達到好的效果。

      清除表數據有兩種方法:

      一種用delete from [表名] ,這種方法對于大數據庫,速度慢,會產生很大的日志信息,對于小庫,速度可以忽略;

      另一種是truncate table  [表名] ,這種方法速度快,但清除不了具有外鍵的表數據。 

      在清除表數據時,可以采用兩種方法結合。 

      清除表數據時先禁用一切約束,清除完成以后再次啟用約束就行了。 

      1、 采用truncate table  [表名] 清除表數據,排除具有外鍵屬性的表,清除語句獲取如下:

      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語句得到的結果,再次在SQL查詢分析器里運行。 

      2、用 delete from [表名] 清除表數據語句獲取如下

      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出來后不自動換行,可以把運行結果保存到文本文件中,查詢分析器打開以后,會自動換行。如果不自動換行,sql語句執行報錯。

      4、 可能遇到清除不了的某些表,查看它和哪些表關聯外鍵,先把兩個表的約束同時禁用,再用delete from [表名],完了以后,兩個表同時恢復約束使用。

      5、 查看清除數據是否成功徹底,用下述語句查看記錄數量:

      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

       16.jpg

      圖十六:清空參考庫的表數據

      再從下面藍框中,單機“TableName”,選擇所有表后,右鍵單擊復制

       17.jpg

      圖十七:清空參考庫的表數據作為接收庫

      復制完后,在上面指令欄中粘貼所有復制內容

       18.jpg

      圖十八:清空參考庫的表數據作為接收庫

      將光標點到最開始的位置,然后選擇執行

       19.jpg

      圖十九:清空參考庫的表數據作為接收庫

      等待指令執行完畢后,再用最上面的查詢指令查詢一下結果,一般執行2-3遍后,所有表數據都會被清空(個別清除不了的情況需要逐條去清除數據)

       20.jpg

      圖二十:清空參考庫的表數據作為接收庫

       21.jpg

      圖二十一:清空參考庫的表數據作為接收庫

      表數據清空后,用軟件把數據導入到目標庫里,在軟件界面選擇“導出數據”

       22.jpg

      圖二十二:導出數據庫

      彈出連接設置界面,服務器名默認為:127.0.0.1(若該機器SQL SERVER版本有很多,后面需要加上“\SQL版本號”,如127.0.0.1\SQL2000或127.0.0.1\SQL2008R2來指定輸出環境),

      數據庫名則輸入清除完表數據的目標庫名稱。

       23.jpg

      圖二十三:數據庫連接設置

      點擊確定,繼續彈出選擇界面,一般情況選擇全部數據類型即可,數據開始導出

       24.jpg

      圖二十四:導出數據庫

      導出過程中,先生成所有表,目標庫中這些表已經存在

       25.jpg

      圖二十五:自動創建表,導出數據庫

      創建完所有表后,開始自動導出數據。

       26.jpg

      圖二十六:導出數據庫

      導出的時間根表的數量以及數據庫大小有關,為了提升導出的效率,推薦您使用高速的SSD固態硬盤以及大容量內存。

      導出完成后,會生成導出結果報告

       27.jpg

      圖二十七:導出數據庫完成后生成結果報告

      自此,數據庫修復導出完成

      最后,我們來驗證一下修復的數據庫是否完整?經過驗證,這個客戶的一卡通綜合管理系統完美恢復成功!

       28.jpg

      圖二十八:在一卡通綜合管理平臺的應用系統里驗證修復后的數據庫是否成功

      數據庫修復完成后,會自動生成MDF文件和LDF文件,把數據庫導入到應用中既可以完成驗證工作。



        總部:達思凱瑞技術(北京)有限公司

      達思數據恢復中心(北京總部):4007000017

      地址:中國北京市海淀區林風二路38號院4號樓3層312室(海淀綠地中央廣場,北清路與稻香湖路交匯處)

      手機導航請搜“達思數據恢復”,跟著導航來達思吧

      電話: 010-62672125  62672120   62670165    62672127

      達思數據恢復QQ群:120161291   遠程支持QQ:151208   

      達思軟件用戶QQ群:327273411(需驗證正版信息)

      技術:010-62670165 / 數據恢復實驗室方案: 13522681842

        達思全國各地服務站:
      微信公眾號服務號200-200.jpg              

      微信服務號


      微信公眾號訂閱號200-200.jpg              

      微信訂閱號



      微信公眾號訂閱號200-200.jpg              

      客戶服務

      Copyright ? 2007 達思凱瑞技術(北京)有限公司  達思科技官網  www.ywjnsac.cn  All rights reserved. ICP備案號:京ICP備09028603號-15

      360網站安全檢測平臺
    2. 首頁
    3. 電話
    4. 在線咨詢
    5. <bdo id="wtk6p"><address id="wtk6p"><big id="wtk6p"></big></address></bdo>