This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Обфускация/шифровка/привязка скрипта

uvanov

Начинающий специалист
Автор темы
6 Мар 2022
117
50
71
Шалом-алейкум форумчане. У меня встал. Один вопрос.
Относительно недавно соседний мультиплеер (первая буква F, последняя М), ввёл для разработчиков скриптов возможность их обфускации. Правда со своими ограничениями, в виде языка программирования Lua, и продажей исключительно через маркетплейс Tebex, но не суть.
На отечественном Рейдже такой вещи естественно нету, вопрос - возможно ли как-то воссоздать самостоятельно?

Сделать код нечитаемым, привязать как-нибудь к конкретному серверу (как это сделано в F-M). Что-то в этом духе.
Тема скорее дискуссионная, было бы интересно почитать мнения опытных разработчиков, и Дэвелюха @xDeveluxe
 

uvanov

Начинающий специалист
Автор темы
6 Мар 2022
117
50
71
Чутка дополню, речь идёт не об защите скриптов на вашем сервере, а о тех скриптах, которые идут на продажу другим серверам. Ну, мало ли кто-то не понял.
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,220
1,425
191
27
Если честно, выглядит как мёртвый номер, чисто на мой субъективный взгляд.
Что угодно можно взломать, вопрос времени и желания.
Если могут взломать трипл эй (AAA) игры, в разработку которых вкладывали миллионы долларов, то о какой защите скрипта для мультиплеера может идти речь?
Возможно, можно сделать что-то +-, но я не верю в "идеальную защиту" ни в чём, уж тем более в мультиплеере в какой бы там ни было игре.
 

uvanov

Начинающий специалист
Автор темы
6 Мар 2022
117
50
71
Ну вот мне интересна реализация этого "+-".
 

aspidemon

Активный участник
26 Сен 2022
116
42
40
для продажи ничего не подойдет, особенно если ты пишешь на ноде, а если на шарпе, то просто dll скидывай и все, но дизассемблером можно спокойно получить какой-никакой код и понять как он работает +-, и потом уже написать свой код смотря на логику того скрипта
а вообще люди продают исходный код, так что смысла нет продавать его как "готовый продукт"
 

aspidemon

Активный участник
26 Сен 2022
116
42
40
в шифровании тоже не смысла, так как зашифрованный код - это неисполняемый код, тебе нужно будет еще людям скидывать дэшифратор, не вариант
обфускация поможет максимум от школьников, но от людей знающих как делать дэобфускацию ты не защитишься
 

uvanov

Начинающий специалист
Автор темы
6 Мар 2022
117
50
71
Печально конечно. Хотелось бы пописать какие-нибудь скрипты на продажу, но зная снг-менталитет, долго оно вне паблика не пробудет)
 

Inoi

/dev/null
VIP
15 Окт 2020
2,371
1,413
208
34
Глупости какие-то говоришь одну за другой, если честно.
Без негатива.

Во-первых зашифрованный код != неисполняемый код.
Во-вторых да, обфускация - это не панацея, но говорить что "поможет чисто от школьников" - очень самоуверенно.
Получается, разработчики ресурсов вроде таких и их клиенты не в курсе, что много лет занимаются хуйнёй.
А ещё можно кастомизировать даже простые вещи, например.

Дизассемблер != декомпилятор
Дизассемблером ты получишь машинный код, переведённый в ассемблер.
Поймёшь из него ты примерно нихуя.

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

Стоит ли с таким подходом просто нихуя не делать "потому что всё равно сольют" - личное дело каждого конечно.
Если ты делаешь заебись, то процент людей, которые будут исправно платить за твои услуги будет всегда в разы выше, чем небольшое количество людей, которое сломает в любом случае то, что кто-то делает принципиально.

В 21 веке тебе нужно продавать не конечный продукт - а в первую очередь сервис.
Время, типа такое сейчас. То что ты сделал вчера - через два дня могут уже сделать лучше.

Ну выпустил ты палку пол года назад - ну спиздили у тебя её. Да и хуй бы с ней.
К твоей палке давно прикручено ещё пятнадцать мелких веток, сама она уже не так сильно измазана в говне, да и в целом бьёт посильнее.
Плюс все видят, что ты готов подорваться и ещё пару веточек подправить, а может вообще целую бейсбольную биту придумать - она то ещё сильнее по голове хуярит.
А сидеть боятся и плакаться на маленьких жадных детей, которые мать родную за полторы тыщи перепродадут - сомнительная идея.
Примерно такая же, как выпустить два корявых скрипта и рассчитывать, что они будут тебя кормить ближайшие пятьдесят лет, если ты просто темки на форуме будешь раз в недельку апать.
 
Последнее редактирование:
Реакции: XDeveluxe

aspidemon

Активный участник
26 Сен 2022
116
42
40
я конечно не могу верить тебе на слово, но я расшифровал твой код
Код:
(function($) {
$(document).ready( function () {

if( $('div').is('.calc') ) {

$('.calc > .row').each(function(i) {
$(this).attr('data-step', i+1);
});

$('.calc > [data-step="1"]').addClass('active');

$('a[href="/stopmost/"]').click(function(e) {
e.preventDefault();
$('.calc').fadeToggle();
xaCounter13887475.reachGoal('calc_open');
});

if ( $('w6end');
xaCounter13887475.reachGoal('calc_send');
}
});
setTimeout(function() {
$('.calc').fadeOut(777);
$('a.buttonsForDocs').css('margin-top', '15px');
},7000);
}
});

$('#thanksButton').on('click', function() {
$('.calc').fadeOut(100);
$('a.buttonsForDocs').css('margin-top', '15px');
callRobot();
});

$('.calc .close').on('click', function() {
$('.calc').remove();
$('a.buttonsForDocs').css('margin-top', '15px');
});

}

})(jQuery);
 

aspidemon

Активный участник
26 Сен 2022
116
42
40
я бы хотел услышать правильно ли расшифровал
 

Inoi

/dev/null
VIP
15 Окт 2020
2,371
1,413
208
34
я бы хотел услышать правильно ли расшифровал
Я думаю, ты сам знаешь ответ на свой вопрос.
Поменял код на ссылку на статью, чтобы чуть более понятнее стало, мысль о чем я хотел этим кусочком донести.
Даже обоссаный бейс64, который узнаётся визуально - можно просто придумать, как чуть-чуть усложнить, например.
 

aspidemon

Активный участник
26 Сен 2022
116
42
40
ты можешь сделать шифр твоего кода, я его за 20-30 минут расшифрую и скину тебе

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

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

Inoi

/dev/null
VIP
15 Окт 2020
2,371
1,413
208
34
Я чуть-чуть увлекался реверс-инженерингом, честно говоря. Совсем чуть-чуть, конечно, сформировать у себя в голове код исходной программы, интерпретацию которой я вижу на ассемблере - врядли бы смог. Но наверное, и такие гении существуют.

Если честно я то ли тупой, то ли не очень успеваю за твоими мыслями, которые почему-то мелькают через вроде бы разные понятия.
Я не пользовался дотпиком, но вроде думал что это прям сишарп декомпилятор а не дизассемблер. То есть он - конкретно покажет что-то близкое к исходному коду.
Но я так подозреваю, что на самом деле даже близко всё ещё не его, потому что это просто конвертация инструкций машинного кода в инструкции языка.

Но ведь машинный код и ассемблер - это разные вещи.

Я не очень понимаю, как дезассемблировав какой-нибудь кусочек софта и увидев отрывочек программы на ассемблере, вроде
Код:
cli
lgdt (gdtr)
mov %cr0, %eax
or $0x1, %eax
mov %eax, %cr0
- сторонний человек может вообще хоть что-то понять, не говоря уж о том, чтобы собрать и видоизменить исходник.
Но мои познания остановились где-то на стопах программы между xorами, чтобы отловить проверочку на лицензию, декомпилированиями чужого софта я никогда не увлекался, тем более попытками изучать ассемблер или упаси боже машинный код в 2023 году.

Но ну РАЗУМЕЕТСЯ блять всегда найдутся профессионалы своего дела, и сломают что угодно, глупо в этом сомневаться.
Защитить что то без веба, сторонних проверок и авторизаций, кусков скрипта на удалённом сервере - очевидно невозможно.

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

p.s.
Чувствую, что тебе хочется
Тут правда будет чуть-чуть посерьёзнее.
 

Вложения

  • kekw.js
    64 KB · Просмотры: 56
Последнее редактирование: