1с исходный текст модуля отсутствует как открыть

от admin

Как возможно вернуть исходный текст модуля

Но к сожалению это слабая защита. Простенький пример подтверждает это.
Вот маленький кусок программы:

имеющий вот такой байт-код:
(он получается когда ставится пароль на модуль и когда делается поставка без текстов)

А вот программа декомпилирования этого примера, написать которую может каждый второй 1С-ник:

Функция ПолучитьЗначениеПозиции(ном,стр,УбратьКавычки=Ложь)
рез=»»;
к2=ном-1;
Для к=2 По СтрДлина(стр)-1 Цикл

Если к=СтрДлина(стр)-1 и а=»>» Тогда

Прервать;
ИначеЕсли а=»,» Тогда
Если рез<>»» Тогда

Прервать;
КонецЕсли;
к2=к2-1;
ИначеЕсли к2=0 Тогда
рез=рез+а;
КонецЕсли;
КонецЦикла;
Если УбратьКавычки Тогда

Если Лев(рез,1)=»»»» Тогда
рез=Сред(рез,2);
КонецЕсли;
Если Прав(рез,1)=»»»» Тогда

рез=Лев(рез,СтрДлина(рез)-1);
КонецЕсли;
КонецЕсли;
Возврат рез;
КонецФункции // ПолучитьЗначениеПозиции

Процедура ВыполнитьДекомпиляцию()
Перем МасКонст; //»Const»
Перем МасПерем; //»Var»
Текст=ЭлементыФормы.ПолеТекстовогоДокумента1; //исходный текст байт-кода

КоличествоСтрок=Текст.КоличествоСтрок();
сч=1; //поиск первой строки
стр0=Текст.ПолучитьСтроку(сч);
Пока Лев(стр0,1)<>»>» и сч<КоличествоСтрок Цикл

сч=сч+1;
стр0=Текст.ПолучитьСтроку(сч);
КонецЦикла;
сч=сч+1;
стр0=Текст.ПолучитьСтроку(сч);
МасКонст=Новый Массив;
Если Лев(стр0,8)=»<""Const""" Тогда

сч=сч+1;
стр0=Текст.ПолучитьСтроку(сч);
Пока Лев(стр0,1)<>»>» и сч<КоличествоСтрок Цикл
МасКонст.Добавить(ПолучитьЗначениеПозиции(2,стр0));
сч=сч+1;
стр0=Текст.ПолучитьСтроку(сч);
КонецЦикла;
сч=сч+1;
стр0=Текст.ПолучитьСтроку(сч);
КонецЕсли;
МасПерем=Новый Массив;
Если Лев(стр0,6)=»<""Var""" Тогда

сч=сч+1;
стр0=Текст.ПолучитьСтроку(сч);
Пока Лев(стр0,1)<>»>» и сч<КоличествоСтрок Цикл
МасПерем.Добавить(ПолучитьЗначениеПозиции(1,стр0,Истина));
сч=сч+1;
стр0=Текст.ПолучитьСтроку(сч);
КонецЦикла;
КонецЕсли;
мас=Новый Массив;
Результат=»»;
сч=3;
стр0=Текст.ПолучитьСтроку(сч);
Пока Лев(стр0,1)<>»>» и сч<КоличествоСтрок Цикл

зн1=Число(ПолучитьЗначениеПозиции(1,стр0));
зн2=Число(ПолучитьЗначениеПозиции(2,стр0));
Если зн1=1 Тогда

//Результат=Результат+»// номер строки «+зн1+»,»+зн2+Символы.ПС;
Результат=Результат+Символы.ПС;
ИначеЕсли зн1=2 Тогда
мас.Добавить(МасПерем[зн2]);
ИначеЕсли зн1=4 Тогда

Результат=Результат+мас[0]+» ;»;
ИначеЕсли зн1=22 Тогда
ИначеЕсли зн1=57 Тогда
мас[1]=»Лев(«+мас[1]+»,»+мас[2]+»)»;
мас.Удалить(2);
Иначе

Результат=Результат+»// неизв. код «+зн1+»,»+зн2+Символы.ПС;
КонецЕсли;
сч=сч+1;
стр0=Текст.ПолучитьСтроку(сч);
КонецЦикла;
сообщить(Результат);
КонецПроцедуры

. «имеющий вот такой байт-код».

База состоит из 3-х файлов.
А где/как этот байт-код можно получить?

и автора узрел. этож Гений был 🙂

(14) — тут вроде не форум по комерческим предложениям!

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

Успешно декомпелировал модуль!
Вопрос к модераторам, можно ли тут выкладывать обработку для декомпиляции?

Казнить, нельзя помиловать — программиста который писал этот модуль, пример части кода (Внимание код вредоносный, не используете его у себя), за написание такого кода, надо на зону сожать, а не з/п платить!:

Тема: Декомпиляция модуля 1С

Декомпиляция модуля 1С

  • Просмотр профиля
  • Сообщения форума
  • Личное сообщение

  • Просмотр профиля
  • Сообщения форума
  • Личное сообщение

Магистр
Регистрация 29.11.2013 Адрес Берег Волги Сообщений 3029 Сказал(а) спасибо 534 Поблагодарили 8402 раз(а) в 2117 сообщениях

  • Просмотр профиля
  • Сообщения форума
  • Личное сообщение

  • Просмотр профиля
  • Сообщения форума
  • Личное сообщение

Магистр
Регистрация 29.11.2013 Адрес Берег Волги Сообщений 3029 Сказал(а) спасибо 534 Поблагодарили 8402 раз(а) в 2117 сообщениях

Пользователь сказал cпасибо:

  • Просмотр профиля
  • Сообщения форума
  • Личное сообщение

  • Просмотр профиля
  • Сообщения форума
  • Личное сообщение

Подводные камни

Это, судя по всему, переименованная (Декомпилятор1Сv8.epf) разработка Авы (Awa), которая может работать только с девственно чистым кодом 1С8х. Но она обламывается на обфусцированном коде. Например, она не позволит декомпилировать саму себя и код обфусуированный специальными коммерческими программами вроде WiseAdvice (который применялся, скорее всего, для некоторых модулей демоверсии «Камина»).

А если учесть, что последние разработки Авы распространяются через infostart ru, который наполовину принадлежит фирме 1С, то можно предположить, что это делается для того, чтобы программисты собственных конфигураций покупали соответствующие обфускаторы. Что частично снимает претензии с самой фирмы 1С, мол, встроенная защита в «восьмерке», как и в «семерке», такая же никудышная. Типа, хотите более усиленную защиту – платите бабки. В общем, знакомая история, вирусмайкеры делают вирусы, чтобы, в том числе, покупались антивирусные программы. Врачи иногда выписывают «лишние» лекарства, чтобы аптеки не бедствовали и т.п.

Читать:
Что делать если в панели управления nvidia нет параметра дисплей

Однако как говориться, на хитрую пикантную подробность найдется винт с контргайкой. Теоретически любое обфусцирование, не ведущее к потере работы (псевдо) кода, не является надежной защитой и относительно легко обходится. И такие средства есть, естественно, не для публичного использования. Частичный выход – шифрование строк и вынос бизнес логики в бинарный код (dll). Короче, бесконечная борьба средств борьбы и защиты.

Декомпилятор 1С 8 — обработка для снятия пароля с закрытых модулей

Декомпилятор 1Cv8.x – обработка восстанавливающая тексты модулей с паролем или без исходного кода. Принцип действия – генерация исходного кода модулей на основе скомпилированных образов. Поэтому полученные модули могут немного отличаться от исходных, в частности, в сгенерированном коде модуля могут отсутствовать комментарии.

Скачать обработку можно по ссылке.

Обрабатываемые типы файлов: *.cf, *.epf и *.erf.

Для снятия пароля или восстановления исходного кода следует выбрать файл обработки, отчета или конфигурации и нажать — “Декомпилировать”.

Настройка “Не создавать копию”.

Если флаг не установлен, то перед декомпиляцией создастся копия файла с добавкой “_U” в имени. Установка данного флага сократит время выполнения восстановления кода(особенно если обрабатываются конфигурации *. cf), но при повреждении файла его уже будет не восстановить.

Настройка “Искать все модули (медленно)”.

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

1с исходный текст модуля отсутствует как открыть

Программы » 1С:Предприятие 1C — 1C: Вопросы по конфигурациям
Варезник » 1C:Предприятие 7.7 — 1С:Предприятие v.8.x — 1C Диск ИТС — 1С: Совместимо 8.х Топик 1C Ebooks
ЗДЕСЬ (обновлено 22.02.14 ) — небольшая библиотечка (книги, документация, видео, утилиты) по 1С, финансам, бухучету и т.п.
Все рассортировано по версиям. Для заблудившихся в трех соснах >>> FAQ по форуму RU.Board

Код:

taskkill /F /IM 1cv8.exe
"C:\Program Files\1cv82\common\1cestart.exe" CONFIG /F путь к базе /N пользователь /P пароль /UpdateDBCfg
"C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F путь к базе /N пользователь /P пароль

Или тут почитай.

Данный код отрабатывает, но почему-то требуется участие пользователя (выскакиевают различные диалоговые окна с ошибками, где требуется нажать правильную кнопку (например, нажать Отмена, вместо Повторить запуск через 60 сек))
+ не снимается блокировка с базы.
Версия 1С 8.3
Server 2012R2

Цитата:

есть некоторые нюансы

Какой вопрос, такой ответ

Цитата:

нажать Отмена, вместо Повторить запуск через 60 сек

Рискну предположить, что твой батник не дожидается окончания выполнения приложения, запущенного в предыдущей строке.

Код:

ЗавершитьРаботуСистемы(Ложь);

?

Может есть обновленние в правилах на users? кинте плиз

Цитата:

Дополнительные файлы, предназначенные для синхронизации данных, расположены в каталоге "Синхронизация данных\БП, ред. 3.0":
"Правила конвертации.xml" — правила конвертации для конфигурации "Бухгалтерия предприятия";
"Правила регистрации.xml" — правила регистрации для конфигурации "Бухгалтерия предприятия";
"Инструкция по подключению правил обмена.txt" — инструкция по подключению правил
обмена для конфигурации "Бухгалтерия предприятия";

<Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(3245)>: ВНЕШНЕЕ СОЕДИНЕНИЕ: <Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(13984)>: Ошибка в обработчике события ПослеПолученияИнформацииОбУзлахОбмена (конвертация)
Обработчик = ПослеПолученияИнформацииОбУзлахОбмена (конвертация)
ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: <(3,54)>: Переменная не определена (ОбщиеПроцедурыФункции)

Может, модуль не для внешнего соединения?

Автосервис 4.1 — Обработки — Защита — Модуль — Открыть модуль объекта — Исходный текст модуля отсутствует !

Похожие статьи