Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2009, 19:11   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Получение "скрытой" информации из bmp

Где-то я слышал, что в бмп где-то можно приписывать какие-то данные (как после End.) , чтобы система игнорировала, а программа считывала из картинки информацию. Как это реализуется? Хотя бы принцип.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 10.06.2009, 22:32   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вот посмотрите
пишет в конец файла:
Код:
procedure LoadBitMap(FileName:string;var S:string;Pic:TBitMap=nil);
var F:TFileStream;
    b:byte;
    P:TBitMap;
begin
 if FileExists(FileName)=false then exit;
 F:=TFileStream.Create(FileName,fmOpenRead+fmShareDenyNone);
 if Pic<>nil then Pic.LoadFromStream(F)
  else begin
        P:=TBitMap.Create;
        P.LoadFromStream(F);
        P.Free;
       end;
 S:='';
 while F.Position<F.Size do
  begin
   F.ReadBuffer(b,1);
   S:=s+chr(b);
  end;
 F.Free;
end;

procedure SaveBitMap(FileName,Info:string);
var F:TFileStream;
    P:TBitMap;
    i:integer;
begin
 if FileExists(FileName)=false then exit;
 F:=TFileStream.Create(FileName,fmOpenReadWrite+fmShareDenyWrite);
 P:=TBitMap.Create;
 P.LoadFromStream(F);
 P.Free;
 F.Size:=F.Position;
 for i:=1 to length(Info) do F.WriteBuffer(Info[i],1);
 F.Free;
end;
1)чтение
параметры:
а)FileName - имя файла
б)S - строковая переменная в которую читаем
в)Pic - используется если нужно при чтении загрузить картинку(иначе можно опустить)
2)запись
параметры:
а)FileName - имя файла
б)Info - эту строку пишем.
при записи стирается то что там было до этого.

если надо могу переписать на безтиповый вид(тоесть писать и читать все что угодно, кроме классов)...хотя можете и сами наверно
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.06.2009, 22:40   #3
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

я конечно разбирался в формате BMP, что там внутри в первых 54 символах всякая инфа записана, а потом кодировка пикселей идёт, но вот что в конец рисунка можно всякую инфу запихать.... хм, смотря с какой целью. что-то спрятать? так это можно и в свой EXE'шник записать в конец. и считывать оттуда во время работы.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 10.06.2009, 22:49   #4
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

Здесь почитайте - http://programmersforum.ru/showthrea...D%E5%F0&page=2
Crivel вне форума Ответить с цитированием
Старый 10.06.2009, 23:00   #5
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

Цитата:
Хотя бы принцип.
Принцип прост. Не знаю на счёт bmp (хотя наверняка то же самое), но в jpg можно дописывать в конце всё что угодно. А программа просмотра просто знает сколько байт нужно прочитать, а об остальном даже не догадывается.
Но это ещё не всё! Не помню в чём прикол, но мусор можно дописывать и в RAR-архив, но... в начало! И что получается? Берём и склеиваем jpg и rar! Получаем отличный контейнер для секретов!

Прочитал на сайте журнала "Хакер".
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 11.06.2009, 08:19   #6
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

ясно...а я, дубина, сам придумывал, как инфу в файлы запихать.... а тут, оказывается, уже знают об этом способе.... мог бы просто спросить, если б раньше сюда попал, на этот форум... лан, зато сам дошёл - такие навыки ценнее!!!
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 11.06.2009, 11:07   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Всем спасибо, буду переваривать.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах mihali4 Свободное общение 1 17.01.2009 01:43
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03