Матрешка прячет секреты в PNG

26.12.24

Разработка - Работа с интерфейсом

Хотите сделать цифровую поздравительную открытку? Обработка умеет прятать секреты в картинки png.

Скачать файл

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

Наименование Бесплатно
PNG Матрешка: Прототип
.epf 20,79Kb ver:0.6
17
17 Скачать бесплатно

Недавно я наткнулся на статью https://habr.com/ru/articles/861932/

И так она меня зацепила, что в голове у меня на протяжении пары недель не утихали эксперименты.

  • А если сделать так?
  • А если спрятать картинку в картинку?
  • А можно ли это сделать чисто на языке 1с?

 

Думал, голова лопнет, да и сон потерял…

В итоге представляю вам прототип, который кое-что умеет.

 

  • Почему прототип?

 

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

 

Ограничения:

1 Ширина картинки должна быть кратна 4. То есть 4, 8, 12, 16 и т.д.

2 Пока работает с png, глубина цвета которого 24. 32 содержит альфа-канал, отвечающий либо за прозрачность, либо заполняется нулями, и с ним пока решил не разбираться. Важно было просто запустить то, что в голове накопилось.

 

Код по созданию картинки png подсмотрел тут //infostart.ru/1c/articles/1061803/ автору огромное спасибо!

 

Конвертировать в глубину 24 можно так:

 

 

Принцип работы:

Все в нашей жизни нули и единицы. Абсолютно все. А что же такое png?

Это изображение, каждый пиксел которого хранит три цвета. Красный(R), Зеленый(G) и Синий(B).

Цвет — это цифра от 0 до 255, а каждая цифра хранится в двоичной системе в виде нулей и единиц.

 

Например: Синий= 255, Зеленый = 0, Красный = 0 это ничто иное как синий цвет, но пиксел будет содержать в себе: 

11111111 00000000 00000000

 

 

В статье https://habr.com/ru/articles/861932/ автор предложил прятать секреты в последний байт каждого цвета.

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

 

11111110 00000001 00000001

 

 

  • Сильно цвет отличается от предыдущего?

Я вообще не могу отличить...

Каждая буква тоже, также как и цвет, может быть переведена в нули и единицы.

 

Таблица декодирования:

https://www.ascii-code.com/CP1251

 

Обратите внимание, что с 0 по 31 идут служебные символы.

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

 

Давайте рассмотрим примеры:

 
 У нас есть текст:

С новым годом!

Желаю счастья в личной жизни!

Сбычу мечт!

 

Чтоб ты... жил на одну зарплату!

 
 В двоичной системе текст выглядит так:
11010001001000001110110111101110111000101111101111101100
00100000111000111110111011100100111011101110110000100001
00001010110001101110010111101011111000001111111000100000
11110001111101111110000011110001111100101111110011111111
00100000111000100010000011101011111010001111011111101101
11101110111010010010000011100110111010001110011111101101
11101000001000010000101011010001111000011111101111110111
11110010111100110010000011101100111001011111011111110010
00100001000010100000101011010111111100101110111011100001
00100000111100101111101100101110001011100010111000100000
11100110111010001110101100100000111011011110000000100000
11101110111001001110110111110011001000001110011111100000
11110000111011111110101111100000111100101111001100100001

 

 

Вот так можно перевести текст в двоичную систему:

 

 

У нас есть открытка, в которую мы решили спрятать текст, но сохранив копию, не перетирая саму открытку. Легко.

Нажимаем спрятать текст в картинку:

 

 

Теперь посмотрим на результат:

 

 

На глаз не отличишь, но давайте попробуем прочитать.

 

 
 Картинка с текстом

 

Ссылка на скачивание: //infostart.ru/upload/iblock/adb/adb87ac03eca7edb18384ad4b3cd4749.png

 

 

Как вы видите, текст мы прячем влегкую.

 

Задавались ли вы вопросом, как выглядят стихи, если их оцифровать? 

Если мы не будем прятать текст, а прямо сохраним буквы в цвета, тогда в один пиксел мы сможем спрятать три буквы. Давайте пошлем пиксел на три буквы. ;)

Я взял текст сказки о рыбаке и рыбке и создал картинку.

 

 

Бац, и png теперь у нас дискета…

Даже как-то неловко, что все уместилось вот в такую картинку:

 

 

Ссылка на скачивание: //infostart.ru/upload/iblock/a11/a110b53f542305cdf2fc6218425b85b1.png

 

А вот так текст из картинки можно прочитать:

 

 

Дальше я подумал, а если в картинку запихнуть сообщение и потом картинку с сообщением спрятать в картинку.

Тут есть тонкости, есть служебные символы, которые я использую, чтобы понимать, что текст окончен:

КонецТекста = "00000011";

Если читать картинку как двоичные данные, тогда можно зацепить служебные символы и не будет ясно, когда нужно завершать, а подавать еще и размер чтения, как-то не универсально.

В итоге я решил картинку конвертировать в JSON и этот JSON прятать в картинку как скрытый текст.

 

 

Соответственно нарисовал обратный процесс. Для этого на закладке Картинка надо указать файл, в который нужно сформировать картинку из JSON.

В итоге можно даже генерировать картинки…

По кнопке: 

 

А дальше, я точно также поступил с файлами, но переводил их в JSON и сразу в двоичную кодировку. 

 

 

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

 

И вот тут во мне проснулся параноик.

  • А все ли картинки в наших конфигурациях, базах, системах безопасны?
  • Вы уверены, что да?

 

//infostart.ru/upload/iblock/966/966c0a9b1f9e47246a6b9e518c87e876.png

 

На этом статью завершаю.

Напоминаю, что это прототип, поэтому код страшен как смерть.

Этот инструмент понадобится, чтобы пройти новогодний квест.

Тот, кто первым в комментарии к статье  //infostart.ru/1c/2269943/ выложит спрятанное секретное слово, получит от меня легендарную книжку «Слова Урала 18+».

 

 

Всем удачи!

 

png матрешки новый год открытка секреты безопасность квест rgb картинка поздравление прототип пиксел hex двоичные данные двоичный код JSON

См. также

Работа с интерфейсом Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    55702    17    23    

43

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    64091    45    60    

83

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    20024    28    6    

44

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    24074    mrXoxot    44    

130

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

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

27.05.2024    12394    smielka    37    

105

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    18491    1230    elcoan    53    

127

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

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

3 стартмани

10.04.2023    12967    167    acces969    31    

126

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    8213    kalyaka    6    

34
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. rpgshnik 3832 26.12.24 10:59 Сейчас в теме
А мне Дима уже подарил такую книжку! *хвастаюсь*
Прикрепленные файлы:
2. dsdred 3790 26.12.24 11:19 Сейчас в теме
(1) И без квестов))

Хотя способ доставки можно за квест посчитать))
3. Alxby 1123 27.12.24 20:31 Сейчас в теме
... а можно менять не каждый пиксель картинки, а, например 131 из каждых 256, стоящих на определенных местах. Еще можно менять у разных пикселей не только последние биты, а последние 1-3 бита в зависимости от его координат/цвета. А еще можно прятать не последовательность байт, а битовую последовательность, где каждая буква будет кодироваться от 3 до 8 бит. А еще можно играться с коэффициентами преобразования в jpg, mp3, mpeg... Добро пожаловать в увлекательный мир кодирования, криптографии и стеганографии!
4. dsdred 3790 27.12.24 20:47 Сейчас в теме
(3) Да все это можно, но в том то и дело, раньше я об этом не думал ))

Добро пожаловать в увлекательный мир кодирования, криптографии и стеганографии!

Мир действительно увлекательный ;)
5. quazare 3880 27.12.24 21:33 Сейчас в теме
Дмитрий, молодец! Интересные статьи разработки!
6. dsdred 3790 27.12.24 21:34 Сейчас в теме
(5) Спасибо за добрые слова.
7. SerVer1C 874 28.12.24 13:51 Сейчас в теме
Ещё можно прятать файлы внутрь контейнерных файлов 1С v8 (cf, cfu, cfe, epf, erf, hbk)
8. dsdred 3790 28.12.24 13:53 Сейчас в теме
(7) Я пожалуй на картинках остановлюсь ;))
9. XilDen 563 10.01.25 11:58 Сейчас в теме
Пожалуй, это самый оригинальный способ, как вынести секретные данные с предприятия, обхитрив службу безопасности))
10. dsdred 3790 10.01.25 12:07 Сейчас в теме
(9) Ага. Можно прямо в логотип компании, в подпись спрятать, что угодно ))
11. XilDen 563 10.01.25 12:25 Сейчас в теме
(10) Вот-вот) Лет 15 назад делал похожую штуку на Делфях)
А ещё можно использовать Википедию как бесплатный файлообменник)) Редактировать любую статью, докидывая туда текст файла в формате JSON. Потом сразу удалять его. При этом в истории версий, твоя версия статьи с кодом JSON навсегда останется на серверах Википедии)) Можно прям получить статичную ссылку на свою версию статьи, а дальше пишешь простейшую программу, которая скачивает страницу по ссылке, извлекает JSON и сохраняет полученный файл)) Эх, студенческие годы.. что только не делали))
x-ynegve; +1 Ответить
12. dsdred 3790 10.01.25 12:33 Сейчас в теме
(11) Да, веселуха ))
Я конечно не студент, но иногда хочется почудить как раньше))
Оставьте свое сообщение