Что нового

Открыть файл в бинарном виде

andre213

Новичок
Сообщения
10
Репутация
0
Доброго время суток!
Меня интересует такой вопрос: как открыть файл(к примеру BMP*) в бинарной системе счисления, подобно тому как работаю НЕХ редакторы, то есть бит за битом вот в таком виде:


бин: 01000010 01001101 00111010 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00110110 00000000 00000000 00000000 00101000 00000000

Ребята ооочень нужна ваша помощь!!! Мне надо для научных целей.
Знаю можно сделать при помощи массива, преобразуя с шестнадцатеричной системы, но в среднем по размерам BMP файле содержится более 2 миллионов строк (16х8 байт)это оч много для перебора на среднем по мощности компьютере.
Возможно существует решение при помощи регулярных выражений или API File или .COM объекты
 
A

Alofa

Гость
andre213
Посмотрите "Похожие темы" в конце этой страницы
 
Автор
A

andre213

Новичок
Сообщения
10
Репутация
0
Да, нашёл похожую статью
http://autoit-script.ru/index.php?topic=23546.0

Скорость выполнения оставляет желать лучшего 10 мб файл обрабатывает 10 минут.

Может есть ещё варианты, подойдут также написанные на других языках.
 
Автор
A

andre213

Новичок
Сообщения
10
Репутация
0
Prog сказал(а):
andre213 [?]
есть ещё варианты, подойдут также написанные на других языках
Изучайте.



Изучил... Спасибо за помощь, но это то что я хотел.
Файл показывает в шестнадцатеричном виде (424D36E8F9-Hex), а мне надо в двоичном виде(01000010 01001101 00111010 00000000 00000000 00000000 00000000 00000000 00000000 00000000 -bin).
 
A

Alofa

Гость
OffTopic:
andre213
Если не секрет, то зачем вам это?
Вас не смущает тот факт, что все BIN-редакторы отображают информацию в HEX?
 
Автор
A

andre213

Новичок
Сообщения
10
Репутация
0
Alofa
OffTopic:
andre213
Если не секрет, то зачем вам это?
Вас не смущает тот факт, что все BIN-редакторы отображают информацию в HEX?

[/quote]

Нет, не секрет, но это касается секретности.
Для реализации СЗИ используют два подхода:
1)Криптографию
2)Стеганографию
Библиотека криптографии встроена Autoit и встречаться пользовательские функции в инете. А вот стеганография как в классике этого жанра остаётся тайной.
Вкратце есть есть Битмап БМП изображения например (HEX)00-00-00 00-00-00, то в него можно встроить сообщение(HEX) FF-FF-FF, то стеганоконтейнер будет выглядеть так: 0F-0F-0F 0F-0F-0F.
Этот инжект не исказит существенно наш Битмап. Это называется встраивание в первых 4 бита, 8 битного БМП. Но это слишком грубо и можно выявить встраивание не вооружённым глазом без оригинала.
Для более скрытного встраивания необходимо использовать 3, 2 или 1 последних бит.
Что бы убрать математические операции преобразования(т.е. использовать Регулярные выражения вместо *****х массивов) необходимо использовать восьмеричную систему счисления для встраивания в 3 бита, четырёхручную систему для 2-х битов и двоичную систему для 1 бита.
Я так понял что это оч. жирно для многих языков.
НО выход есть - это использовать двоичную систему для всех 4х вариантов.
Вот я это и ищу.

По-поводу BIN редакторов: нет не смущает, к.т. Hex Editor Neo отображает файлы в HEX/OCT/BIN системах, причём перевод одной системы в другую занимает менее секунды для 50 мб файла(52 мил строк)
Я нашёл решение на Phyton размером в 2 строки(Работоспособность не проверял). Но хотелось бы найти решение на родном Autoit.

По моему мнению, это возможно осуществить через файловую систему используя COM объект...
 

Prog

Продвинутый
Сообщения
537
Репутация
65
Вам нужно встроить или выявить встраивание?
В любом случае, задача решается путем логических операций над байтами.
 
Автор
A

andre213

Новичок
Сообщения
10
Репутация
0
Встроить и выявить. Если регулярное выражение это логическая операция то да.
 
Верх