Деобфускатор луа

weksony

Новичок
Автор темы
22
1
чем можно деобфусцировать луа файл?
 

Вложения

  • Luasense.lua
    39.9 KB · Просмотры: 43

влад динозавр

Известный
1,299
616
в этом скрипте слишком много мусора, чтобы пытаться получить исходник (сам автор указывает, что не следует этого делать), но мне похуй на это, так что держи разбор

1729484876670.png



1. создается пустая таблица v24, которая будет использоваться для хранения зашифрованных символов.
2. функция проходит по каждому символу строки v22 с помощью цикла от 1 до длины строки (#v22).

для каждого символа:
1. получается его числовое значение с помощью string.byte.
2. извлекается соответствующий символ из ключа v23, используя индекс, который зависит от текущего индекса символа в строке и длины ключа (это обеспечивает циклическое использование ключа).
3. выполняется операция XOR между значением символа из строки и значением символа из ключа.
4. результат преобразуется обратно в символ с помощью string.char и добавляется в таблицу v24.
после завершения цикла все зашифрованные символы объединяются в одну строку с помощью table.concat, и результат возвращается.

пример работы:
если у вас есть строка "Hello" и ключ "key", то каждый символ "H", "e", "l", "l", "o" будет зашифрован с использованием соответствующих символов из ключа по циклу:
  • 'H' XOR 'k'
  • 'e' XOR 'e'
  • 'l' XOR 'y'
  • 'l' XOR 'k'
  • 'o' XOR 'e'

вот пример на lua, как раскрыть строчки кода оттуда:
Lua:
-- Определяем функции и переменные
local v0 = string.char;
local v1 = string.byte;
local v2 = string.sub;
local v3 = bit32 or bit;
local v4 = v3.bxor;
local v5 = table.concat;
local v6 = table.insert;

local function v7(v22, v23)
local v24 = {};
for v55 = 1, #v22 do
    v6(v24, v0(v4(v1(v2(v22, v55, v55 + 1)), v1(v2(v23, 1 + (v55 % #v23), 1 + (v55 % #v23) + 1))) % 256));
end
return v5(v24);
end

-- Расшифровка строк
local gui_set_visible_1 = v7("\151\179\52\14\22\79\135\145\187\126\10\65\67\215\132\188\52\7\77\93\215\132\182\55", "\233\229\210\83\107\40\46")
local gui_set_visible_2 = v7("\211\67\53\211\91\192\76\38\223\72\192\75\63\136\4\207\69\62\211\22\159\100\32\211\0\210\86\51\216\1", "\101\161\34\82\182")
local gui_set_visible_3 = v7("\250\12\94\251\133\227\140\58\225\64\88\247\214\188\131\32\239\1\92\237\133\195\150", "\78\x136\x109\x57\x158\x187\x130\x226")
local gui_set_visible_4 = v7("\44\x62\x254\x244\x96\x62\x247\x229\x55\x114\x248\x248\x51\x97\x248\x255\x57\x51\x252\x226\x96\x12\x233\x248\x48", "\145\x94\x95\x153")

-- Вывод расшифрованных строк
print("gui.set_visible 1:", gui_set_visible_1)
print("gui.set_visible 2:", gui_set_visible_2)
print("gui.set_visible 3:", gui_set_visible_3)
print("gui.set_visible 4:", gui_set_visible_4)

-- Пример условия с изменением переменной
if (v26 == (1 + 0)) then
-- Здесь можно использовать расшифрованные строки для вызова функции
gui.set_visible(gui_set_visible_1, v25)
gui.set_visible(gui_set_visible_2, v25)
gui.set_visible(gui_set_visible_3, v25)
gui.set_visible(gui_set_visible_4, v25)
-- Изменение переменной
v26 = 1 + 1;
end

вывод:
1729485670101.png



подобным образом можешь получить весь скрипт, если я не ебанат, и все правильно понял
 

Вложения

  • script_copy_17.lua
    44.3 KB · Просмотры: 22
  • Вау
  • Нравится
Реакции: ChаtGPT и weksony

weksony

Новичок
Автор темы
22
1
в этом скрипте слишком много мусора, чтобы пытаться получить исходник (сам автор указывает, что не следует этого делать), но мне похуй на это, так что держи разбор

Посмотреть вложение 254670


1. создается пустая таблица v24, которая будет использоваться для хранения зашифрованных символов.
2. функция проходит по каждому символу строки v22 с помощью цикла от 1 до длины строки (#v22).

для каждого символа:
1. получается его числовое значение с помощью string.byte.
2. извлекается соответствующий символ из ключа v23, используя индекс, который зависит от текущего индекса символа в строке и длины ключа (это обеспечивает циклическое использование ключа).
3. выполняется операция XOR между значением символа из строки и значением символа из ключа.
4. результат преобразуется обратно в символ с помощью string.char и добавляется в таблицу v24.
после завершения цикла все зашифрованные символы объединяются в одну строку с помощью table.concat, и результат возвращается.

пример работы:
если у вас есть строка "Hello" и ключ "key", то каждый символ "H", "e", "l", "l", "o" будет зашифрован с использованием соответствующих символов из ключа по циклу:
  • 'H' XOR 'k'
  • 'e' XOR 'e'
  • 'l' XOR 'y'
  • 'l' XOR 'k'
  • 'o' XOR 'e'

вот пример на lua, как раскрыть строчки кода оттуда:
Lua:
-- Определяем функции и переменные
local v0 = string.char;
local v1 = string.byte;
local v2 = string.sub;
local v3 = bit32 or bit;
local v4 = v3.bxor;
local v5 = table.concat;
local v6 = table.insert;

local function v7(v22, v23)
local v24 = {};
for v55 = 1, #v22 do
    v6(v24, v0(v4(v1(v2(v22, v55, v55 + 1)), v1(v2(v23, 1 + (v55 % #v23), 1 + (v55 % #v23) + 1))) % 256));
end
return v5(v24);
end

-- Расшифровка строк
local gui_set_visible_1 = v7("\151\179\52\14\22\79\135\145\187\126\10\65\67\215\132\188\52\7\77\93\215\132\182\55", "\233\229\210\83\107\40\46")
local gui_set_visible_2 = v7("\211\67\53\211\91\192\76\38\223\72\192\75\63\136\4\207\69\62\211\22\159\100\32\211\0\210\86\51\216\1", "\101\161\34\82\182")
local gui_set_visible_3 = v7("\250\12\94\251\133\227\140\58\225\64\88\247\214\188\131\32\239\1\92\237\133\195\150", "\78\x136\x109\x57\x158\x187\x130\x226")
local gui_set_visible_4 = v7("\44\x62\x254\x244\x96\x62\x247\x229\x55\x114\x248\x248\x51\x97\x248\x255\x57\x51\x252\x226\x96\x12\x233\x248\x48", "\145\x94\x95\x153")

-- Вывод расшифрованных строк
print("gui.set_visible 1:", gui_set_visible_1)
print("gui.set_visible 2:", gui_set_visible_2)
print("gui.set_visible 3:", gui_set_visible_3)
print("gui.set_visible 4:", gui_set_visible_4)

-- Пример условия с изменением переменной
if (v26 == (1 + 0)) then
-- Здесь можно использовать расшифрованные строки для вызова функции
gui.set_visible(gui_set_visible_1, v25)
gui.set_visible(gui_set_visible_2, v25)
gui.set_visible(gui_set_visible_3, v25)
gui.set_visible(gui_set_visible_4, v25)
-- Изменение переменной
v26 = 1 + 1;
end

вывод:
Посмотреть вложение 254671


подобным образом можешь получить весь скрипт, если я не ебанат, и все правильно понял
спасибо, но я так и не понял как ты деобфусцировал луа. Попробуй эту луа, можно опен сурс и в запускаемый код. если лень исправлять ошибки, я исправлю сам - не проблема
 

Вложения

  • !input.obfuscated.lua
    1.9 MB · Просмотры: 22

влад динозавр

Известный
1,299
616

weksony

Новичок
Автор темы
22
1
спасибо

спасибо, но я так и не понял как ты деобфусцировал луа. Попробуй эту луа, можно опен сурс и в запускаемый код. если лень исправлять ошибки, я исправлю сам - не проблема
крякните луа, деобфускатор не помогает