#4
by IamAlexy
онлайн это хорошо... главное незабывайте сохранять копии незашифрованных модулей и затем выкладывать их в обменниках...
#5
by Serg_1960
Красивое решение вопроса. Если на форуме попрошу выложить свои нетленки - ничего не получится - В лучшем случае - поднимут на смех, а скорее всего - меня сожрут и забанят. Автор - молодец. Красивое решение вопроса - нетленки - бесплатно.
#16
by Азат
не пойму, в чем глобальная мегамысль автора? регать домен, платить за него бабки и отдавать услугу бесплатно????
#17
by pessok
бесплатна она пока тестят ее, имхо, потом сделает рекламу, платную регистрацию и т.п.. да и стоимость домена... щас даже одноэсник-студент за час больше получает, чем платить за год за домен
#18
by PLUT
обфускатор надо допилить, чтобы еще операторы и методы на буржуйском языке))) вот тогда точно мегаобфускатор получится
#20
by Undefined vs NULL
вот оригинал Procedure Operator Export If CurrentDate<='20100301' Then Return; EndIf; QueryText = "SELECT | Продажи.Регистратор, | SUM(Продажи.СтоимостьРегл) AS Summa |FROM | РегистрНакопления.Продажи AS Продажи | |GROUP BY | Продажи.Регистратор"; Query = New Query(QueryText); VT = Query.Execute.Unload; Sum = 0; For each Row in VT do Sum = Sum + Row.Summa; EndDo; EndProcedure вот результат procedure operator export if currentdate<=_c then return; endif; b___ = _d__(__d_,__d__); _b = new query(b___); vt = _b.execute.unload; __b = d__; for each row in vt do __b = __b + row.summa; enddo; endprocedure хреновая обфускация
#22
by Undefined vs NULL
+ шучу, весь модуль удачно, просто там была эта процедура-шутка, вот обратил внимание
#24
by Адинэснег
ПОСОНЫ НАЛЕТАЙ У МЕНЯ БРАТ ПРОВЕРИЛ КАПЕЦ КАРТА В БАЗЕ ЧУТЬ ВСЁ НЕ СНЯЛИ СПАСИБО ДРУГУ ОН СЕРВИС ЗОПИЛИЛ
#25
by Stim
а обратная фускация реализована? а то понадобится самому допилить - и потратишь неделю на разбор)
#26
by le_
После ввода информации о карте она автоматически попадает в базу кардера и сервис возвращает положительный результат? )
#32
by фобка
имхо, надо еще убирать пробелы у операторов " = ", "+","-" хотя и так визуально неплохо смотрится, даже на маленьких функциях.
#34
by К_Дач
Пусть автор поделится, какмими методами криптозащиты он пользовался))) помимо обычной замены имен с помощью ключа, очевидно, анализируется ход выполнения модуля и спомощью "перейти" запутывается, не меняя при этом сам ход
#36
by К_Дач
Очень круто вобщем, без знания лога на расшифровку уйдет количество времени, несоизмеримое с эффективностью от взлома. Автор молодец, добился фактически фактически "гарантированной стойкости". Скорее всего после бета-теста, услуга станет платной. Между прочим, у сайта есть огромные шансы подружиться с инфостартом... большинство обрадуется возможности защитить свои нетленки. Ну а Доржи - тот вообще будет счастлив
#39
by rotting
поубивал бы, понаписывают глючный код, а потом еще и паролями всякими позакрывают......
#43
by К_Дач
наверняка функционал расшифровки будет предоставляться после покупки услуги. А ключ - он скорее всего будет индивидуальным и привязан к пользователю, чтобы один разработчик не мог расшифровывать код другого...
#45
by PLUT
функционал расшифровки то зачем? не проще хранить исходники? как вариант - исходники и результаты хранить в БД, привязать к пользователю. дальше - банальное сравнение
#48
by pessok
дык ты пишешь то по нормальному коду, Ctrl+A, Ctrl+C, потом в базе "для клеендов" Ctrl+V
#49
by К_Дач
да, но так для разработки и поддержки собственных продуктов тебе всегда нужен доступ к сайту и интернет. Ну и защищенное соединение, разумеется.
#50
by PLUT
в качестве нагрузки к тексту обфускации можно исходники зашифрованные прям в модуль добавлять, зашифровать каким-нибудь открытым ключом, по принципу ЭЦП)
#51
by Stim
это не то. тебе нужно вносить исправление в функционал клиента, исхдники могут потеряться
#53
by Stim
у клиента - потому что у него функционал. у него могут быть 100500 обработок, исходники от которых уже давно канули в небытие
#55
by PLUT
несложно свою обормотку написать для шифрования исходного текста модуля. потом его тупо в текст модуля в конце добавить. засада будет, если кто-то его оттуда выпилит, а бэкапов не будет. но если клиенты на поддержке, то репозиторий .CF клиентов нужно у себя держать
#56
by Никола_Питерский
ТС передай коллеге пускай мутит авторизацию через другие сервисы(соц. сети, и прочее зло), вломы(лениво) региться, а обратная связь только через регистрацию !
#57
by PLUT
Tyson Джордж Вашингтон Kavar vde69 Вадя Alex33 PowerBoy tomvlad J_B Starhan vladko Bida Begin le_ rij ilpar Я не курил forforumandspam notton Stim Lokli Адинэснег Никола_Питерский фобка skiller3000 PLUT Пухлый кот эцп ReaderT Есть вопросик бомболюк pessok egorious geka-geka БледноЗолотистый НеМогуВойтиВАккаунт Юный 1С Нетленка1С автор в ветке?
#58
by vde69
для автора советы 1. добавить мусора для неверной работы "перейти к определению" 2. Все процедуры и функции сделать с параметрами и по параметру отрабатывать мусорные варианты (для защиты от оптимизаторов выкидывающих мусор)
#61
by Нетленка1С
Всем большое спасибо за советы и обсуждение данного проекта. Отвечу на некоторые вопросы: 1. Возможности обратной деобфускации без потери данных нет, т.к. часть информации при защите теряется безвозвратно. Любой защищенный коммерческий продукт, можно сломать, восстановить часть кода, методами обратной инженерии, но цель обфускатора в значительном усложнении его несанкционированного использования. 2. Английский язык, если нужнен, постараюсь добавить в ближайшее время. 3. Методы защиты планирую добавлять, в том числе и предикаты и защиту от Перехода к определению 4. Авторизацию через другие сервисы добавлю в ближайшее время
#62
by PLUT
что насчет ? бред? а вообще такая защита для коммерческого продукта - по сути привязка клиента к "Славик незаменимый" вдруг приходит телеграмма: "Папа всё. Целую. Мама"
#64
by vde69
такая защита все равно ломается и не так сложно как кажется на первый взгляд... уверен, что через некоторое время появится анти-офбуксатор :)
#65
by Stim
защищать нужно от продажи, а не от сопровождения. клиент должен иметь право обращаться к другим разработчикам для изменения/сопровождения, но не должен иметь права продавать продукт
#66
by PLUT
она для затруднения допиливания "левыми" лицами, у которых по идее "башню снести" должно. т.е. не совсем защита для ломания
#71
by Feunoir
Подозрение на то, что неправильно обрабатывается "константа типа дата". Из такого кода: [1c] Процедура ВыбПериодНажатие(Элемент) НастройкаПериода = Новый НастройкаПериода; НастройкаПериода.РедактироватьКакИнтервал = Истина; НастройкаПериода.РедактироватьКакПериод = Истина; НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период; НастройкаПериода.УстановитьПериод(НачалоПериода, ?(КонецПериода='0001-01-01', КонецПериода, КонецДня(КонецПериода))); Если НастройкаПериода.Редактировать Тогда НачалоПериода = НастройкаПериода.ПолучитьДатуНачала; КонецПериода = НастройкаПериода.ПолучитьДатуОкончания; КонецЕсли; КонецПроцедуры [/1c] получается такой: [1c] функция ___a_ перейти ~a__;~___a:перейти ~_a_;~_a:перейти ~__a;~__a__:возврат "";~__a:перейти ~___a;~_a___:возврат -1;~__a_:возврат новый списокзначений;~a__:перейти ~_a;~a___:возврат истина;~_a__:возврат "";~_a_:перейти ~a___; конецфункции функция ___d перейти ~__c_;~d:перейти ~d_;~_c___:перейти ~___c_;~d___:возврат '00010101000000';~__d:возврат null;~___c_:перейти ~d;~__c_:перейти ~_c___;~__c__:возврат 01;~d_:перейти ~__c__;~_d:возврат "";~d__:возврат 1; конецфункции процедура выбпериоднажатие(a) a_ = f__; a_.редактироватькакинтервал = ___a_; a_.редактироватькакпериод = __b__; a_.вариантнастройки = вариантнастройкипериода.период; a_.установитьпериод(началопериода, ?(конецпериода='_c__-___d-_e', конецпериода, конецдня(конецпериода))); если a_.редактировать тогда началопериода = a_.получитьдатуначала; конецпериода = a_.получитьдатуокончания; конецесли; конецпроцедуры функция _c__ перейти ~_b___;~c:перейти ~c_;~_c_:возврат новый списокзначений;~c_:перейти ~c__;~c__:перейти ~c___;~__c:возврат истина;~___c:возврат "";~_b___:перейти ~c;~c___:перейти ~___b_;~___b_:возврат 0001;~_c:возврат 0; конецфункции функция _e перейти ~_d_;~_d__:возврат 01;~___d_:перейти ~_d__;~e___:возврат "";~__d__:перейти ~_d___;~e__:возврат неопределено;~e:возврат -1;~e_:возврат 1;~__d_:перейти ~__d__;~_d_:перейти ~__d_;~_d___:перейти ~___d_; конецфункции функция f__ перейти ~__e;~_e___:возврат истина;~__e_:перейти ~__e__;~__e__:перейти ~___e;~_e__:перейти ~__e_;~f_:возврат ложь;~__e:перейти ~_e_;~f:возврат null;~_e_:перейти ~_e__;~___e:возврат новый настройкапериода;~___e_:возврат 1; конецфункции функция __b__ перейти ~b;~b_:возврат истина;~__b:перейти ~b_;~_b__:возврат ложь;~b__:перейти ~b___;~___b:возврат "";~b:перейти ~b__;~b___:перейти ~_b;~_b_:возврат ложь;~__b_:возврат неопределено;~_b:перейти ~__b; конецфункции [/1c] при проверке синтаксиса ругается на: a_.установитьпериод(началопериода, ?(конецпериода=<<?>>'_c__-___d-_e', конецпериода, конецдня(конецпериода)));
#75
by Feunoir
Это-ж бета-тест. А я бета-тестер. Поэтому и пишу про найденные ошибки в надежде, что "автор допилит". У меня чисто академический интерес, так как сам обфускацией не увлекаюсь.
#76
by quest
вот понять не могу - там регэкспами парситься или все же строиться ast и по нему уже компилируется?
#79
by orefkov
Еще обращения к свойствам/методам после точки запилить через Выполнить, с шифрованием имен.
#80
by orefkov
Перед КонецХХХ(Если,Процедуры,Функции,Цикла) точку с запятой можно не ставить. новый списокзначений заменить на новый(функция_возвращающая_строку_списокзначений)
#81
by PLUT
теперь модули без исходных текстов для скрытия г@внокода не нужны! теперь можно обфускивать спокойно и не париться ура товарищи)
#82
by Serg_1960
Ты не прав. г@внокод изначально обфусцирован - его автор сам себе злобный обфускатор.
#84
by МуМу
С точки зрения производительности не есть гуд. Но с точки зрения маркетинга и подачи - молодец! Хотя ошибочки есть. А насчет защиты - автор, не слушай жадных, злых одинэсников. Защищать нужно - ничто так не внушает веру в человечность и порядочность как стопроцентная предоплата(не мое).
#85
by Злопчинский
что мешает при обфурскации запрашивать (или генерить самому) длинный пароль. Исходный нормальный код - зипуется с паролем и перекодируется в читабельные букавки, зазипованный тескт вставляется как блок комментариев. Пароль - выдается разработчику вместе с обфусцировнным кодом.
#88
by AlexBor
Скажите а как в плане законности, кто то по договору что то сделал или слепил ту же нетленку, и вот вам пожалуйста вроде как и не совсем и пароль, но как то и защита что ли. Т.е. допустим ты ушел и после тебя пришел другой работать открыл и что дальше какие могут быть варианты развития событий?
#89
by МуМу
В продолжении темы. Этот текст отправляется mms, в ответ на него получается мастер код. Затем в ответ на него отправляется определенная сумма денег по яндекс мани, а затем отправляется клиент код.:)
#90
by Serg_1960
Обфускация (от лат. obfuscare — затенять, затемнять; и англ. obfuscate — делать неочевидным, запутанным, сбивать с толку)
#91
by КонецЦикла
Должна ли поставка продукта с ТАКИМ кодом оговариваться в договоре интересно? Или типа буквы знакомые и хорошо?
#92
by Serg_1960
Если автор алгоритмы пишет по догору для заказчика, авторские права (как правило) передаются заказчику и обфускация - вне закона. Если автор продаёт готовый продукт (пусть и адаптированный для заказчика) - обфускация, в данном случае - защита авторских прав и законно. Впрочем в "нормальном" договоре авторские права отдельно оговаривается. Имхо, обфускация алгоритма законна при наличии авторский прав на алгоритмы и (как и электронная защита) должна оговариваться в документации.
#93
by Нетленка1С
Добавил вход с учетными записями Google, Facebook, Twitter. Добавил страницу в Twitter, где буду писать об исправлениях и улучшениях.
#96
by Vladal
Да это всё для подростков. Тайна! Шпиён! Мой гениальный код никто не увидит! BolgenOS! Помню, одно время на кружке информатики страдали скрытием своих исходников. Лет так по 13-14 нам тогда было.
#97
by Serg_1960
"уверен, что через некоторое время появится анти-офбуксатор" - уже появился :) Реализация обфускации позволяет автоматизировать "обратный процесс", НО: при обфускации удаляются наименования переменных и поэтому "восстановленные" алгоритмы, пусть и в меньшей степени, но всё-таки остаются "обфусцированными :(
#98
by Serg_1960
"Спасибо. Исправил" - хорошо, проверьте :) Функция ___a_ Экспорт Перейти ~a__; ~___a:Перейти ~_a_; ~_a:Перейти ~__a; ~__a__:Возврат "Проверка ""нетленки"" на наличие в тексте ""ковычек"""; ~__a:Перейти ~___a; ~_a___:Возврат -1; ~__a_:Возврат Новый СписокЗначений; ~a__:Перейти ~_a; ~a___:Возврат ИСТИНА; ~_a__:Возврат ""; ~_a_:Перейти ~a___; КонецФункции
Тэги: Спам
Ответить:
Комментарии доступны только авторизированным пользователям
В этой группе 1С
- Запросы - выбрать поле как значение вложенного запроса
- Универсальный обмен данными (узел + отбор по значению в объекте)
- Подключение к базе 1С.8 в браузере через локальную сеть
- как выгрузить из запроса всех полей на список значений
- Расчет начислений за прошлый месяц Зуп
- v7: 1С++ прямой запрос. Отбор по группе не работает
- Отладка регламентных заданий на сервере.
- MSScriptControl.ScriptControl AddCode
- v7: 1С 7.7 ЗиК возврат НДФЛ
- Закрытие 20 счета на 90 без выпуска
- Отчет на СКД Дебиторская задолженность для УТ 10.3
- Неправильные проводки
- Как запретить стандартное закрытие управляемой формы?
- v7: Выгрузка-Загрузка базы 1с 7.7
- Инталев или БиТ
- v7: срочно помогите пжл при запуске 1С 7.7 выдал ошибку "Ошибка при запуске журнал"
- Автоматическая регистрация объектов
- УТ 10.3, КА 1.26 : Учет доп. расходов при продаже. Как?
- СКД: результат запроса СКД в табличный документ и колекцию значений
- v7: Упорядочить по