Сохранение файлов в конфигурации и обработках 1С: Предприятие 7.х

06.06.10

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

Дальнейшее решение проблемы с сохранение файлов в конфигурации и обработках 1С: Предприятие 7.х

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
File2BMP.exe
.exe 198,00Kb
64
64 Скачать (1 SM) Купить за 1 850 руб.
ExtForms KZK Starter.ert
.ert 131,50Kb
25
25 Скачать (1 SM) Купить за 1 850 руб.
File2BMP.rar
.rar 33,24Kb
19
19 Скачать (1 SM) Купить за 1 850 руб.
Test.rar
.rar 346,51Kb
23
23 Скачать (1 SM) Купить за 1 850 руб.
Protect.rar
.rar 451,36Kb
21
21 Скачать (1 SM) Купить за 1 850 руб.

Однажды я увидел оригинальное решение сохранения файлов в обработках 1С 7х - //infostart.ru/public/14459/

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

А после подарка Альфа //infostart.ru/public/19511/ - и вовсе наступило счастье !!!

Сравнительно недавно увидел статью //infostart.ru/public/64757/, которая несколько меня возмутила. Автор не предложил ничего своего, а просто чужое выдал на гора. Ну нельзя же так !!!

Поэтому вот решил поделится своими инструментами, ну и результатами исследования проблемы.


Вкратце о файлах:

File2BMP.exe - внедряет файл в картинку BMP.

File2BMP.rar - исходники вышестоящего

ExtForms KZK Starter.ert - моя запускалка защищенных обработок.

Test.rar - тестовая база

Protect.rar - закрытая тестовая база


Итак, продолжение…

В оригинальном решении вроде бы все было, но ... надо было помнить некую минимальную информацию, а именно: имя файла и его размер. В ходе дискуссии по решению, предлагались идеи использовать палитру картинки, как FAT (не буду подробно писать что это), благо формат BMP. вроде как, размер под палитру не ограничивает.

В ходе чтения дискуссии родилась первая идея: писать картинки в JPEG! Там в конце можно, что угодно дописывать. И первое НО… 1С картинки хранит и выдает (программно) только в BMP.   Ж:?(

Ладно … И вот поковырявшись в спецификации, новые идеи … Для простоты, картинку BMPделать24 бита, и вместо палитры (при этом в спецификации указано, что картинка идет без палитры, но место под нее можно отводить) писать свою информацию. И следующие НО … 1С отводит килобайт под палитру и режет «мусор» в ней…  Ж:?( 

Ладно, попробуем без палитры… И снова НО... 1С «коверкает» 24-х битную картинку!!! Почему она «оптимизирует» цвета, для меня осталось загадкой …

ОК. Будем пользовать палитру в 256 цветов, а информацию запишем (правда очень мало) в четвертый неиспользуемый бит … И снова НО …  1С «подчищает» неиспользуемые биты.   Ж:?(   Ну прямо нет на 1С управы …

После очередных раздумий решил оставить палитру в покое, и писать информацию в «тело» картинки (правда не без ньюансов). А вот здесь и «обманули» 1Съ !!!   Ж:?)

После исследования картинок пришел черед реализации функций. Как мне не хотелось полностью все сделать на 1С, ничего не вышло. Без VBScript не обойтись ...  Ж:?(

Во-первых, 1С затирает "нетекстовые" символы, во-вторых, не пишет длинные строки через объекты. Поэтому можете даже не экперементировать ...

Со «стандартом» формирования «тела» картинки можно ознакомиться в исходниках Delphi. Если что-то еще надо, то допишете… В исходниках 1С все функции опираются на этот «стандарт» (ну типа контроль «внедренного» файла от «настоящей» картинки).

И напоследок еще о некоторых нюансах:

1. Из конфы картинка вытягивается почему-то «корявая» (может только у меня?). В начале файла, почему-то идут 1С-ные размеры картинки (это наверно из стримов МД-шника) … Заложил этот нюанс в функции…

2. Из обработок, специально, картинки «тяну» из (через) MXL. Это дает нам большой запас гибкости и скорости.

3. Чтобы не перегружать чтением из MXL, внедряйте картинки в несколько таблиц. Еще лучше если будут "логические блоки", например таблица с DLL-ками и таблица с ERT-шками. Функция "распаковки" поддерживает смещения, и поэтому читать подряд несколько файлов получится быстрее, чем читать по-одному.

4. Помните что 1С сохраняет картинки последовательно, как их вставляли. Т.е. если вы вставили 10 картинку (файл) в ячейку 1:1, то она и будет 10, а не первой!

5. Идентификаторы картинок в MXL, надо записывать в поле «Расшифровка» в кавычках !!! Это правило убережет от всякого рода ошибок при действительном использовании MXL. Ну и конечно уникальность идентификаторов, на «Вашей» совести.


Решенные неприятности:

Мой любимый Dr.Web ругался на конфу и внешние отчеты из-за скриптов VB (идет работа с записью на диск) предупреждением "Возможно, инфицирован SCRIPT.Virus".

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


Пользуйтесь на здоровье!

И как всегда, соблюдайте одно правило: не затирайте цопирайты …  Ж:?)

 

См. также

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

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

2 стартмани

09.03.2022    6110    3    ge_ni    9    

2

Разработка внешних компонент Защита ПО и шифрование Программист Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9391    28    mdbruyfn    10    

9

Защита ПО и шифрование Программист Платформа 1С v7.7 Оперативный учет 7.7 Конфигурации 1cv7 Абонемент ($m)

Шифрование MD5 появилось в 1991 году (опубликовано в 1992), но и в XXI-м веке в 1С7 функция шифрования так и не появилась...

1 стартмани

11.01.2019    8841    10    vakham    2    

3

Информационная безопасность Защита ПО и шифрование Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Звонит пользователь, на экране сообщение ваши данные зашифрованы, введите пароль, пишите письма и т.д.

1 стартмани

08.11.2014    40657    44    aleksch21    85    

47

Защита ПО и шифрование Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Вспомнил свою старую обработку. Кодирование строки в base 64. Может пригодится для обмена с сайтами из 1с, где это требуется протоколом.

1 стартмани

02.09.2013    24537    9    _Vovik    2    

4

Защита ПО и шифрование Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обезличивание текстовых данных любых информационных баз на платформе «1С:Предприятие 7.7».

1 стартмани

31.12.2010    18539    112    kint    7    

18

Защита ПО и шифрование Кадровый учет Расчет 7.7 1С:Зарплата и кадры 7.7 Россия Абонемент ($m)

Обработка очищает или заменяет личную информацию сотрудника (Зарплата и Кадры)

1 стартмани

02.09.2010    18731    103    gucci76    15    

18

Защита ПО и шифрование Программист Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Задача: Защитить внеш. обработку или отчет с помощью КЗК 2 - передать клиенту с тем что бы он мог ее запустить, но без копирования файла precomp.dll в каталог ИБ. Так же может применяться и для блоков конфигурации.

28.01.2010    31397    script    42    

19
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ёпрст 1065 17.05.10 08:50 Сейчас в теме
3. VRP 270 17.05.10 12:37 Сейчас в теме
(1) Вы уж извините, но "придумал" - это сильно сказано ...
4. VRP 270 17.05.10 12:52 Сейчас в теме
(1) Пардон ! Это было (2)
:D
2. script 128 17.05.10 10:04 Сейчас в теме
Сравнительно недавно увидел статью http://infostart.ru/public/64757/, которая несколько меня возмутила. Автор не предложил ничего своего, а просто чужое выдал на гора. Ну нельзя же так !!!

Я не чужое выдрал, а придумал как объединить 2 технологии в одну и очень полезную.
Следите за выражовываниями :evil:
5. VRP 270 02.06.10 00:41 Сейчас в теме
Йо-о-о !!!
CheBurator молча поставил плюс !!!
:D
6. Ёпрст 1065 29.12.10 10:45 Сейчас в теме
(0) не распаковывает, если база находится на сетевом ресурсе..
7. Ёпрст 1065 29.12.10 10:46 Сейчас в теме
+6 точнее, если путь для распаковки будет начинаться с \\
8. krupp 27.10.11 13:04 Сейчас в теме
ссылка на публикацию альфа неактивна. что там было?
9. VRP 270 27.10.11 23:22 Сейчас в теме
Оставьте свое сообщение