LUA Obfuscation

Тема в разделе "Юмор/Креатив", создана пользователем soviet, 11 июн 2019 в 22:02.

Метки:
  1. soviet

    soviet Постоянный участник

    Регистрация:
    Вторник
    Сообщения:
    57
    Симпатии:
    4
    Обфусцирую ваши LUA скрипты.

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

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

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

    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
    Писать в ВК

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

    Azller Lollison SK-Team | vk.com/lollison
    Друг

    Регистрация:
    20 июл 2017
    Сообщения:
    1.004
    Симпатии:
    1.163
    Достану код скрипта под этим говном.
    Цена: 50р. / 1 шт.
    400р. / 10 шт.
     
    DonHomka, Quasper, paulohardy и 8 другим нравится это.
  3. imring

    imring чо тут
    Всефорумный модератор

    Регистрация:
    3 авг 2016
    Сообщения:
    1.866
    Симпатии:
    1.305
    social enemy, asdzxcjqwe и microsoft anatole нравится это.
  4. asdzxcjqwe

    asdzxcjqwe ¯\_(ツ)_/¯
    Друг

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

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

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

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

    soviet Постоянный участник

    Регистрация:
    Вторник
    Сообщения:
    57
    Симпатии:
    4
    на первый взгляд это base64, но ты сначала декомпилируй и потом говори.
     
  6. asdzxcjqwe

    asdzxcjqwe ¯\_(ツ)_/¯
    Друг

    Регистрация:
    13 фев 2017
    Сообщения:
    471
    Симпатии:
    438
    ну так где тестовый скрипт-то? никто не должен это покупать прежде чем не убедится, что защита хотя бы на троечку
     
  7. soviet

    soviet Постоянный участник

    Регистрация:
    Вторник
    Сообщения:
    57
    Симпатии:
    4
    предлагаю таки попробовать!

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

    Вложения:

    • ARZEat.luac
      Размер файла:
      78,8 КБ
      Просмотров:
      18
  8. hnnssy

    hnnssy knowname
    Друг

    Регистрация:
    23 мар 2013
    Сообщения:
    2.304
    Симпатии:
    1.817
    какой ты, однако, солнечный
     
    HYP0CR173 нравится это.
  9. pipsqueak

    pipsqueak Участник

    Регистрация:
    31 май 2019
    Сообщения:
    11
    Симпатии:
    5
    Кому нахуй твой луа обфускатор нужен, если в паблике их дохуище?
     
  10. asdzxcjqwe

    asdzxcjqwe ¯\_(ツ)_/¯
    Друг

    Регистрация:
    13 фев 2017
    Сообщения:
    471
    Симпатии:
    438
    как я и сказал, это пакер, а не обфускатор, и прокатывает тут обычный хук на loadstring

    -- оск вырезано
    
    -- Быдлокод 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
    + ты не должен паковать исходный код, сперва нужно скомпилировать скрипт, потом паковать
    не катит даже на троечку
     
  11. soviet

    soviet Постоянный участник

    Регистрация:
    Вторник
    Сообщения:
    57
    Симпатии:
    4
    засунул все в assert(loadstring( [[ ]] )) (); чтобы функция мейн не поменяла название
     
  12. imring

    imring чо тут
    Всефорумный модератор

    Регистрация:
    3 авг 2016
    Сообщения:
    1.866
    Симпатии:
    1.305
    я без хука пошел, и вручную декомпилировал.
    он 7 раза упаковал скрипт base64, когда он 2-3 раз упаковал, он использовал паблик обфускатор (https://blast.hk/threads/13380/page-3#post-338497)
    вот что получил:
    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]])) ();
    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..."))()
     
    Azller Lollison, social enemy и microsoft anatole нравится это.
  13. soviet

    soviet Постоянный участник

    Регистрация:
    Вторник
    Сообщения:
    57
    Симпатии:
    4
    извиняюсь за задержку, пробуйте свои силы.

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

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

    Проверенный

    Регистрация:
    24 сен 2013
    Сообщения:
    144
    Симпатии:
    146
    Самое интересное, что ты будто хочешь доказать, что тут дэбилы сидят ("пробуйте свои силы")... Тут не силы свои испытываешь , а тратишь своё время.. N раз запокованный код в base64 эту парашу распакуешь кодом из 15-20 строк.... в 2к19 засирать файл чтобы нельзя было прочесть ..... (это про размер)
    "return 69 return 1" <- весь твой код?
     
    Pavukk, asdzxcjqwe, Azller Lollison и 2 другим нравится это.
  15. soviet

    soviet Постоянный участник

    Регистрация:
    Вторник
    Сообщения:
    57
    Симпатии:
    4
    чет не то, снова пробуй
     
  16. asdzxcjqwe

    asdzxcjqwe ¯\_(ツ)_/¯
    Друг

    Регистрация:
    13 фев 2017
    Сообщения:
    471
    Симпатии:
    438
    тебе уже давали шанс, бесплатно опробовав твой тестовик, но ты облажался, никто не будет постоянно тестить твои скрипты бесплатно

    попытка наеба на рынке - нехорошо, -rep
     
    imring, Ranx, drags и ещё 1-му нравится это.
  17. soviet

    soviet Постоянный участник

    Регистрация:
    Вторник
    Сообщения:
    57
    Симпатии:
    4
    а что так можно было? окай, -rep тебе, а, точно, -rep -rep -rep -rep -rep -rep -rep
     
    Oreshka23 нравится это.
  18. Frapsy

    Проверенный

    Регистрация:
    4 сен 2016
    Сообщения:
    395
    Симпатии:
    193
    Чел, ты малость облажался и сейчас выглядишь крайне нелепо. Признай поражение "умов" и бесполезность твоего метода защиты, ибо это всяко лучше, нежели строить из себя клоуна.
     
    shinoa, social enemy, ™ ChipFamily и 2 другим нравится это.
  19. I_FYS

    I_FYS Знающий

    Регистрация:
    6 май 2019
    Сообщения:
    220
    Симпатии:
    38
    Дайте вы повыебываться пацану. Он потом все равно забьет на дело это, потому что покупать не будут
     
  20. soviet

    soviet Постоянный участник

    Регистрация:
    Вторник
    Сообщения:
    57
    Симпатии:
    4
    мне кажется, или я это уже знал?
    это тоже самое что писать в теме 2015 года что она устарела, слишком очевидно, обычное бесполезное набивание постов
    фенк ю, как с языка снял

    -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep -rep
     
  21. I_FYS

    I_FYS Знающий

    Регистрация:
    6 май 2019
    Сообщения:
    220
    Симпатии:
    38
    Вполне неплохо
     
  22. RatinovPlay

    RatinovPlay Активный участник

    Регистрация:
    16 мар 2016
    Сообщения:
    29
    Симпатии:
    1
    а шо такое сканер лужи?
     
  23. I_FYS

    I_FYS Знающий

    Регистрация:
    6 май 2019
    Сообщения:
    220
    Симпатии:
    38
    Наверно декомпилятор
     
  24. soviet

    soviet Постоянный участник

    Регистрация:
    Вторник
    Сообщения:
    57
    Симпатии:
    4
    я не хотел комментировать
    судя по всему хук к игре
    декомпилятор дает только псевдокод
     
  25. RatinovPlay

    RatinovPlay Активный участник

    Регистрация:
    16 мар 2016
    Сообщения:
    29
    Симпатии:
    1
    Просто коннектнутся дебагером?
     
    social enemy нравится это.