發表文章

目前顯示的是 4月, 2021的文章

[C#]紀錄被綁架的資料庫還原

 近來出現一波針對威聯通(QNAP)網路儲存裝置(NAS)的勒索攻擊 Qlocker,用戶裝置一旦感染之後,NAS 中的所有檔案便會被惡意軟體使用 7zip 壓縮並加上密碼保護。據了解,Qlocker 的幕後主使者在短短五天之内,不法所得已高達 26 萬美元以上。 根據資安媒體 BleepingComupter 報導,從 2021 年 4 月 19 日起觀測到Qlocker 勒索攻擊的足跡,且受害者數量快速增加,世界各國陸續傳出災情。使用者的 QNAP NAS 裝置一旦感染 Qlocker,當中所有檔案便會被惡意軟體使用 7zip 壓縮並加上密碼保護。而當 Qlocker 完成壓縮後,用戶的 NAS 中便會出現一個顯示「!!!READ_ME.txt」的未加密文字檔,內文即是威脅用戶付出 0.01 枚比特幣的贖金,以取得解壓縮用的密碼。 如同上述文章,最近花錢消災,取得加密密碼後,才發現後續工程才是一大麻煩啊! 先分析加密的資料有那些問題~ 超過20M以上不會被加密壓縮 中文檔案的壓縮檔打開後的檔名是亂碼 .7z檔 無法直接用套件解壓縮原本使用  DoNetZip 的套件,但是一直出現錯誤(無法視為ZipFile) 解決方法     直接用cmd 執行7zip 解壓縮      //解壓縮           {             Process process = new Process();             process.StartInfo.FileName = @"C:\Program Files\7-zip\7z.exe";             process.StartInfo.Arguments = @"e E:\test.zip -o(檔案路徑) -p(密碼)";             process.Start();        } 但問題解了一個還有一個,中文檔案的名稱不對阿   ヽ(#`Д´)ノ 原本打算先從cmd 取得檔名,然後利用.7z 檔名取代內部錯誤的檔名,但是檔名是亂碼根本無法取得檔案。 產生一個暫存資料夾,解壓縮一份檔案後取得資料夾內部檔案,利用File.Move()的方式,將檔名更換,最後刪掉暫存檔的資料。 最後發現這樣還是無法判斷執行檔到底有沒有work,需要產生一個l

[JAVA]enumeration 列舉

列舉可做為「常數」的集合 ,如果不在集合內的物件,compiler不會過。 ※ 使用列舉可以避免誤用錯誤的常數   列舉可搭配 switch 使用 列舉可以在類別內 (inline) 定義 列舉可以有建構子 (constructor) ,可建構複雜的列舉 依據上例,有幾件事項要說明一下: 1.       列舉實例必須最先定義。 2.       最後一個列舉實例必須加上分號 (;) 。 3.       新屬性不能在列舉實例之前宣告,需在列舉實例之後宣告。 4.       建構子有二個參數,所以每個 列舉實例都要傳入二個參數。 5.       建構子是隱含性的 private , private 修飾詞可寫可不寫,不能變更為 public 。 參考:https://www.tpisoftware.com/tpu/articleDetails/1432