LUA Obfuscation

D

deleted-user-328926

Гость
Автор темы
Обфусцирую ваши LUA скрипты.

Цена: 100р. / 1 шт.
800р. / 10 шт.

Если вы просто меняете привязку на старом скрипте - обфусцирую бесплатно.

Код после декомпиляции .luac

Lua:
function randomFunction    __ (INPUT_VAR_0_)
    if INPUT_VAR_0_ ==  "=" then
        --jump to 0005 (if previous if statement is false) --0005 JMP-JMP
        return ""
    end
    var_0_3 = uget_0_0
    var_0_4 = INPUT_VAR_0_
    var_0_2 = uget_0_0.find(var_0_3, var_0_4)
    var_0_2 = var_0_2 -  1 --var_0_2 NUMBER-NUMBER
    var_0_3 = 6 --var_0_3 NUMBER-NUMBER
    var_0_4 = 1 --var_0_4 NUMBER-NUMBER
    var_0_5 = -1 --var_0_5 NUMBER-NUMBER
    for var_0_6 = var_0_3,var_0_4,var_0_5 do --location 0015, loop ends at 0033-1
        var_0_7 = ""
        var_0_8 = 2 --var_0_8 NUMBER-NUMBER
        var_0_8 = var_0_8 ^ var_0_6 --var_0_8 NUMBER-NUMBER
        var_0_8 = var_0_2 % var_0_8
        var_0_9 = var_0_6 -  1 --var_0_9 NUMBER-NUMBER
        var_0_10 = 2 --var_0_10 NUMBER-NUMBER
        var_0_9 = var_0_10 ^ var_0_9 --var_0_9 NUMBER-NUMBER
        var_0_9 = var_0_2 % var_0_9
        var_0_8 = var_0_8 - var_0_9 --var_0_8 NUMBER-NUMBER
        var_0_9 = 0 --var_0_9 NUMBER-NUMBER
        if var_0_9 < var_0_8 then
            --jump to 0030 (if previous if statement is false) --0030 JMP-JMP
        else
            --location 0030--0030 LOCATION-LOCATION_
            var_0_8 =  "0" --"1" STRING-STRING
        end
        var_0_1 = var_0_7 .. var_0_8
    end --location 0032, loops back to 0016-1
    return var_0_1
end


function randomFunction    var_2_3 (INPUT_VAR_0_,INPUT_VAR_1_)
    LEN unhandled at 0001
    if INPUT_VAR_1_ ~= 0 then
        --jump to 0006 (if previous if statement is false) --0006 JMP-JMP
        return ""
    end
    var_1_1 = 0 --var_1_1 NUMBER-NUMBER
    var_1_2 = 1 --var_1_2 NUMBER-NUMBER
    var_1_3 = 8 --var_1_3 NUMBER-NUMBER
    var_1_4 = 1 --var_1_4 NUMBER-NUMBER
    for var_1_5 = var_1_2,var_1_3,var_1_4 do --location 0010, loop ends at 0026-1
        var_1_7 = INPUT_VAR_0_
        var_1_8 = var_1_5
        var_1_9 = var_1_5
        var_1_6 = INPUT_VAR_0_.sub(var_1_7, var_1_8, var_1_9)
        if var_1_6 ==  "1" then
            --jump to 0023 (if previous if statement is false) --0023 JMP-JMP
            var_1_6 =  8 - var_1_5 --var_1_6 NUMBER-NUMBER
            var_1_7 = 2 --var_1_7 NUMBER-NUMBER
            var_1_6 = var_1_7 ^ var_1_6 --var_1_6 NUMBER-NUMBER
            if not var_1_6 then
            end -- maybe?
        else
            --location 0023--0023 LOCATION-LOCATION_
            var_1_6 = 0 --var_1_6 NUMBER-NUMBER
        end
        var_1_1 = var_1_1 + var_1_6 --var_1_1 NUMBER-NUMBER
    end --location 0025, loops back to 0011-1
    var_1_3 = var_1_1
    return string.char(var_1_3)
end


function someFunc2(INPUT_VAR_0_)
    var_2_2 = INPUT_VAR_0_
    var_2_3 = 1 --var_2_3 NUMBER-NUMBER
    var_2_5 = INPUT_VAR_0_
    var_2_4 = string.len(var_2_5)
    var_2_4 = var_2_4 -  64 --var_2_4 NUMBER-NUMBER
    var_2_1 = string.sub(var_2_2, var_2_3, var_2_4)
    var_2_3 = INPUT_VAR_0_
    var_2_5 = INPUT_VAR_0_
    var_2_4 = string.len(var_2_5)
    var_2_4 = var_2_4 -  63 --var_2_4 NUMBER-NUMBER
    var_2_6 = INPUT_VAR_0_
    var_2_2 = string.sub(var_2_3, var_2_4,  string.len(var_2_6) )
    var_2_4 = var_2_1
    var_2_6 = var_2_2
    var_2_5 =  "[^" .. var_2_6 .. "=]"
    var_2_3 = string.gsub(var_2_4, var_2_5, "")
    var_2_1 = var_2_3
    var_2_4 = var_2_1
    local randomFunction0 = function() end -- starts at  test.lua:0
    var_2_3 = var_2_1.gsub(var_2_4, ".", randomFunction0)
    var_2_4 = var_2_3
    local randomFunction1 = function() end -- starts at  test.lua:0
    var_2_3 = var_2_3.gsub(var_2_4, "%d%d%d?%d?%d?%d?%d?%d?", randomFunction1)
    return var_2_3
end


function someFunc3()
    local randomFunction2 = function() end -- starts at  test.lua:0
    __ = randomFunction2
    var_3_0 = {} --to find out the contents of this table look inside the lua file
    var_3_0._ = _G
    _ = var_3_0
    var_3_2 = "vDwt8DYHjRfFvIcJjyLL/RZHjRfLvIcJOyLJjREH" --strings longer than 40 characters get cut off, so check to see if there's more!
    var_3_0 = _._.loadstring( _._.__(var_3_2) )
    var_3_0()
    return
end

Писать в ВК

Если что, не бейте тапками :)
 

asdzxcjqwe

¯\_(ツ)_/¯
Друг
621
709
это не обфускация, а пакинг - для взлома ставишь хук на loadstring и получаешь код, либо берешь любой сканер лужи, заходишь со скриптом в игру, подключаешься к gta_sa.exe и достаешь распакованный код, т.е. это никак не защитит твой скрипт

+ за такую сумму что ты предлагаешь твой скрипт как минимум не должен открываться двумя декомпиляторами (должен быть свой антидекомп метод, паблик методы известно как обойти многим), должна быть защита от хуков и склеивания и после листинга байткода не должны быть видны имена функций и строки в том числе, также байткод должен быть хоть как-то засран.

+ ты должен предоставлять тестовый скрипт в двух видах: нескомпилированный оригинал и скомпилированный обфусцированный, чтобы перед покупкой твои услуги могли оценить, а именно убедиться, что ты действительно умеешь это делать правильно и эффективно

> взял base64 decode (https://gist.github.com/bortels/1436940#file-base64-lua-L22)
мама смотри я сделал луа обфускатор
base64 это вообще зашквар :hah:
значит, автор, все даже проще - в bc.lua убираешь лимит строк на 40 символов, декомпишь и расшифровываешь полученную строку
 
  • Нравится
Реакции: imring
D

deleted-user-328926

Гость
Автор темы
это не обфускация, а пакинг - для взлома ставишь хук на loadstring и получаешь код, либо берешь любой сканер лужи, заходишь со скриптом в игру, подключаешься к gta_sa.exe и достаешь распакованный код, т.е. это никак не защитит твой скрипт

+ за такую сумму что ты предлагаешь твой скрипт как минимум не должен открываться двумя декомпиляторами (должен быть свой антидекомп метод, паблик методы известно как обойти многим), должна быть защита от хуков и склеивания и после листинга байткода не должны быть видны имена функций и строки в том числе, также байткод должен быть хоть как-то засран.

+ ты должен предоставлять тестовый скрипт в двух видах: нескомпилированный оригинал и скомпилированный обфусцированный, чтобы перед покупкой твои услуги могли оценить, а именно убедиться, что ты действительно умеешь это делать правильно и эффективно


base64 это вообще зашквар :hah:
значит, автор, все даже проще - в bc.lua убираешь лимит строк на 40 символов, декомпишь и расшифровываешь полученную строку
на первый взгляд это base64, но ты сначала декомпилируй и потом говори.
 
D

deleted-user-328926

Гость
Автор темы
Достану код скрипта под этим говном.
Цена: 50р. / 1 шт.
400р. / 10 шт.
предлагаю таки попробовать!

АпапаПАХПахпахыпавыпхы Это же бесплатный декомпилятор при том даже не питоновский, код выглядет как говно и работать не будет аввЫАпвавф XD.........

Смотри какой крутой код я задекомпилил

Код:
function randomFunction    main ()
    sampSendChat("Видимо ты даун...")
    return
end


function someFunc1()
    local randomFunction0 = function() end -- starts at  test.lua:0
    main = randomFunction0
    return
end
не прочитал название темы и содержание, но уже кукарекаешь
 

Вложения

  • ARZEat.luac
    78.8 KB · Просмотры: 79

hnnssy

Известный
Друг
2,684
2,762
АпапаПАХПахпахыпавыпхы Это же бесплатный декомпилятор при том даже не питоновский, код выглядет как говно и работать не будет аввЫАпвавф XD.........

Смотри какой крутой код я задекомпилил

Код:
function randomFunction    main ()
    sampSendChat("Видимо ты даун...")
    return
end


function someFunc1()
    local randomFunction0 = function() end -- starts at  test.lua:0
    main = randomFunction0
    return
end
какой ты, однако, солнечный
 
  • Нравится
Реакции: user116675

pipsqueak

Участник
57
39
Кому нахуй твой луа обфускатор нужен, если в паблике их дохуище?
 

asdzxcjqwe

¯\_(ツ)_/¯
Друг
621
709
предлагаю таки попробовать!
как я и сказал, это пакер, а не обфускатор, и прокатывает тут обычный хук на loadstring

Lua:
-- оск вырезано

-- Быдлокод by soviet~, ^_^ --

local ev = require('lib.samp.events')

function main()
    repeat wait(0) until isSampAvailable()
    wait(50)
    sampRegisterChatCommand("eatz", eatz)
    sampRegisterChatCommand("healz", healz)
    sampRegisterChatCommand("aeatz", function () ee = not ee end)
    while true do
        wait(0)
    end
end

function eatz()
    sampSendClickTextdraw(673)
end

function healz()
    sampSendClickTextdraw(671)
end

function ev.onDisplayGameText(style, time, text)
     if ee then
        lua_thread.create(function()
            if text:find("You are hungry!") or text:find("You are very hungry!") then
            sampSendClickTextdraw(673)
            end
             end)
       end
end

+ ты не должен паковать исходный код, сперва нужно скомпилировать скрипт, потом паковать
не катит даже на троечку
 
D

deleted-user-328926

Гость
Автор темы
как я и сказал, это пакер, а не обфускатор, и прокатывает тут обычный хук на loadstring

Lua:
-- оск вырезано

-- Быдлокод by soviet~, ^_^ --

local ev = require('lib.samp.events')

function main()
    repeat wait(0) until isSampAvailable()
    wait(50)
    sampRegisterChatCommand("eatz", eatz)
    sampRegisterChatCommand("healz", healz)
    sampRegisterChatCommand("aeatz", function () ee = not ee end)
    while true do
        wait(0)
    end
end

function eatz()
    sampSendClickTextdraw(673)
end

function healz()
    sampSendClickTextdraw(671)
end

function ev.onDisplayGameText(style, time, text)
     if ee then
        lua_thread.create(function()
            if text:find("You are hungry!") or text:find("You are very hungry!") then
            sampSendClickTextdraw(673)
            end
             end)
       end
end

+ ты не должен паковать исходный код, сперва нужно скомпилировать скрипт, потом паковать
не катит даже на троечку
засунул все в assert(loadstring( [[ ]] )) (); чтобы функция мейн не поменяла название
 

imring

Ride the Lightning
Всефорумный модератор
2,361
2,546
я без хука пошел, и вручную декомпилировал.
он 7 раза упаковал скрипт base64, когда он 2-3 раз упаковал, он использовал паблик обфускатор (https://blast.hk/threads/13380/page-3#post-338497)
вот что получил:
Lua:
assert(loadstring([[
-- АЛЕКС ДОНЛИНО СОСЕТ ХUЙ!!! --

-- Быдлокод by soviet~, ^_^ --

local ev = require('lib.samp.events')

function main()
    repeat wait(0) until isSampAvailable()
    wait(50)
    sampRegisterChatCommand("eatz", eatz)
    sampRegisterChatCommand("healz", healz)
    sampRegisterChatCommand("aeatz", function () ee = not ee end)
    while true do
        wait(0)
    end
end

function eatz()
    sampSendClickTextdraw(673)
end

function healz()
    sampSendClickTextdraw(671)
end

function ev.onDisplayGameText(style, time, text)
     if ee then
        lua_thread.create(function()
            if text:find("You are hungry!") or text:find("You are very hungry!") then
            sampSendClickTextdraw(673)
            end
             end)
       end
end]])) ();
Lua:
assert("ENCRYPTED BY SOVIET.")
assert("THERE ARE NO STEALERS.")
assert("ALEX DONLINO, SOSI HYI.")

function __(data)
    local a = string.sub(data, 1, string.len(data) - 64)
    local b = string.sub(data, string.len(data) - 63, string.len(data))
    data = string.gsub(a, '[^'..b..'=]', '')
    return (data:gsub('.', function(x)
        if (x == '=') then return '' end
        local r,f='',(b:find(x)-1)
        for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end
        return r;
    end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x)
        if (#x ~= 8) then return '' end
        local c=0
        for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end
        return string.char(c)
    end))
end

_ = { _ = _G }

_._.loadstring(_._.__("rs9OHsgXIVJErvRzItBBnVMXIVJBrvRzhtBzIVkXIV..."))()
 
D

deleted-user-328926

Гость
Автор темы
извиняюсь за задержку, пробуйте свои силы.

файл настолько большой, что не умещается, чем дольше ждать тем больше выйдет файл, ну, не стал томить вас
http://rgho.st/7DMrL7gXz

я без хука пошел, и вручную декомпилировал.
он 7 раза упаковал скрипт base64, когда он 2-3 раз упаковал, он использовал паблик обфускатор (https://blast.hk/threads/13380/page-3#post-338497)
вот что получил:
Lua:
assert(loadstring([[
-- АЛЕКС ДОНЛИНО СОСЕТ ХUЙ!!! --

-- Быдлокод by soviet~, ^_^ --

local ev = require('lib.samp.events')

function main()
    repeat wait(0) until isSampAvailable()
    wait(50)
    sampRegisterChatCommand("eatz", eatz)
    sampRegisterChatCommand("healz", healz)
    sampRegisterChatCommand("aeatz", function () ee = not ee end)
    while true do
        wait(0)
    end
end

function eatz()
    sampSendClickTextdraw(673)
end

function healz()
    sampSendClickTextdraw(671)
end

function ev.onDisplayGameText(style, time, text)
     if ee then
        lua_thread.create(function()
            if text:find("You are hungry!") or text:find("You are very hungry!") then
            sampSendClickTextdraw(673)
            end
             end)
       end
end]])) ();
Lua:
assert("ENCRYPTED BY SOVIET.")
assert("THERE ARE NO STEALERS.")
assert("ALEX DONLINO, SOSI HYI.")

function __(data)
    local a = string.sub(data, 1, string.len(data) - 64)
    local b = string.sub(data, string.len(data) - 63, string.len(data))
    data = string.gsub(a, '[^'..b..'=]', '')
    return (data:gsub('.', function(x)
        if (x == '=') then return '' end
        local r,f='',(b:find(x)-1)
        for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end
        return r;
    end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x)
        if (#x ~= 8) then return '' end
        local c=0
        for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end
        return string.char(c)
    end))
end

_ = { _ = _G }

_._.loadstring(_._.__("rs9OHsgXIVJErvRzItBBnVMXIVJBrvRzhtBzIVkXIV..."))()
На самом деле скрипт был упакован 2 (!) раза base64 и 1 раз паблик обфускатором. Никакого 2-3 раза.
 

drags

Известный
Проверенный
155
210
извиняюсь за задержку, пробуйте свои силы.

файл настолько большой, что не умещается, чем дольше ждать тем больше выйдет файл, ну, не стал томить вас
http://rgho.st/7DMrL7gXz


На самом деле скрипт был упакован 2 (!) раза base64 и 1 раз паблик обфускатором. Никакого 2-3 раза.
Самое интересное, что ты будто хочешь доказать, что тут дэбилы сидят ("пробуйте свои силы")... Тут не силы свои испытываешь , а тратишь своё время.. N раз запокованный код в base64 эту парашу распакуешь кодом из 15-20 строк.... в 2к19 засирать файл чтобы нельзя было прочесть ..... (это про размер)
"return 69 return 1" <- весь твой код?
 
D

deleted-user-328926

Гость
Автор темы
Самое интересное, что ты будто хочешь доказать, что тут дэбилы сидят ("пробуйте свои силы")... Тут не силы свои испытываешь , а тратишь своё время.. N раз запокованный код в base64 эту парашу распакуешь кодом из 15-20 строк.... в 2к19 засирать файл чтобы нельзя было прочесть ..... (это про размер)
"return 69 return 1" <- весь твой код?
чет не то, снова пробуй