.vcrd Entschlüsseln

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    .vcrd Entschlüsseln

    Hallo.

    Habe hier eine .vcrd Datei von mir, die habe ich ca. 2013 erstellt.

    Es handelt sich um eine User Vault Datei , kein Masterkey oder soetwas.

    Jetzt versuche ich sie zu entschlüsseln.

    VB.NET-Quellcode

    1. #Region "General functions"
    2. <DllImport("Crypt32.Dll", SetLastError:=True, CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
    3. Private Function CryptUnprotectData(ByRef pDataIn As DATA_BLOB, szDataDescr As String, ByRef pOptionalEntropy As DATA_BLOB, pvReserved As IntPtr, ByRef pPromptStruct As CRYPTPROTECT_PROMPTSTRUCT, dwFlags As Integer, ByRef pDataOut As DATA_BLOB) As Boolean
    4. End Function
    5. <DllImport("Kernel32.Dll", SetLastError:=True, ExactSpelling:=True)> Public Function LocalFree(hMem As IntPtr) As IntPtr
    6. End Function
    7. <Flags()> Private Enum CryptProtectPromptFlags
    8. CRYPTPROTECT_PROMPT_ON_UNPROTECT = &H1
    9. CRYPTPROTECT_PROMPT_ON_PROTECT = &H2
    10. End Enum
    11. <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> Private Structure CRYPTPROTECT_PROMPTSTRUCT
    12. Public cbSize As Integer
    13. Public dwPromptFlags As CryptProtectPromptFlags
    14. Public hwndApp As IntPtr
    15. Public szPrompt As String
    16. End Structure
    17. <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> Private Structure DATA_BLOB
    18. Public cbData As Integer
    19. Public pbData As IntPtr
    20. End Structure
    21. #End Region
    22. Private Sub Versuch()
    23. Dim DecryptData As Func(Of Byte(), String) = Function(Data As Byte())
    24. Dim dataIn, dataOut As DATA_BLOB
    25. Dim gchDataIn As GCHandle = GCHandle.Alloc(Data, GCHandleType.Pinned)
    26. dataIn.pbData = gchDataIn.AddrOfPinnedObject()
    27. dataIn.cbData = Data.Length
    28. CryptUnprotectData(dataIn, String.Empty, Nothing, IntPtr.Zero, Nothing, 0, dataOut)
    29. gchDataIn.Free()
    30. Dim retval As String = Marshal.PtrToStringAnsi(dataOut.pbData, dataOut.cbData)
    31. LocalFree(dataOut.pbData)
    32. Return retval
    33. End Function
    34. Dim Pat As String = "dgk.vcrd"
    35. Dim W As Byte()
    36. Dim fs As FileStream = File.Open(Pat, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
    37. Using sw As BinaryReader = New BinaryReader(fs, Encoding.Default)
    38. W = sw.ReadBytes(CInt(fs.Length))
    39. End Using
    40. Clipboard.SetText(Encoding.Default.GetString(W))
    41. End Sub


    Leider kommt da nur Mist raus
    und zwar ™TÍ<¨‡K¢`ˆˆÝ;U


    Einen Masterkey oder soetwas hatte ich afaik nicht gesetzt ..

    Kann mir jemand was dazu sagen?
    Eine vCard ist zunächst nichts Verschlüsseltes.
    Sie besteht aus Text oder auch Bildern, die einem Header folgen.
    Wenn Bilder intern eingebettet werden, dann sind sie nach Base64 codiert.
    Ich weiß nicht, warum du hier mit Crypt-Funktionen hantierst.

    Daniel Baumert schrieb:

    die habe ich ca. 2013 erstellt
    Womit?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Okay, hab den Namespace jetzt allerdings bekomme ich folgenden Fehler (siehe Anhang)

    Kann mir jemand sagen, woran das liegt?

    Ein Verweis auf die Assembly "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", die den Typ "System.Collections.Generic.IReadOnlyList`1" enthält, ist erforderlich. Fügen Sie dem Projekt einen Verweis hinzu.
    Bilder
    • Unbenannt.PNG

      13,39 kB, 507×199, 92 mal angesehen