Короче оч давно делал защиту от проксирования, которая по своей сути является говном и любой более-менее шарящий челик в ЛУА КРЯКАХ (ха) поймет что к чему и разьебет эту хуиту
в связи со своей ненадобностью сливается на съедение всяким современным хакерам бластхака ну или же на доработку и использование в своих проектах каким-нибудь крутым челиксом
Немного поясню че к чему и как оно работает (думал заебашу норм оформление но чет стало лень, оставил красненький заголовок)
* В начале скрипт сканит все функции в глобальной таблице _G (не сканит функции в таблицах, просто перебор и поиск функций в _G)
* Функции проверяются на тип (существует два известных мне типа функций - C и Lua, C это функции которое предоставлены скрипту при помощи Lua C API или подобных хуевин короче не были зарегистрированы с самого луа, ну и Lua это функции которые объявлены скриптом. Существует массив с валидными типами функций, и результат проверки каждой функции сравнивается со значением из таблицы, и если нихуя не совпало то пошел нахуй че ты меня проксируешь пидорас.)
* Далее нубский способ проверки на проксирование основанный на проверке рабочей директории скрипта, проверяется в какой папке находится скрипт и если это не moonloader то пошел нахуй че ты меня проксируешь пидорас.
* Далее самое интересное - почему же этот протектор должен помочь от проксирования:
Изменяются имена глобальных функций скрипта на рандомные, + на старое имя ставится ловушка (по желанию пользователя)
Метод .add возвращает идентификатор функции в таблице registered, благодаря которому далее протектор сможет взаимодействовать с этой функцией, к примеру вызывать ее.
Вызов функции:
После каждого вызова функции меняется ее имя что может сказаться (а точнее скажется) на производительности скрипта если вызывать ее в каком-нибудь рендере имгуи
Параметры как вы видите очень простые - передается идентификатор функции которую надо вызвать и далее просто параметры с какими надо вызвать функцию "спрятанную" за данным идентификатором
Протектор умеет менять имена функций без их вызова, к примеру можно создать поток который каждые 10 секунд будет обновлять имена фунок, но тут смотрите не проебитесь, если существует второй поток который взаимодействует с такими функциями - может произойти проеб и вы словите нарушение безопасности и все сломается
В нем существует ловушка которая крашит игру если функция снятия "ожидания краша" не была вызвана протектором.
Ниже прикрепляю исходник, ебитесь, изучайте. Буду рад если хоть кто-нибудь в этом луа комьюнити сделает годный рантайм протектор, а не поносные пакеры да крипторы.
Если данная тема вам интересна - позже запилю подобную тему про другой протектор основанный уже на немного других приемах.
Я же хочу сказать что это пиздец какая сырая версия и я давно ее делал, так что на всякие проебы внимание особо не обращайте.
Вырезал всякое говно, но суть оставил
Сриптону кстати в помощь, может научится уже делать функции локальными а не глобальными чтобы их каждый второй не проксировал.
в связи со своей ненадобностью сливается на съедение всяким современным хакерам бластхака ну или же на доработку и использование в своих проектах каким-нибудь крутым челиксом
Немного поясню че к чему и как оно работает (думал заебашу норм оформление но чет стало лень, оставил красненький заголовок)
* В начале скрипт сканит все функции в глобальной таблице _G (не сканит функции в таблицах, просто перебор и поиск функций в _G)
* Функции проверяются на тип (существует два известных мне типа функций - C и Lua, C это функции которое предоставлены скрипту при помощи Lua C API или подобных хуевин короче не были зарегистрированы с самого луа, ну и Lua это функции которые объявлены скриптом. Существует массив с валидными типами функций, и результат проверки каждой функции сравнивается со значением из таблицы, и если нихуя не совпало то пошел нахуй че ты меня проксируешь пидорас.)
* Далее нубский способ проверки на проксирование основанный на проверке рабочей директории скрипта, проверяется в какой папке находится скрипт и если это не moonloader то пошел нахуй че ты меня проксируешь пидорас.
* Далее самое интересное - почему же этот протектор должен помочь от проксирования:
jopa:
controller.init();
local SACM_FUNC = controller.add("sampAddChatMessage", sampAddChatMessage);
local DCW_FUNC = controller.add("disableCrashWaiting", disableCrashWaiting);
Изменяются имена глобальных функций скрипта на рандомные, + на старое имя ставится ловушка (по желанию пользователя)
Метод .add возвращает идентификатор функции в таблице registered, благодаря которому далее протектор сможет взаимодействовать с этой функцией, к примеру вызывать ее.
Вызов функции:
Lua:
if safeCall(DCW_FUNC) then
print("Crash waiting disabled")
end
safeCall(SACM_FUNC, "Hello, CCLP!", -1)
После каждого вызова функции меняется ее имя что может сказаться (а точнее скажется) на производительности скрипта если вызывать ее в каком-нибудь рендере имгуи
Параметры как вы видите очень простые - передается идентификатор функции которую надо вызвать и далее просто параметры с какими надо вызвать функцию "спрятанную" за данным идентификатором
Протектор умеет менять имена функций без их вызова, к примеру можно создать поток который каждые 10 секунд будет обновлять имена фунок, но тут смотрите не проебитесь, если существует второй поток который взаимодействует с такими функциями - может произойти проеб и вы словите нарушение безопасности и все сломается
В нем существует ловушка которая крашит игру если функция снятия "ожидания краша" не была вызвана протектором.
Ниже прикрепляю исходник, ебитесь, изучайте. Буду рад если хоть кто-нибудь в этом луа комьюнити сделает годный рантайм протектор, а не поносные пакеры да крипторы.
Если данная тема вам интересна - позже запилю подобную тему про другой протектор основанный уже на немного других приемах.
Я же хочу сказать что это пиздец какая сырая версия и я давно ее делал, так что на всякие проебы внимание особо не обращайте.
Вырезал всякое говно, но суть оставил
Сриптону кстати в помощь, может научится уже делать функции локальными а не глобальными чтобы их каждый второй не проксировал.