Есть файл xls, в нем на vba программа. В ней нужно ввести ключ, основанный (как я понимаю) на шифровании Атбаш. Я в этом не силен, но немного информации по этому шифру в сети нашел. Попробовал расшифровать, но программа говорит, что ключ не верный. Нужна помощь! За денежку, конечно.
То, что это Атбаш, я понял из кода программы. Идентификатор 9585V65Z8YCD-WD
Вот кусок кода:
[vba]
Код
Function computer_identifier$() Dim objWMIService, colDiskDrives, objDrive, HardDrives, Drive As Object Dim strComputer, Info As String, nb As Boolean strComputer = "." nb = False
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colDiskDrives = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive") For Each objDrive In colDiskDrives Set HardDrives = objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMedia") For Each Drive In HardDrives If Drive.Tag = objDrive.DeviceID Then If Drive.SerialNumber <> "" Then Info = CoDerAtbash$(Trim(Drive.SerialNumber)) nb = True End If End If Next If nb Then Exit For Next UserForm_Options.TextBox211 = Info 'k - 3 & End Function
[/vba]
[vba]
Код
Function CoDerAtbash$(ByVal txt$) Dim i&, n&, k& Dim testType As String Const s$ = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" '0123456789 k = Len(s$) For i = 1 To Len(txt$) n = InStr(s, Mid$(txt, i, 1)) If n > 0 Then Mid$(txt, i, 1) = Mid$(s, 52 - n, 1) Else If IsNumeric(Mid$(txt, i, 1)) Then k = CInt(Mid$(txt, i, 1)) Mid$(txt, i, 1) = 9 - k End If End If Next i CoDerAtbash = Reverse_Word(txt) End Function
[/vba] [moder]Оформляйте коды тегами (кнопка #)[/moder]
Есть файл xls, в нем на vba программа. В ней нужно ввести ключ, основанный (как я понимаю) на шифровании Атбаш. Я в этом не силен, но немного информации по этому шифру в сети нашел. Попробовал расшифровать, но программа говорит, что ключ не верный. Нужна помощь! За денежку, конечно.
То, что это Атбаш, я понял из кода программы. Идентификатор 9585V65Z8YCD-WD
Вот кусок кода:
[vba]
Код
Function computer_identifier$() Dim objWMIService, colDiskDrives, objDrive, HardDrives, Drive As Object Dim strComputer, Info As String, nb As Boolean strComputer = "." nb = False
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colDiskDrives = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive") For Each objDrive In colDiskDrives Set HardDrives = objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMedia") For Each Drive In HardDrives If Drive.Tag = objDrive.DeviceID Then If Drive.SerialNumber <> "" Then Info = CoDerAtbash$(Trim(Drive.SerialNumber)) nb = True End If End If Next If nb Then Exit For Next UserForm_Options.TextBox211 = Info 'k - 3 & End Function
[/vba]
[vba]
Код
Function CoDerAtbash$(ByVal txt$) Dim i&, n&, k& Dim testType As String Const s$ = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" '0123456789 k = Len(s$) For i = 1 To Len(txt$) n = InStr(s, Mid$(txt, i, 1)) If n > 0 Then Mid$(txt, i, 1) = Mid$(s, 52 - n, 1) Else If IsNumeric(Mid$(txt, i, 1)) Then k = CInt(Mid$(txt, i, 1)) Mid$(txt, i, 1) = 9 - k End If End If Next i CoDerAtbash = Reverse_Word(txt) End Function
[/vba] [moder]Оформляйте коды тегами (кнопка #)[/moder]mail211
Сообщение отредактировал Pelena - Понедельник, 21.09.2015, 12:16
Процедура CoDerAtbash - двунаправленная - она и шифрует и расшифровывает (см. вложение). Тут вопрос в функции [vba]
Код
Reverse_Word(txt)
[/vba] - ее в Вашем коде нет. Если это обычное отражение слова - аналог StrReverse - то это одно, а если она переставляет в заданном порядке символы - то это уже совсем другое
ЗЫ я не берусь расшифровать - по моему это попытка взлома чужой программы.
Процедура CoDerAtbash - двунаправленная - она и шифрует и расшифровывает (см. вложение). Тут вопрос в функции [vba]
Код
Reverse_Word(txt)
[/vba] - ее в Вашем коде нет. Если это обычное отражение слова - аналог StrReverse - то это одно, а если она переставляет в заданном порядке символы - то это уже совсем другое
ЗЫ я не берусь расшифровать - по моему это попытка взлома чужой программы.SLAVICK