Simpler Dateiblocker

    • VB.NET

    Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

      Simpler Dateiblocker

      Hallo,

      habe einen Dateiblocker erweitert mit dem man ganz einfach Dateien unöffbar machen kann.
      Grundidee: Das erste Byte der Datei zu manipulieren.

      Getestet mit pdf, jpg, mp4, exe, rar
      Funktioniert nicht mit mp3 (wahrsch. muss man einfach mehrere Bytes manipulieren) und auch nicht mit txt (weils halt ne txt ist).

      Vorteil: Man kann blitzschnell Dateien für Laien "verschlüsseln". Da immer nur das 1. Byte verändert wird, dauert es bei einer 500mb-Datei genauso lange wie bei einer 5kb-Datei.

      Man braucht 2 Buttons und ein Label:

      VB.NET-Quellcode

      1. Imports System.IO
      2. Public Class Form1
      3. Private Function GetFilename() As String
      4. Dim ofd As New OpenFileDialog
      5. Dim Filename As String
      6. With ofd
      7. .Title = "Open File"
      8. .RestoreDirectory = True
      9. .Filter = "All files|*.*"
      10. If .ShowDialog() = DialogResult.OK Then
      11. Filename = .FileName
      12. Return Filename
      13. Else
      14. Filename = String.Empty
      15. Return Filename
      16. End If
      17. End With
      18. End Function
      19. Private Sub BlockFile(ByVal Filename As String, Encrypt As Boolean)
      20. If File.Exists(Filename) Then
      21. Dim fs As New FileStream(Filename, FileMode.Open)
      22. Dim br As New BinaryReader(fs)
      23. Dim Content As Byte = br.ReadByte
      24. If Encrypt = True Then
      25. If Content = 255 Then Content = 0 Else Content += 1
      26. Else
      27. If Content = 0 Then Content = 255 Else Content -= 1
      28. End If
      29. br.Close()
      30. Dim bw As New BinaryWriter(New FileStream(Filename, FileMode.OpenOrCreate))
      31. bw.Write(Content)
      32. bw.Close()
      33. End If
      34. End Sub
      35. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
      36. 'Original wird unbrauchbar gemacht
      37. Dim Filename As String = GetFilename()
      38. If (Not Filename Is String.Empty) Then
      39. BlockFile(Filename, True)
      40. Label1.Text = "blocked"
      41. End If
      42. End Sub
      43. Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
      44. 'Unbrauchbare Datei wieder in den Originalzustand versetzen
      45. Dim Filename As String = GetFilename()
      46. If (Not Filename Is String.Empty) Then
      47. BlockFile(Filename, False)
      48. Label1.Text = "unblocked"
      49. End If
      50. End Sub
      51. End Class



      Quelle: visual-basic5.de/vbclassic/dotnet/magicheader.htm
      Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!

      bla schrieb:

      Man kann blitzschnell Dateien für Laien "verschlüsseln".
      Das halte ich nicht für sehr sinnvoll.
      Was, wwenn zwischendurch das System crasht?
      Was passiert, wenn jemand so eine Datei vorfindet? Im schlimmsten Fall löscht er sie und futsch sind die Daten.
      Das kann "Laien" und auch Profis passieren.
      Sicherer ist es, einfach den PC zu sperren, wenn keiner ran soll.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!
      a) ist das crap
      b) wird das bei mp3 nie was. Da kannst du auch sonst noch 500 bytes abändern. Nur die Datei KANN beschädigt werden jedoch noch immer hörbar. MP3 basiert auf Frames. Ist eines beschädigt (nur im Header relevant) wird einfach das nächste gesucht. Erstmal nachdenken und dann programmieren.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Mod-Comment by ErfinderDesRades:
      Ich finde, die Sinnhaftigkeit des Vorgehens ist nun genügend in Frage gestellt worden. Festzuhalten bleibt der Trick, dass manche DateiFormate durch Veränderung nur eines Bytes unbrauchbar gemacht werden können, und das ist auch reversibel.