Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Umkehrfunktion
#1
Hallo,

der beigefügte Code wandelt 4 Strings mit Zeichen > 127 (hier entfernt) in Klartext um. Kann man das umkehren, also ein Klartext eingeben und die verschleierten Strings erhalten?

Code:
Public Sub Start() 'Auto_Open()
    Debug.Print (Fn_out(Fn_inn("ca 10 Zeichen > 127", "kq3OKLXwz"), Fn_inn("ca 10 Zeichen > 127", "yr2i39VP8")) + Fn_out(Fn_inn("ca 10 Zeichen > 127", "QldsyzwRE"), Fn_inn("ca 10 Zeichen > 127", "RBivIzKmM")))
End Sub

Public Function Fn_out(ByVal str_1 As String, ByVal str_2 As String) As String
    Dim i As Long
For i = 1 To Len(str_1)
    V_6 = V_6 & Chr(Asc(Mid(str_2, IIf(i Mod Len(str_2) <> 0, i Mod Len(str_2), Len(str_2)), 1)) Xor Asc(Mid(str_1, i, 1)))
Next i
Debug.Print , "Fn_out", V_6
    Fn_out = V_6
End Function

Public Function Fn_inn(ByVal T As String, P As String) As String
    On Error Resume Next

Dim s(0 To 255) As Integer, c As Integer, i, B
Dim L() As Byte, R() As Byte, D As Byte, By_1 As Byte

R() = StrConv(T, vbFromUnicode)
L() = StrConv(P, vbFromUnicode)

For i = 0 To 255
    s(i) = i
Next i

For i = 0 To 255
    D = s(i): Debug.Print i, D, s(i)
    s(i) = s((B + s(i) + L(i Mod Len(P))) Mod 256)
    s((B + s(i) + L(i Mod Len(P))) Mod 256) = D
    Debug.Assert D = i
Next i

B = 0

For i = 0 To UBound(R)
    c = (c + s((B + 1) Mod 256)) Mod 256
    s((B + 1) Mod 256) = s(c)
    s(c) = s((B + 1) Mod 256)
    R(i) = R(i) Xor (s((s((B + 1) Mod 256) + s(c)) Mod 256))
Next i

Fn_inn = StrConv(R(), vbUnicode)
Debug.Print "Fn_inn", Fn_inn
End Function

Die Debug-Befehle habe ich eingefügt.

Im Hintergrund steht die Frage, welche Kenntnisse und Motivation der Entwickler gehabt haben könnte.

In jeden Fall kein langweiliger VBA-Code.

Beim Wechsel von einer Windows- zu einer Linux-Umgebung machen die entfernten Zeichenketten Probleme, bei Bedarf kann ich sie aber als Hex-Code per PN zuschicken.

mfg
Antworten Top
#2
Na, Chef-Kryptologe? Smile

Kann man sicherlich oder vermutlich (der Ersteller muss es ja z.B. haben) ... braucht halt Gehirnschmalz.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste