Microsoft Office Unprotect Files


Allgemeine Informationen

Ihr habt Microsoft Office Dateien, die durch ein Passwort geschützt oder Excel Arbeitsblätter, die durch einen Blattschutz eingeschränkt bearbeitbar sind. Dann könnt Ihr hier online über diese Internetseite den Passwortschutz für eure Word- und Excel-Dateien aufheben lassen. Ihr möchtet die Dateien nicht auf diese Seite hochladen, hier gibt es auch ein kleines Programm, die den Datei- und Blattschutz aufheben. Mit beiden Methoden wird der Schutz ohne die Eingabe des Passworts einfach entfernt.


Inhaltsverzeichnis

Unterschied „Verschlüsselung” & „Blatt-, Arbeitsmappen-Schutz”

Excel- & Word-Dateien, die mit einem Kennwort verschlüsselt wurden, können mit diesen Tools aktuell noch nicht bearbeitet werden. Diese verschlüsselten Dateien erkannt man daran, dass diese sich ohne Eingabe eines Passworts nicht öffnen und betrachten lassen. Die Verschlüsselung ist nicht mit dem Blatt- und Arbeitsmappenschutz zu verwechseln. Diese beide Arten des Schutzes kann hier ohne weiteres entfernt werden.

Online-Service 'Unprotect Office Files'

Mit dieser Funktion könnt Ihr den Passwort- und Blatt-Schutz Eurer Word- oder Excel-Dateien online aufheben lassen. Hierzu müsst Ihr kein Programm auf Eurem Rechner installieren. Eure Datei wird verschlüsselt auf unseren Server hochgeladen und verarbeitet. Die Dateien werden nach der Verarbeitung und Download wieder vom Server gelöscht. Der Inhalt wird weder ausgewertet oder anderweitig gespeichert. Mit beiden Methoden wird der Schutz ohne die Eingabe des Passworts einfach entfernt.

Drag and Drop Feld

Anleitung, Status & Download Button

Drop Microsoft-Office file here

or

Folgende Formate werden unterstützt:
MS Excel: .xlsx .xlsm .xltx .xltm
Ms Word: .docx .docm .odt .dotx

*Ich habe die Hinweise zum Datenschutz gelesen und akzeptiere diese.

Anleitung

  1. Geschütze Datei mittels Drag Drop oder 'Select File' hochladen.
  2. Die Datei wird nach erfolgreichem Upload automatisch verarbeitet.
  3. Wenn die Verarbeitung erfolgreich war, erscheint unten ein Download-Button. Mit einem Klick auf diesen könnt Ihr die Datei auf eurem Rechner speichern.

Status & Download Button

Warte auf geschützte MS-Office Datei.
(Excel oder Word Datei-Format)

Software MsOUnprotect

Mit diesem kleinen Programm könnt Ihr den Passwort- und Blatt-Schutz Eurer Word- oder Excel-Dateien aufheben. Es werden keine Daten oder Dateien auf einen Server hochgeladen. Alles bleibt lokal auf deinem Rechner. Mit beiden Methoden wird der Schutz ohne die Eingabe des Passworts einfach entfernt.

Bedienungsanleitung

  1. Nach dem Download und Ausführen der Software, eine geschütztes Word- oder Excel-Dokument in das Drag-and-drop Feld ablegen. Alternativ kann über einen Mausklick auf das Drag-and-drop Feld auch eine Datei ausgewählt werden.
    Hierbei werden folgende Formate unterstützt:
    MS Excel: .xlsx .xlsm .xltx .xltm
    Ms Word: .docx .docm .odt .dotx
  2. Nach dem Ablegen wird die Datei überprüft und alle geschützen Elemente unter Punkt 2 in der Software abgelegt. In diesem Feld sind alle geschützten Elemente mit einem Haken versehen. Wenn der Schutz weiterhin bestehen bleiben soll für ein bestimmtes Element, kann der Haken einfach entfernt werden. Alle Element ohne Haken haben keinen Schutz. Ein setzten eines Haken wird daran auch nichts ändern.
  3. Sind alle Einstellungen vorgenommen, kann über den Button ‚Schutz aufheben‘ der Datei- und Blattschutz entfernt werden. Ein Pop-up zeigt den Dateinamen der bearbeiteten Datei an. Diese liegt im gleichen Ordner wie die Originaldatei.

Übersicht Programm

  1. Aktuell ist das Programm in der Version 1.0.1 verfügbar
    • Weiteres Format hinzugefügt, dass unterstützt wird.
    • Attribut 'fileSharing' hinzugefügt (Passwortschutz).

Installation

(Microsoft .NET Framework erforderlich)

  • Möglichkeit 1.: Laden Sie den gesamten Inhalt des Ordners 'Installation mit Setup' auf Ihre Festplatte herunter. Wird mehr als eine Datei oder Ordner zum Download ausgewählt, werden diese als ZIP gepackt und zum Download angeboten. Nach dem Herunterladen das Installationsprogramm über die seup.exe starten und den Anweisungen folgen. Nach der Installation der Anwendung können Sie diese aus dem Startmenü oder über die Datei 'ExcelUnprotect.exe' ausführen.
  • Möglichkeit 2.: Zip-Datei 'MsOUnprotect.zip' herunterladen und entpacken.
    Das Programm dann im entpackten Ordner über die Datei 'ExcelUnprotect.exe' ausführen.

Wichtiger Hinweis

Beim Download oder der Installation weist Microsoft unter Umständen darauf hin, dass das Programm von einem Unbekannten-Herausgeber ist. Das Programm lässt sich jedoch trotzdem Installieren.
Unter „Weiteren Informationen“ können Sie „Trotzdem ausführen“ auswählen. Um das Problem beim Download zu umgehen, können Sie auch einfach nur die *.zip herunterladen und entpacken.

1. Schritt

Nach dem Ausführen der Start-Datei kann die oben angezeigte Meldung erscheinen. Hier im Text auf 'Weitere Informationen klicken'

2.Schritt

Im Nächten Fenster, auf 'Trotzdem Ausführen' klicken.

(Zum vergrößern auf das jeweilige Bild klicken.)

MsOUnprotect C# Quellcode

Der Quellcode musste etwas angepasst werden, dass er auf der Homepage richtig angezeigt und eingebunden werden kann.
Er kann somit nicht 1 zu 1 in Visual Studio übernommen werden (Zusätzliche Zeilenumbrüche).
Es fehlen auch sämtliche Objekte, die zum Ausführen des Quellcodes erforderlich sind.
Gerne kann ich euch das Original zukommen lassen. Schreibt mir hierzu einfach über das Kontaktformular.

using UnprotectMsOFiles.Properties;
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Windows.Forms;

namespace ExcelUnprotect
{
  public partial class Form1 : Form
  {
    #region Init
    DragDropClass DragDropFile = new DragDropClass();
    public Form1(){
      InitializeComponent();
      this.pnl_DragDrop.DragDrop += new DragEventHandler(this.pnl_DragDrop_DragDrop);
      this.pnl_DragDrop.DragEnter += new DragEventHandler(this.pnl_DragDrop_DragEnter);
    }
    #endregion

    #region FileInput
    private void pnl_DragDrop_DragEnter(object sender, DragEventArgs e){
      if (e.Data.GetDataPresent(DataFormats.FileDrop))
        e.Effect = DragDropEffects.All;
      else
        e.Effect = DragDropEffects.None;
    }

    private void pnl_DragDrop_DragDrop(object sender, DragEventArgs e){
      string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
      foreach (string file in files){
        FileReadDone(file);
      }
    }

    private void pnl_DragDrop_Click(object sender, EventArgs e){
      if (openFileDialog.ShowDialog() == DialogResult.OK){
        FileReadDone(openFileDialog.FileName);
      }
    }
    #endregion

    #region Processing
    private void FileReadDone(string file){
      Reset_Form(null, null);
      //Get the file info
      DragDropFile.FileName = Path.GetFileNameWithoutExtension(file);
      DragDropFile.FilePath = Path.GetDirectoryName(file);
      DragDropFile.FileExtension = Path.GetExtension(file);
      String timeStamp = DateTime.Now.ToString("HHmmssddMMyy");
      DragDropFile.FileTempPath = DragDropFile.FilePath + @"\UMOF_" + timeStamp + ¶
      "_" + DragDropFile.FileName;
      DragDropFile.FileTempZip = DragDropFile.FileTempPath + @"\" + ¶
      DragDropFile.FileName + ".zip";
      lbl_DragDropFile.Text = file;
      //Lokale Variablen
      int countfoundprotect = 0;
      string xmlcontent = "";
      String[] arrexcel = { ".xlsx", ".xlsm", ".xltx", ".xltm" };
      String[] arrword = { ".docx", ".docm", ".odt", ".dotx" };
      if (arrexcel.Contains(DragDropFile.FileExtension)){
        DragDropFile.arr_excelword[0] = true;
        picbox1.Image = Resources.excel;
      }else if (arrword.Contains(DragDropFile.FileExtension)){
        DragDropFile.arr_excelword[1] = true;
        picbox1.Image = Resources.word;
      }
      //Fehlerausgabe
      lbl_infosheetcount.Text = "Keine geschützten Blätter oder Datei gefunden";
      lbl_infosheetcount.BackColor = Color.Yellow;
      //Wenn Excel Datei
      if (DragDropFile.arr_excelword[0] == true){
        copytozip(file);
        //xml_Dateischutz prüfen
        if (File.Exists(DragDropFile.FileTempPath + @"\xl\workbook.xml")){
          xmlcontent = File.ReadAllText(DragDropFile.FileTempPath + @"\xl\workbook.xml");
          if (xmlcontent.Contains("workbookProtection")){
            clb_xmlfiles.Items.Add(Path.GetFileNameWithoutExtension("Arbeitsmappenschutz ¶
            von '" + DragDropFile.FileName + "' aufheben?"));
            clb_xmlfiles.SetItemCheckState((0), CheckState.Checked);
            DragDropFile.arr_xmlfiles[0] = true;
            countfoundprotect++;
          }else{
            clb_xmlfiles.Items.Add(Path.GetFileNameWithoutExtension("Arbeitsmappenschutz ¶
            von '" + DragDropFile.FileName + "' nicht vorhanden."));
            clb_xmlfiles.SetItemCheckState((0), CheckState.Unchecked);
            DragDropFile.arr_xmlfiles[0] = false;
          }
        }
        //xml_Arbeitsblätter einlesen
        int intwhile_i = 1;
        while (intwhile_i < 501){
          if (File.Exists(DragDropFile.FileTempPath + @"\xl\worksheets\sheet" + ¶
          intwhile_i + ".xml")){
            xmlcontent = File.ReadAllText(DragDropFile.FileTempPath + ¶
            @"\xl\worksheets\sheet" + intwhile_i + ".xml");
            if (xmlcontent.Contains("sheetProtection")){
              clb_xmlfiles.Items.Add(Path.GetFileNameWithoutExtension ¶
              ("Blattschutz von 'sheet" + intwhile_i + "' aufheben?"));
              clb_xmlfiles.SetItemCheckState((intwhile_i), CheckState.Checked);
              DragDropFile.arr_xmlfiles[intwhile_i] = true;
              countfoundprotect++;
            }else{
              clb_xmlfiles.Items.Add(Path.GetFileNameWithoutExtension("Blattschutz von ¶
              'sheet" + intwhile_i + "' nicht vorhanden."));
              clb_xmlfiles.SetItemCheckState((intwhile_i), CheckState.Unchecked);
              DragDropFile.arr_xmlfiles[intwhile_i] = false;
            }
            intwhile_i++;
          }else{
            intwhile_i = 501;
          }
        }
      }else if (DragDropFile.arr_excelword[1] == true){
        copytozip(file);
        //xml_Dateischutz prüfen
        if (File.Exists(DragDropFile.FileTempPath + @"\word\settings.xml")){
          xmlcontent = File.ReadAllText(DragDropFile.FileTempPath + @"\word\settings.xml");
          if (xmlcontent.Contains("w:documentProtection")){
            clb_xmlfiles.Items.Add(Path.GetFileNameWithoutExtension("Dokumentenschutz ¶
            von '" + DragDropFile.FileName + "' aufheben?"));
            clb_xmlfiles.SetItemCheckState((0), CheckState.Checked);
            DragDropFile.arr_xmlfiles[0] = true;
            countfoundprotect++;
          }else{
            clb_xmlfiles.Items.Add(Path.GetFileNameWithoutExtension("Dokumentenschutz ¶
            von '" + DragDropFile.FileName + "' nicht vorhanden."));
            clb_xmlfiles.SetItemCheckState((0), CheckState.Unchecked);
            DragDropFile.arr_xmlfiles[0] = false;
          }
        }
      }else{
        lbl_infosheetcount.Text = "Dateiendung '" + DragDropFile.FileExtension + "' ¶
        wird nicht unterstützt";
        lbl_infosheetcount.BackColor = Color.IndianRed;
      }

      if (countfoundprotect != 0){
        cmd_run.Enabled = true;
        lbl_infosheetcount.Text = countfoundprotect.ToString() + " geschützte(s) ¶
        Blätter oder Datei gefunden.";
        lbl_infosheetcount.BackColor = Color.Green;
        lbl_processinfo.Visible = true;
      }
    }
    
    private void cmd_run_Click(object sender, EventArgs e){
      Cursor = Cursors.WaitCursor;
      clb_xmlfiles_SelectedIndexChanged(sender, e);
      if (DragDropFile.arr_excelword[0] == true){
        //excel_xml_Dateischutz aufheben
        if (clb_xmlfiles.GetItemChecked(0)){
          update_xmlfile(DragDropFile.FileTempPath + @"\xl\workbook.xml", ¶
          "workbookProtection");
        }
        //excel_xml_Arbeitsblätter Schutz aufheben
        int i = 1;
        while (i < clb_xmlfiles.Items.Count){
          if (clb_xmlfiles.GetItemChecked(i)){
            update_xmlfile(DragDropFile.FileTempPath + @"\xl\worksheets\sheet" + ¶
            (i) + ".xml", "sheetProtection");
          }
          i++;
        }
      }else if (DragDropFile.arr_excelword[1] == true){
        //word_xml_Dateischutz aufheben
        if (clb_xmlfiles.GetItemChecked(0)){
          update_xmlfile(DragDropFile.FileTempPath + @"\word\settings.xml", ¶
          "w:documentProtection");
        }
      }
      ZipFile.CreateFromDirectory(DragDropFile.FileTempPath, ¶
      DragDropFile.FileTempPath + ".zip");
      File.Copy(DragDropFile.FileTempPath + ".zip", DragDropFile.FileTempPath + ¶
      DragDropFile.FileExtension);
      File.Delete(DragDropFile.FileTempPath + ".zip");
      MessageBox.Show("Die Datei '" + DragDropFile.FileTempPath + ¶
      DragDropFile.FileExtension + "' wurde erfolgreich abgelegt");
      Reset_Form(null, null);
    }
    private void copytozip(string file){
      // file copy
      Directory.CreateDirectory(DragDropFile.FileTempPath);
      File.Copy(file, DragDropFile.FileTempZip);
      //Zip Entpacken und löschen
      ZipFile.ExtractToDirectory(DragDropFile.FileTempZip, DragDropFile.FileTempPath);
      File.Delete(DragDropFile.FileTempZip);
    }
    private void update_xmlfile(string filepath, string strkeyword){
      string newxmlcontent = "";
      string xmlcontent = "";
      xmlcontent = File.ReadAllText(filepath);
      if (xmlcontent.Contains(strkeyword)){
        string[] xmlsubs = xmlcontent.Split('<');
        foreach (string xmlsub in xmlsubs)
        {
          if ((!xmlsub.Contains(strkeyword)) && (xmlsub != ""))
          {
            newxmlcontent += "<" + xmlsub;
          }
        }
        File.WriteAllText(filepath, newxmlcontent);
      }
    }
    #endregion

    #region Reset
    private void Form1_FormClosing(object sender, FormClosingEventArgs e){
      Reset_Form(null, null);
    }

    public void Reset_Form(object sender, EventArgs e){
      if (Directory.Exists(DragDropFile.FileTempPath)){
        Directory.Delete(DragDropFile.FileTempPath, true);
      }
      this.DragDropFile.clear();
      lbl_DragDropFile.Text = "Selected File.: n/a";
      clb_xmlfiles.Items.Clear();
      lbl_infosheetcount.Text = "";
      cmd_run.Enabled = false;
      picbox1.Image = Resources.office;
      Cursor = Cursors.Default;
      lbl_processinfo.Visible = false;
    }
    #endregion

    #region Service
    private void clb_xmlfiles_SelectedIndexChanged(object sender, EventArgs e){
      for (int i = 0; i < clb_xmlfiles.Items.Count; i++){
        if (DragDropFile.arr_xmlfiles[i] == false){
          clb_xmlfiles.SetItemCheckState(i, CheckState.Unchecked);
        }
      }
    }

    private void lnklbk_bug_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){
      ProcessStartInfo sInfo = new ProcessStartInfo ¶
      ("https://ploesch.de/index.php?side=a-kontakt");
      Process.Start(sInfo);
    }

    private void cmd_close_Click(object sender, EventArgs e){
      Application.Exit();
    }
    #endregion
  }

  #region Class
  public class DragDropClass{
    public string FileExtension { get; set; }
    public string FileName { get; set; }
    public string FilePath { get; set; }
    public string FileTempPath { get; set; }
    public string FileTempZip { get; set; }

    public bool[] arr_xmlfiles = new bool[501];
    public bool[] arr_excelword = { false, false };
    public void clear(){
      FileExtension = "";
      FileName = "";
      FilePath = "";
      FileTempPath = "";
      FileTempZip = "";
      arr_excelword[0] = false;
      arr_excelword[1] = false;
    }
  }
  #endregion
}

Download

Die Software wurde von uns selbst in der Programmiersprache c# erstellt und könnt Ihr direkt von unserer Cloud downloaden. Bei Interesse erhaltet Ihr auch auf Anfrage über unserer Kontaktformular den Quellcode zum Programm.

Bitte Datenschutzerklärung beachten!

Vor, während und nach dem Spielen, werden Daten mit unserem Server ausgetauscht. In unserer Datenschutzerklärung erhaltet Ihr hierzu weitere Informationen.