Модели информации и данных. Атом и универсум информации. Александр Михайлович Горбачев
Чтение книги онлайн.
Читать онлайн книгу Модели информации и данных. Атом и универсум информации - Александр Михайлович Горбачев страница 19
Отношение информации к данным состоит в том, что информация обладает смыслом. Данные не связаны со смыслом, но могут являться основой для получения информации. То есть, информация может быть закодирована в данных. Также данные могут восстановить информацию, если они нагружены смыслом. В соответствии со смысловой нагрузкой данные могут быть интерпретированы. Кроме того, данные могут нести представление информации, когда они являются текстом некоторого сообщения, наделенного смыслом.
Например, предложение на русском языке несет смысловую нагрузку. Мы можем использовать Unicode или другую кодовую страницу для преобразования символов в языковые данные. В этом случае, используя преобразование данных в символы, мы получим информацию, закодированную в данных. Однако если мы применим другую кодовую страницу для расшифровки – например, ASCII к тексту в Unicode, мы не сможем понять содержимое данных, а, следовательно, не сможем извлечь смысл из кодов.
Ремарка: перекодированные данные в текст являются информацией только если закодированный текст имеет смысл.
Другим примером является реверс-инжиниринг программного кода, также известный как декомпиляция. При анализе чужого программного кода можно проследить логику, но невозможно понять, почему программа была написана именно таким образом, и чего хотел добиться автор определенными программными выражениями. Код, сгенерированный в языках программирования по технологии. Net корпорации Microsoft, является байт-кодом, а, соответственно, к нему может быть применен реверс-инжиниринг, который восстанавливает названия переменных, внутренних процедур, внутренних классов и пр. Всё это является хорошим материалом для понимания смысла программы, поскольку придает семантическую (смысловую) ясность. Разработчики, всячески стремящиеся противодействовать подобного рода анализу, придумали специальные программы обфускаторы, которые заменяют эти названия на другие, не несущие никакого смысла, а также которые противодействуют реверс-инжинирингу кода, поскольку добавляют в идентификаторы – названия переменных, методов и пр. запрещенные символы с точки зрения языков программирования (спецсимволы, пробелы и пр). Люди, всё же желающие анализировать код придумали программы деобфускаторы, которые позволяют сделать корректным код после декомпиляции при его реверс-инжиниринге. Разумеется, оригинальные названия переменных и других элементов кода деобфускаторы вернуть не в состоянии. Получается, что обфускаторы уничтожают смысл кода программы