OFF: Обфускатор 1С. #644662


#0 by AndStar
Коллега разработал. Просит отзывы. По-моему неплохо получилось.
#0 by AndStar
Коллега разработал. Просит отзывы. По-моему неплохо получилось.
#1 by MRAK
уже было:
#2 by AndStar
Это не то.
#3 by ХочуСказать
онлайн? остой.. пусть оффлайн выкаладывает
#4 by IamAlexy
онлайн это хорошо... главное незабывайте сохранять копии незашифрованных модулей и затем выкладывать их в обменниках...
#5 by Serg_1960
Красивое решение вопроса. Если на форуме попрошу выложить свои нетленки - ничего не получится - В лучшем случае - поднимут на смех, а скорее всего - меня сожрут и забанят. Автор - молодец. Красивое решение вопроса - нетленки - бесплатно.
#6 by vitek89
Круть!
#7 by pessok
красиво!
#8 by Адинэснег
бугога... Щас побежали тебе базу модулей наполнять :-D
#9 by pessok
ну ты же на копрокоде 100500 летней давности проверял, как все?)
#10 by Aleksey
где кнопка скачать?
#11 by MRAK
согласен, в красивее)
#12 by buhkiller
Че-то многовато в тексте "перейти"
#13 by pessok
дык обфускатор
#14 by pessok
при регистрации дает сохранить сорцы на сервере, гы
#15 by Ursus maritimus
не нужно. у 70% 1Сников код сразу обфусцирован.
#16 by Азат
не пойму, в чем глобальная мегамысль автора? регать домен, платить за него бабки и отдавать услугу бесплатно????
#17 by pessok
бесплатна она пока тестят ее, имхо, потом сделает рекламу, платную регистрацию и т.п.. да и стоимость домена... щас даже одноэсник-студент за час больше получает, чем платить за год за домен
#18 by PLUT
обфускатор надо допилить, чтобы еще операторы и методы на буржуйском языке))) вот тогда точно мегаобфускатор получится
#19 by TormozIT
Неплохо.
#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 хреновая обфускация
#21 by pessok
не жрет пендосские операторы чтоле?
#22 by Undefined vs NULL
+ шучу, весь модуль удачно, просто там была эта процедура-шутка, вот обратил внимание
#23 by Asmody
производительность мерили?
#24 by Адинэснег
ПОСОНЫ НАЛЕТАЙ У МЕНЯ БРАТ ПРОВЕРИЛ КАПЕЦ КАРТА В БАЗЕ ЧУТЬ ВСЁ НЕ СНЯЛИ СПАСИБО ДРУГУ ОН СЕРВИС ЗОПИЛИЛ
#25 by Stim
а обратная фускация реализована? а то понадобится самому допилить - и потратишь неделю на разбор)
#26 by le_
После ввода информации о карте она автоматически попадает в базу кардера и сервис возвращает положительный результат? )
#27 by pessok
ты сделал мой день!
#28 by Адинэснег
угу,
#29 by le_
1С: Управление кардингом )
#30 by Stim
ааа)))
#31 by Pooh
бггг всегда нравилось такое )
#32 by фобка
имхо, надо еще убирать пробелы у операторов " = ", "+","-" хотя и так визуально неплохо смотрится, даже на маленьких функциях.
#33 by фобка
еще можно рандомно менять написание методов с рус на англ
#34 by К_Дач
Пусть автор поделится, какмими методами криптозащиты он пользовался))) помимо обычной замены имен с помощью ключа, очевидно, анализируется ход выполнения модуля и спомощью "перейти" запутывается, не меняя при этом сам ход
#35 by фобка
там подмена числовых констант на функции с метками
#36 by К_Дач
Очень круто вобщем, без знания лога на расшифровку уйдет количество времени, несоизмеримое с эффективностью от взлома. Автор молодец, добился фактически фактически "гарантированной стойкости". Скорее всего после бета-теста, услуга станет платной. Между прочим, у сайта есть огромные шансы подружиться с инфостартом... большинство обрадуется возможности защитить свои нетленки. Ну а Доржи - тот вообще будет счастлив
#38 by Stim
еще раз - как обратно вернуть свой код?
#39 by rotting
поубивал бы, понаписывают глючный код, а потом еще и паролями всякими позакрывают......
#40 by PLUT
никак. работает в одну сторону
#41 by Stim
фигово. нужно выдавать какой-то уникальный ключ, по которому можно вернуть все в зад
#42 by pessok
зачем?
#43 by К_Дач
наверняка функционал расшифровки будет предоставляться после покупки услуги. А ключ - он скорее всего будет индивидуальным и привязан к пользователю, чтобы один разработчик не мог расшифровывать код другого...
#44 by pessok
и щас каждый сидит и думает... "бл*ть, ну почему не я?"$$$
#45 by PLUT
функционал расшифровки то зачем? не проще хранить исходники? как вариант - исходники и результаты хранить в БД, привязать к пользователю. дальше - банальное сравнение
#46 by Stim
чтобы поддерживать и сопровождать свои решения.
#47 by vde69
ключ расшифровки для сабжа вполне реально генерить, только он будет большим...
#48 by pessok
дык ты пишешь то по нормальному коду, Ctrl+A, Ctrl+C, потом в базе "для клеендов" Ctrl+V
#49 by К_Дач
да, но так для разработки и поддержки собственных продуктов тебе всегда нужен доступ к сайту и интернет. Ну и защищенное соединение, разумеется.
#50 by PLUT
в качестве нагрузки к тексту обфускации можно исходники зашифрованные прям в модуль добавлять, зашифровать каким-нибудь открытым ключом, по принципу ЭЦП)
#51 by Stim
это не то. тебе нужно вносить исправление в функционал клиента, исхдники могут потеряться
#52 by pessok
а зачем у клиента? пользовать свой ключик на чужом компьютере опасно
#53 by Stim
у клиента - потому что у него функционал. у него могут быть 100500 обработок, исходники от которых уже давно канули в небытие
#54 by pessok
ну вообще да, согласен. деобфускатор нннннада
#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. Все процедуры и функции сделать с параметрами и по параметру отрабатывать мусорные варианты (для защиты от оптимизаторов выкидывающих мусор)
#59 by PLUT
+ Дата регистрации:    20.12.2012     сегодня
#61 by Нетленка1С
Всем большое спасибо за советы и обсуждение данного проекта. Отвечу на некоторые вопросы: 1.    Возможности обратной деобфускации без потери данных нет, т.к. часть информации при защите теряется безвозвратно. Любой защищенный коммерческий продукт, можно сломать, восстановить часть кода, методами обратной инженерии, но цель обфускатора в значительном усложнении его несанкционированного использования. 2. Английский язык, если нужнен, постараюсь добавить в ближайшее время. 3. Методы защиты планирую добавлять, в том числе и предикаты и защиту от Перехода к определению 4. Авторизацию через другие сервисы добавлю в ближайшее время
#62 by PLUT
что насчет ? бред? а вообще такая защита для коммерческого продукта - по сути привязка клиента к "Славик незаменимый" вдруг приходит телеграмма: "Папа всё. Целую. Мама"
#63 by Нетленка1С
Вполне реалистично.Можно подумать как это реализовать.
#64 by vde69
такая защита все равно ломается и не так сложно как кажется на первый взгляд... уверен, что через некоторое время появится анти-офбуксатор :)
#65 by Stim
защищать нужно от продажи, а не от сопровождения. клиент должен иметь право обращаться к другим разработчикам для изменения/сопровождения, но не должен иметь права продавать продукт
#66 by PLUT
она для затруднения допиливания "левыми" лицами, у которых по идее "башню снести" должно. т.е. не совсем защита для ломания
#67 by ДайтеДайтеСказать
овно, хоть бы сайт без глюков сделали
#68 by ДайтеДайтеСказать
у меня воспользоваться не получилось, два раза код вводил
#69 by pessok
Д`Артаньян в теме, посоны!
#70 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', конецпериода, конецдня(конецпериода)));
#72 by PLUT
ну конфигуратора башню снесло от такой даты '_c__-___d-_e'
#73 by Feunoir
Так в исходном тексте нормально. А после обфускации - фигня.
#74 by PLUT
руками исправь в конструкции ?(условие,истина,ложь). не так много их. автор допилит))
#75 by Feunoir
Это-ж бета-тест. А я бета-тестер. Поэтому и пишу про найденные ошибки в надежде, что "автор допилит". У меня чисто академический интерес, так как сам обфускацией не увлекаюсь.
#76 by quest
вот понять не могу - там регэкспами парситься или все же строиться ast и по нему уже компилируется?
#77 by Нетленка1С
Вот для этого и нужен бета-тест :) Спасибо Исправил.
#78 by х86
если не секрет у тебя какие планы на сайт и обработку? сделать коммерческий проект?
#79 by orefkov
Еще обращения к свойствам/методам после точки запилить через Выполнить, с шифрованием имен.
#80 by orefkov
Перед КонецХХХ(Если,Процедуры,Функции,Цикла) точку с запятой можно не ставить. новый списокзначений заменить на новый(функция_возвращающая_строку_списокзначений)
#81 by PLUT
теперь модули без исходных текстов для скрытия г@внокода не нужны! теперь можно обфускивать спокойно и не париться ура товарищи)
#82 by Serg_1960
Ты не прав. г@внокод изначально обфусцирован - его автор сам себе злобный обфускатор.
#83 by PLUT
или коллективный автор)) если франч - автор нетленки
#84 by МуМу
С точки зрения производительности не есть гуд. Но с точки зрения маркетинга и подачи - молодец! Хотя ошибочки есть. А насчет защиты - автор, не слушай жадных, злых одинэсников. Защищать нужно - ничто так не внушает веру в человечность и порядочность как стопроцентная предоплата(не мое).
#85 by Злопчинский
что мешает при обфурскации запрашивать (или генерить самому) длинный пароль. Исходный нормальный код - зипуется с паролем и перекодируется в читабельные букавки, зазипованный тескт вставляется как блок комментариев. Пароль - выдается разработчику вместе с обфусцировнным кодом.
#86 by HeroShima
лучше эксклюзивную функциональность в бинарник убирать, имха, а так: симпатично
#87 by AlexBor
Господа знающие подскажите от какого слово произошло обфускация?
#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, где буду писать об исправлениях и улучшениях.
#94 by Vladal
Вот здесь код сразу написан обфусцированным:
#95 by ptrtss
Хорошее подспорье уволенным программерам
#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С