Обфускатор операционного кода 1С

14.11.23

Разработка - Защита ПО и шифрование

Защита обработок 1С от восстановления исходного кода awa-ким декомпилятором. Протестировано 1С:Предприятие 8.3 (8.3.16.1502)

Скачать исходный код

Наименование Файл Версия Размер
Обфускатор операционного кода 1С
.epf 17,05Kb
76
.epf 3 17,05Kb 76 Скачать
Обфускатор операционного кода 1С (с "исходным" кодом)
.epf 18,60Kb
3
.epf 18,60Kb 3 Скачать

 

Уже длительное время для меня эта работа потеряла актуальность, не слежу за новостями в этой области. Обработка выложена в исходном виде, с включенными всеми методами обфускации которые успел реализовать...

Дополнительно к ранее опубликованным методам обфускации (УдалитьНомераСтрок, ИзменитьИмена), добавлены новые (КодироватьКонстанты, ИзменитьТиповыеКонструкции, ИзменитьПорядокПроцедур, ИзменитьПорядокОпераций).

 

 

Методы работы с опкодом взяты отсюда //infostart.ru/1c/articles/1080907/

Меняет опкод таким образом, что awa-кий декомпилятор выдает ошибку

Для работы необходимо в макеты обработки загрузить v8unpac.exe c https://github.com/e8tools/v8unpack (https://github.com/e8tools/v8unpack/releases/download/v.3.0.42/v8unpack.zip)

Установить пароль на модуль обработки и выполнить обфускацию

В каталоге с обработкой, сформируется ее копия без исходного кода модуля.

Обфускатор Декомпилятор Антидекомпилятор Защита кода

См. также

Запрет глобального поиска в конфигурации

Защита ПО и шифрование Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

Представляю вам микрорасширение, которое запрещает глобальный поиск по вашей конфигурации.

1 стартмани

09.02.2023    2252    9    aximo    4    

2

Как защитить pdf файл

Защита ПО и шифрование Абонемент ($m)

Для установки защиты pdf документа, полученного в 1С, написано консольное приложение на c#., использующее одну зависимость pdfSharp.dll. В результате работы приложения ограничены операции над документом и записаны метаданные. С помощью аргументов командной строки можно управлять работой приложения.

2 стартмани

30.01.2023    1705    1    olevlasam    3    

3

Универсальный синтаксический анализатор ASN.1 для декодирования .key, .cer, .der, .p7m, .p7s, .crt, .pem

Защита ПО и шифрование Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Универсальный синтаксический анализатор ASN.1, который может декодировать любую допустимую структуру ASN.1 DER или BER, независимо от того, закодирована ли она в кодировке Base64 (распознаются необработанные base64, защита PEM и begin-base64) или в шестнадцатеричном кодировании.

1 стартмани

04.12.2022    3045    12    keyn5565`    0    

13

Шифрование строки на основе мастер-пароля в 1С Предприятие 8.3.19

Защита ПО и шифрование Платформа 1С v8.3 Абонемент ($m)

Демонстрация возможностей шифрования строки на основе мастер-пароля в 1С Предприятие 8.3.19. AES без zip файла, RSA, PKDF2. (c использованием библиотеки С# через com).

2 стартмани

31.08.2022    3880    7    vit59    2    

6

Обфускатор байт-кода

Защита ПО и шифрование Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка, позволяющая запутывать и шифровать байт-код, поставлять модули без исходных текстов и т.д. Протестировано на платформе 8.3.23.1739.

10 стартмани

16.06.2022    10512    82    ZhokhovM    12    

41

Как уберечь конструкторскую документацию от воровства конкурентами?

Защита ПО и шифрование Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Как уберечь конструкторскую документацию от воровства конкурентами? Недавно столкнулся с этой проблемой. Заказчик серьёзно обеспокоен утечкой информации о конструкторских разработках в адрес конкурентов, за счет подкупа исполнителей, занимающихся производством по конструкторской документации, операторов технологического оборудования и обрабатывающих центров по изготовлению деталей и сборочных единиц.

2 стартмани

09.03.2022    5702    3    ge_ni    9    

2

Защита конфигураций, обработок, расширений 1С онлайн, управление версиями

Защита ПО и шифрование Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Система построена на веб платформе, все управление происходит на сайте в личном кабинете пользователя.

1 стартмани

27.12.2021    4608    2    idm80    11    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tiger77 69 19.09.20 03:56 Сейчас в теме
Код модуля шифрования обфускацирован, но не зашифрован.
+
2. MoiseevSN 100 19.09.20 09:10 Сейчас в теме
(1) все верно, код открыт.
По поводу обфускацирован или нет... чтобы было не скучно, офускация на минималках - имена переменных заменены на рандомные :)
+
3. Steelvan 302 20.09.20 11:32 Сейчас в теме
Случайные имена переменных по какому принципу создаются ?
+
4. MoiseevSN 100 20.09.20 15:14 Сейчас в теме
(3) генератор случайных чисел...
+
5. SerVer1C 750 21.09.20 07:26 Сейчас в теме
Какие новые методики (кроме переименования переменных) применяли в данном решении?
+
6. MoiseevSN 100 21.09.20 09:03 Сейчас в теме
(5) в этом примере, удаляются опкоды номеров строк, и изменяются имена переменных... если у Вас есть интерес в этой ноправлении, могу предложить шифрование констант, и изменение типовых конструкций языка...
+
7. SerVer1C 750 21.09.20 09:51 Сейчас в теме
(6) Понятно. Буду благодарен, если пришлете пример обфусцированного кода (например, какую-нибудь стандартную обработку).
+
8. 1v7 235 21.09.20 10:15 Сейчас в теме
Похожий обфуксатор уже был на Инфостарте. По поиску почему-то ни как не находится - удалили его что-ли. Пользуюсь им до сих пор при работе с клиентами с оплатой по факту. Много настроек и "путает" он не только код обработки, а код любого объекта метаданных. Попробую и Ваш
+
9. user635667 138 21.09.20 12:30 Сейчас в теме
вопрос- а "Расширение" им можно обработать?
+
10. MoiseevSN 100 21.09.20 19:01 Сейчас в теме
(9) не могу точно ответить, т.к. не имею доступа к ПК. Я не разбирался со структурой файла с расширением. Скорей всего нельзя...
+
27. MoiseevSN 100 29.10.20 14:13 Сейчас в теме
"Расширение" обработать не получается, только обработки и потом эти обработки добавить в расширение...
ps по все видимости v8unpack не умеет работать с расширениями конфигурации...
+
37. Maximkasuper 10.08.21 18:42 Сейчас в теме
(27) Добрый день! Не планируется ли работа с расширениями?
+
11. Brawler 455 23.09.20 00:02 Сейчас в теме
Ненавижу обфускаторы!
Задолбался восстанавливать работоспособность систем, где код обфусцирован и типа запаролен.
rabid_otter; Stylo; +2
12. MoiseevSN 100 23.09.20 08:16 Сейчас в теме
(11) полностью с Вами согласен!
+
14. mixsture 24.09.20 11:56 Сейчас в теме
(11) обфускация часто используется как гарантия оплаты и после оплаты работ устанавливается чистый код. В целом неплохой метод снижения рисков.
+
15. Brawler 455 24.09.20 12:35 Сейчас в теме
(14) А часто и не убирают обфускацию даже, если и купишь. Пример, компоненты интеграции с PERCo.
Насквозь дырявые, кривые, что без напильника просто не работает нормально и приходится идти против защищателей кода, благо законы позволяют делать взлом ПО дабы восстановить работоспособность оного.
+
16. MoiseevSN 100 24.09.20 15:29 Сейчас в теме
(15) а как же организовать ограничения лицензионного использования?
+
17. Brawler 455 24.09.20 15:58 Сейчас в теме
(16) нанять хороших юристов
+
18. MoiseevSN 100 24.09.20 17:54 Сейчас в теме
(17) интересно, почему 1с так не поступает?
+
19. Brawler 455 24.09.20 18:26 Сейчас в теме
(18) Юристов у них полно и есть стратегия распространения программ, когда даже, если пиратки ходят по стране, им все равно выгодно, ибо когда на пиратку подсядет контора, с нее уже слезть не сможет, дешевле купить лицензию, чем перелопачивать все бизнес процессы и переносить на другие типа бесплатные системы, если такие вообще есть. Конечно и с откровенными фактами наглости они борются и ловят, и сажают, и штрафуют. А открытый программный код только помогает всем увязнуть в 1С, так как все поголовно кидаются в доработки под себя.
+
20. MoiseevSN 100 24.09.20 19:26 Сейчас в теме
(19) система лицензирования у 1с "закрыта", т.е. нельзя так просто взять и использовать 1с без ключа... почему же сторонние разоаботки не надо защищать?
+
21. Brawler 455 24.09.20 20:03 Сейчас в теме
(20) Ну одно дело платформа 1С, а другое, когда ты купил официально БП 3.0 ПРОФ например, а потом скачал с руборда или еще откуда пиратскую ERP и юзаешь ее на здоровье или что-то попроще, например ЗУП 3.1 или УТ 11 или КА 2.4. Что тебе мешает юзать на официально купленной платформе 1С не официальную конфигурацию? Ну разве что надоедающие сообщения не прошедшей проверки на легальность. И думаю есть такие кадры, которые постоянно жмут кнопку отвали и дальше работают. А некоторым хватает думаю и ранних версий конфигураций работающих еще на платформах без проверки легальности.
+
13. kiser 23.09.20 12:11 Сейчас в теме
кто уже попробовал отпишитесь как результат
+
22. CnupT 69 04.10.20 17:10 Сейчас в теме
По просьбе общественности, отписываюсь. Какая-то фигня :)

Скачал обработку, загрузил в нее модуль по ссылке.
Открыл в ней свой тестовый файл (6 строк кода в запороленном модуле).
Нажал "Обфусцировать", мне ответило "ОК".

В создавшемся файле модуль объекта остался также запороленным,
вот только мой пароль перестал подходить :)

Т.е. что там произошло в модуле теперь не сможет узнать и сам разработчик
kuzyara; Batman; maksa2005; +3
24. MoiseevSN 100 04.10.20 22:09 Сейчас в теме
(22)
В создавшемся файле модуль объекта остался также запороленным,
вот только мой пароль перестал подходить :)

При установке пароля исходный текст шифруется, расшифровать его можно паролем, с этим согласны?
Данная обработка УДАЛЯЕТ исходный текст модуля, но при этом остается информация о том, что пароль установлен, но какой бы пароль не вводился он никогда не приведет к корректному расшифровыванию "того чего нет".
Т.е. что там произошло в модуле теперь не сможет узнать и сам разработчик

в результате работы обработки остаются только "модифицированный скомпилированный машинный код"
Поэтому, что там в модуле разработчик и не может узнать... модуля больше не существует. Косвенно, это видно по новому размеру файла...

Если остались вопросы, задавайте, постараюсь ответить...

ps Возможно Вы не поняли сути обработки? она не запутывает исходный код, она делает "затрудненным" его просмотр и внесение изменений?

pss Можно конечно оставлять запароленый исходный код, но не вижу в этом смысла... При защите разработок, должно быть 2 версии файла, тот в котором ведется разработка, и тот который обработан и больше не изменятся...
kiser; Dementor; +2
25. CnupT 69 05.10.20 07:21 Сейчас в теме
(24)Наверное меня действительно смутило название обработки.
Я ожидал обычного запутывания кода

Если так подумать, автор, вы правы.
После хорошей запутывалки даже в открытом модуле и сам автор ничего разобрать не сможет

Т.е. что есть модуль, что его нет - разницы особой не имеет.
+
26. webester 26 28.10.20 06:25 Сейчас в теме
(25)
После хорошей запутывалки даже в открытом модуле и сам автор ничего разобрать не сможет
Бывает и без нее автор сам разобрать не может. То есть я знаю программистов которые сразу пишут защищенный код? Хм никогда не подходил к вопросу с этой стороны.
+
29. user603532_fan_club_chelsea 09.03.21 17:52 Сейчас в теме
(22) здравствуйте. Не могли бы поделиться обработкой на почту?
+
30. MoiseevSN 100 09.03.21 22:38 Сейчас в теме
(29) а почему Вы ее не хотите скачать?)))
+
31. user603532_fan_club_chelsea 10.03.21 16:20 Сейчас в теме
(30) потому что не хватает стартмани... было бы скачал... дело то не хитрое...
+
23. maksa2005 533 04.10.20 18:38 Сейчас в теме
Поддерживая комментарий выше. пароль меняет.
+
28. olegbilas76 3 14.12.20 18:02 Сейчас в теме
(23) Пароль НЕ меняет, просто конфигуратору уже нечего расшифровывать :) . В модуле объекта пусто, хотя код модуля отрабатывает на ура. Автору отдельное спасибо за разработку.
+
32. primat 3659 31.05.21 16:17 Сейчас в теме
Добрый день. В отличие от аналогичных средств для защиты здесь удобный интерфейс использования. Но вот у нас при попытке защитить обработку, созданную на основе "УниверсальныйОбменВФорматеXML", выгрузка данных потом не работает. Пишет вот такую ошибку: https://i.imgur.com/sKuhsG1.png
Если использовать до запуска защиты, то все работает, все выгружает. Предполагаю, причина проблемы в том, что в модуле объекта обработки большое количество переменных инициализируется. И какие-то из них после защиты не дают скомпилироваться?

Есть ли рекомендации, как поступить в нашем случае? Воспроизвести проблему можно, если типовую обработку "УниверсальныйОбмен..." так защитить и потом любой перенос данных попробовать запустить. Работать не будет.
+
33. primat 3659 02.06.21 09:04 Сейчас в теме
Дополню. Текст ошибки говорит о том, что не инициализирована переменная "Объект" или "Источник". Похоже, код модуля прошел обфускацию и данные переменные модуля объекта имеют другие имена уже. А текст обработчика правила конвертации-то остался прежним, он ведь вызывается через "Выполнить(...)". Похоже, в случае использования "Выполнить" в коде, ваша обработка не подходит? Нельзя никак исключить несколько переменных из алгоритма? Чтобы они остались прежними?
+
35. MoiseevSN 100 17.06.21 21:22 Сейчас в теме
(33)
Да, так работать не будет... конечно можно отключить изменение имен переменных... А эти переменные можно сделать экспортными переменными модуля?
+
34. user929348 09.06.21 20:12 Сейчас в теме
При нажатии на кнопку "Обфусцировать" выходит ошибка. см.рис.

1С:Предприятие 8.3 (8.3.18.1363), пустая файловая база.
Прикрепленные файлы:
+
36. Константин С. 667 07.08.21 13:48 Сейчас в теме
Аналогично
При нажатии на кнопку "Обфусцировать" выходит ошибка. см.рис.
+
38. DJ_Codebase 15.10.21 00:31 Сейчас в теме
(36) нужно добавить v8unpack.exe в макет обработки, и все заработает
MoiseevSN; +1
39. Holcor 22.11.21 10:28 Сейчас в теме
Файл добавлен в макет, но все равно ошибка как и у тех кто выше отписался.
+
40. MoiseevSN 100 22.11.21 10:48 Сейчас в теме
(39) Вы запускаете в файловом режиме?
+
43. Holcor 22.11.21 11:19 Сейчас в теме
(40)Да, в файловом, я открыл обработку конфигуратором, добавил в макеты скаченный файл v8unpack.exe в двоичных данных, поставил пароль на модуль обработки.
В итоге получаю ошибку.
Прикрепленные файлы:
+
44. MoiseevSN 100 22.11.21 11:24 Сейчас в теме
(43) http://forum.infostart.ru/forum9/topic248069/message2749951/#message2749951
но на сколько я помню, обработка удаляет временные файлы... поэтому для проверки нужно запустить отладку и задействовать остановку по ошибке... далее во время остановки выполнения кода, проверять что не так с файлом v8unpack.exe
без доступа к системе, где воспроизводиться ошибка, больше ничего сказать не могу...
+
41. MoiseevSN 100 22.11.21 11:13 Сейчас в теме
(39) ошибка 0x00000002 - 1С по какой-то причине не может выполнить файл v8unpack.exe...
1. не загружен в макет (файл будет пустым)
2. заблокирован антивирусом (файл нельзя будет удалить)
3. удален антивирусом (файл будет отсутствовать)

других вариантов не вижу, кроме разве что, все это запускается не из под ОС Windows
+
45. Holcor 22.11.21 11:25 Сейчас в теме
(41)

В Win 10, 1С:Предприятие 8.3 (8.3.18.1289)

Антивирусов нет, обработка после добавления v8unpack.exe увеличивается в размерах но не на весь размер файла v8unpack.exe.
Файл удаляется, т.е. блокировки нет.
+
46. Holcor 22.11.21 11:37 Сейчас в теме
(44)

Произошел тупняк))извиняюсь.
Я подумал, что надо добавлять файл к своему макету.
+
47. user804963 30.11.21 13:57 Сейчас в теме
Работает как на управляемых формах так и на обычных?
+
48. MoiseevSN 100 30.11.21 14:15 Сейчас в теме
(47) обработка запускается на управляемых формах, обрабатываться могут обработки с любыми формами, или без форм
+
49. user804963 30.11.21 15:24 Сейчас в теме
Спасибо. И еще вопрос. Хочу использовать для обработки торгового оборудования. Будут ли переименованы имена всех процедур и всех переменных?
+
50. MoiseevSN 100 30.11.21 15:43 Сейчас в теме
(49) будут переименованы все имена не экспортных функций и переменных
+
51. user804963 07.12.21 13:54 Сейчас в теме
Есть трудность

Функция ПолучитьВерсиюAPI() Экспорт
	Результат = 2.4;
	Возврат Результат ;
КонецФункции


почему-то возвращает 2
+
52. MoiseevSN 100 07.12.21 16:20 Сейчас в теме
(51)
Функция ПолучитьВерсиюAPI() Экспорт
Результат = 2.4;
Возврат Результат ;
КонецФункции

Вы правы! буду разбираться...
+
53. MoiseevSN 100 08.12.21 13:08 Сейчас в теме
(51) ошибку нашел, при формировании итогового файла, в константах с типом Число, игнорируются знаки после запятой... в ближайшее время протестирую новый вариант обработки, и выложу...

ps если использовать конструкцию:
Результат = Число("2.4");
ошибки быть не должно....
+
54. MoiseevSN 100 09.12.21 19:10 Сейчас в теме
(51) исправил в версии 3
+
59. Dream_kz 129 25.01.22 13:52 Сейчас в теме
(54) Добрый день. Можете выслать исправленную версию, если я ее скачивал ранее?
+
60. MoiseevSN 100 25.01.22 13:53 Сейчас в теме
(59) при повторном скачивании разве списываются стартмани? Куда выслать?
+
61. Dream_kz 129 25.01.22 13:54 Сейчас в теме
(60) Списываются вроде, не хочется проверять. Написал в лс.
+
65. DJ_Codebase 19.09.22 13:38 Сейчас в теме
(54) Добрый день! Можно и мне получить версию с исправлением? тоже ранее скачивал
+
66. DJ_Codebase 19.09.22 17:27 Сейчас в теме
(65) сам себе сделал исправление. может пригодится для скачавших ранее. нужно всего лишь заменить форматную строку с: "ЧН=0; ЧГ=0" на: "ЧРД=.; ЧН=0; ЧГ=0"
ZhokhovM; MoiseevSN; +2
67. user1568801 16.08.23 17:45 Сейчас в теме
55. leasing 5 21.01.22 15:52 Сейчас в теме
MoiseevSN, как понимать (демо) в скачанном за 3 стартмани файле? Это демонстрационный пример ? Платный?
+
56. MoiseevSN 100 21.01.22 20:49 Сейчас в теме
(55) Платной версии нет. Я так и не закончил её, в ней дополнительно запутывается код и шифруются константы, но не реализовал все, что планировал...
+
57. leasing 5 21.01.22 22:08 Сейчас в теме
(56) Понятно. Пожелания такие будут - вы бы добавили эти свои слова из поста 24 "Она не запутывает исходный код, она делает "затрудненным" его просмотр и внесение изменений?" прямо в описание. И желательно там указать насколько затрудненным.

И вопрос - картинка 2 про "заграничный" индекс к чему тут приведена, если "облом" декомпа происходит на стадии ввода пароля?
+
58. MoiseevSN 100 22.01.22 16:17 Сейчас в теме
(57)
вы бы добавили эти свои слова из поста 24 "Она не запутывает исходный код, она делает "затрудненным" его просмотр и внесение изменений?" прямо в описание.

Но в описании нет ни слова про исходный код, в названии "операционный код" Вас не смутило?

(57)
И вопрос - картинка 2 про "заграничный" индекс к чему тут приведена, если "облом" декомпа происходит на стадии ввода пароля?

Пароль расшифровывает исходный код, а декомпилятор работает с операционным кодом (байт-кодом)
+
62. пользователь 23.03.22 15:03
Сообщение было скрыто модератором.
...
63. rkeeperinbox.ru 23.03.22 20:03 Сейчас в теме
Добрый вечер. Обфусцировал обработку вашей обработкой.
но модуль формы оно не обфусцирует?
только модуль обьекта?
можно обфусцировать так же и код модуля формы?
+
64. MoiseevSN 100 23.03.22 21:23 Сейчас в теме
(63) исходный код формы удалить нельзя, как и установить на него пароль...
Единственный вариант, перенести "секретный" код в модуль объекта...
+
Оставьте свое сообщение