/// <summary> /// search all worksheets and remove password /// </summary> /// <returns></returns> private static Task <bool> SearchWorksheets(string pass = "", bool returnPass = false) { var workSheets = Directory.GetFiles(WorksheetAddress); var bol = Task.Run(() => { foreach (var file in workSheets) { var sheet = new XmlDocument(); sheet.Load(file); var tag = sheet.GetElementsByTagName("sheetProtection").Item(0); if (tag?.Attributes != null) { if (pass == string.Empty) { if (returnPass) { tag.Attributes.GetNamedItem("sheet").Value = "1"; } else if (CrackOptionInfo == CrackOption.RemovePassAndKeep) { var passValue = tag.Attributes.GetNamedItem("hashValue").Value; var passType = tag.Attributes.GetNamedItem("algorithmName").Value; var fileName = string.Empty; FindFileName(file, ref fileName); var passwords = new Passwords { FileName = fileName, PassType = passType, PassValue = passValue, Target = new TargetInfo { FileAddress = $"{FileName}_New.{FileExtension}", TargetName = $"{FileName}", TargetType = "Worksheet", } }; Password.Add(passwords); tag.Attributes.GetNamedItem("sheet").Value = ""; } else if (CrackOptionInfo == CrackOption.RemovePassComplite) { tag.Attributes.GetNamedItem("sheet").Value = ""; tag.Attributes.GetNamedItem("hashValue").Value = ""; tag.Attributes.GetNamedItem("algorithmName").Value = ""; //tag.RemoveAll(); } } else { tag.Attributes.GetNamedItem("sheet").Value = "1"; tag.Attributes.GetNamedItem("hashValue").Value = pass; tag.Attributes.GetNamedItem("algorithmName").Value = "SHA-512"; } } sheet.Save(file); } return(true); } ); return(bol); }
/// <summary> /// Open workbook and remove password /// </summary> /// <returns></returns> private static Task <bool> SearchWorkbook(string pass = "", bool returnPass = false) { var bol = Task.Run(() => { var doc = new XmlDocument(); doc.Load(WorkbookAddress); var tag = doc.GetElementsByTagName("workbookProtection").Item(0); if (tag?.Attributes != null) { if (pass == string.Empty) { if (returnPass) { tag.Attributes.GetNamedItem("lockStructure").Value = "1"; } else if (CrackOptionInfo == CrackOption.RemovePassAndKeep) { var passValue = tag.Attributes.GetNamedItem("workbookHashValue").Value; var passType = tag.Attributes.GetNamedItem("workbookAlgorithmName").Value; var passwords = new Passwords { FileName = "", PassType = passType, PassValue = passValue, Target = new TargetInfo { FileAddress = $"{FileName}_New.{FileExtension}", TargetName = $"{FileName}", TargetType = "Workbook", CreateTime = DateTime.Now, CrackOption = CrackOptionInfo, } }; Password.Add(passwords); tag.Attributes.GetNamedItem("lockStructure").Value = ""; } else if (CrackOptionInfo == CrackOption.RemovePassComplite) { //tag.RemoveAll(); tag.Attributes.GetNamedItem("lockStructure").Value = ""; tag.Attributes.GetNamedItem("workbookHashValue").Value = ""; tag.Attributes.GetNamedItem("workbookAlgorithmName").Value = ""; } } else { tag.Attributes.GetNamedItem("lockStructure").Value = "1"; tag.Attributes.GetNamedItem("workbookHashValue").Value = pass; tag.Attributes.GetNamedItem("workbookAlgorithmName").Value = "SHA-512"; } } doc.Save(WorkbookAddress); return(true); } ); return(bol); }