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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2012, 19:18   #1
njn
 
Регистрация: 25.04.2012
Сообщений: 6
По умолчанию Скрытая информация внутри Jpeg

В общем стоит задача спрятать какую то информацию (лучше всего архив) внутри файла jpeg. Метод вроде бы довольно простой - спрятать нужно в заголовок, вписать по маркеру (АРР0-АРРn)... как то так. Метод простой, но запрограммировать не могу. Прога нужна на Delphi 7. Может кто то уже делал это?
njn вне форума Ответить с цитированием
Старый 22.05.2012, 00:06   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Зачем тебе это в заголовок писать? Можно прилепить это в конец файла.
В конец файла запишется числа от 48 до 57 (в таблице ASCII это числа от 0 до 9). Если открыть этот файл в блокноте, то увидите в конце числа от 0 до 9.
Код:
var
 f:TMemorystream;
 buf:integer;
begin
f:=TMemorystream.Create;
f.LoadFromFile('1.jpg');
f.Seek(f.Size,soBeginning);
for buf := 48 to 57 do
f.Write(buf,1);
f.SaveToFile('1.jpg');
f.Free;
UPD:
Чтобы закатать архив, коТ такой:
Код:
Код:
var
 f1,f2:TMemorystream;
 buf:integer;
begin
f1:=TMemorystream.Create;
f2:=TMemorystream.Create;
f1.LoadFromFile('1.jpg');
f2.LoadFromFile('1.rar');
f1.Seek(f1.Size,soBeginning);
f2.Seek(0,soBeginning);
f1.CopyFrom(f2 as TStream,f2.size);
f1.SaveToFile('123.jpg');
f1.Free;
f2.Free;
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 22.05.2012 в 00:43.
Rin вне форума Ответить с цитированием
Старый 22.05.2012, 00:39   #3
njn
 
Регистрация: 25.04.2012
Сообщений: 6
По умолчанию

препод сказал пиши в заголовок. вот я и думаю как
njn вне форума Ответить с цитированием
Старый 22.05.2012, 00:46   #4
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Какой размер инфы нужно записать?
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 22.05.2012, 00:47   #5
njn
 
Регистрация: 25.04.2012
Сообщений: 6
По умолчанию

ну хотя бы 30 кб
njn вне форума Ответить с цитированием
Старый 22.05.2012, 01:44   #6
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Почитайте. Создаем новый поток, копируем в него побайтно наш файл из другого потока, пока не наткнемся на FF E0,.., FF EF. Дальше, можете оставить записанные APP или записать свои. Проще просто записать свои. Структура APP приведена в статье. Не забудьте, что длина данных для одного APP=2 байта длины + данные, и не может превышать 65535 байт. Записываем в новый поток FF E0, потом длину, потом ваши данные. Если не помещается, то прописываем новый APP, длину, и опять данные. Заметьте, что запихнуть сможете приблизительно 1 Мб, использовав все APPn, но не более.
После в потоке, в котором находится файл, считываем APPn, длину, перескакиваем данные. Как только, перескочив данные APP старого файла, мы увидим 2 байта, не похожие на FF En, начинаем запись в новый поток.
Вот как-то так.
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 22.05.2012 в 23:52.
Rin вне форума Ответить с цитированием
Старый 22.05.2012, 07:11   #7
njn
 
Регистрация: 25.04.2012
Сообщений: 6
По умолчанию

можно с Вами как то связаться? по аське или в скайпе? вот мой qip:635777573
njn вне форума Ответить с цитированием
Старый 22.05.2012, 08:04   #8
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Вы лучше сюда пишите. Пусть будет общедоступно.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 22.05.2012, 08:06   #9
njn
 
Регистрация: 25.04.2012
Сообщений: 6
По умолчанию

мне программу нужно сделать, я готов заплатить а потом хоть всю дипломную в паблик выложить
njn вне форума Ответить с цитированием
Старый 22.05.2012, 08:50   #10
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
...а потом хоть всю дипломную в паблик выложить
...потому что не сам делал и ничего не знаешь и чтобы в голове вообще ничего не осталось.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка одномерных массивов, СИ. задание внутри, и написанный мною текст программы тоже внутри. кое-что нужно исправить.. Амелия Общие вопросы C/C++ 6 02.04.2012 20:03
Скрытая копия smrtipathaka Microsoft Office Excel 0 04.04.2011 11:07
Нахождение слов-анаграмм, Ошибка выдается. Задание внутри. Код внутри. TYMON Общие вопросы .NET 2 22.11.2010 21:07
Скрытая папка Marsik Помощь студентам 4 06.12.2007 16:07