Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Реализация алгоритма стеганографической защиты




Особенности реализации алгоритма

 

Для реализации выберем два алгоритма стеганографической - первый алгоритм LSB, а второй - алгоритм, основанный на использовании резервных полей.

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

Т.к. скрытое сообщение может быть очень маленьким, а изображение, в которое будет помещаться данный текст большим, то необходимо также поместить информацию о размере сообщения. Для этого пусть будут использоваться два последних пикселя картинки.

Сохранить измененное изображение можно только в формате BMP, т.к. сохранение в других форматах сжимает тем или иным образом изображение, что неизбежно повлечёт повреждение сообщения.

Текст сообщения будет храниться в многострочном поле, следовательно, необходимо передать все знаки перехода на новую строку. Для того чтобы избежать проблем при работе со знаками перехода на новую строку будем использовать потоки, которые позволят работать с текстовыми данными как с набором бит.

Программа в качестве исходного изображения может использовать изображение формата JPEG или BMP, но конечное изображение будет храниться исключительно в BMP формате.

Для использования резервных полей файла JPEG воспользуемся набором сторонних библиотек CCR.Exif-1.1.2. Сообщение будет храниться в открытом виде в поле комментариев к файлу - такая примитивная вставка может обмануть как машину, ищущую нужную информацию по определённым критериям, так и человека, который с большой долей вероятности, при поверхностном просмотре файла не обратит внимание на содержание поля комментариев.

Рабочая документация программного продукта

 

Разработанная программа реализует алгоритм LSB и алгоритм использования резервных полей.

Системные требования

Системные требования:

- Тип ЭВМ: IBM PC-совместимые ПК.

-  ОС: Windows 9X/NT/2000/XP/Vista/Windows 7.

-  Размер ОЗУ: 64 Mб

-  Размер видео памяти: 32 Mб

-  Свободное место на HDD: 2 Мб

-  Процессор Pentium III 1ГГц и выше.

Установка программы не требуется - для начала работы с программой необходимо запустить файл Stego.exe.


Заключение

 

В ходе курсовой работу были рассмотрены и изучены алгоритмы стеганографической защиты, а также рассмотрены их достоинства и недостатки.

Написанная программа реализует стеганографические алгоритмы, которые позволяют срыть сам факт передачи информации, хотя информация передаётся в открытом виде.

Существующие сегодня стеганографические алгоритмы, которые имеют наибольшее распространении - это алгоритмы встраивания скрытой информации, которые можно разделить на несколько подгрупп:

- Работающие с самим цифровым сигналом. Например, метод LSB, который был реализован в программе.

-  «Впаивание» скрытой информации. В данном случае происходит наложение скрываемого изображения (звука, иногда текста) поверх оригинала. Часто используется для встраивания ЦВЗ.

-  Использование особенностей форматов файлов.

Хотя стегонаграфические методы защиты информации позволяют скрывать сам факт передачи информации, но использование только стеганографии не позволяет защищать информацию на должном уровне. Для повышения защищенности передаваемой информации необходимо использовать дополнительные меры защиты, такие как использование криптографических протоколов. Тогда в случае перехвата сообщения и обнаружения факта передачи противнику понадобится, время для вскрытия сообщения, которого может оказаться достаточно для того чтобы к моменту вскрытия сообщения информация потеряла всякую актуальность.


Список литературы

 

1. Конахович Г. Ф., Пузыренко А. Ю. Компьютерная стеганография. Теория и практика. - К.: МК-Пресс, 2006. - 288 с

2. Быков С. Ф. Алгоритм сжатия JPEG с позиции компьютерной стеганографии Защита информации. Конфидент. - СПб.: 2000, № 3

.   Грибунин В. Г., Оков И. Н., Туринцев И. В. Цифровая стеганография. - М.: Солон-Пресс, 2002. - 272 с

4. Schneier B (1996) Applied Cryptography. John Wiley and Sons, Indianapolis, IN

.   Chandramouli, R. and N. Memon, 2001. Analysis of LSB based image steganography techniques. Proc. of ICIP, Thessaloniki, Greece.

6. Dumitrescu, S., W. Xiaolin and Z. Wang, 2003. Detection of LSB steganography via sample pair analysis. In: LNCS, Vol. 2578, Springer-Verlag, New York, pp: 355-372.

.   Juan José Roque, Jesús María Minguet. SLSB: Improving the Steganographic Algorithm LSB, Universidad Nacional de Educación a Distancia (Spain)

8. С. Панасенко, "Алгоритмы шифрования". - СПб.: 2009.

.   Жельников В. Кpиптогpафия от папиpуса до компьютеpа. - М.: ABF, 1996. - 335 с.

10. David Kahn The Codebreakers - The Story of Secret Writing. - New York: Charles Scribner's Sons, 1967. - 473 с


Приложение 1

frmIzoInfo: TfrmIzoInfo= 0= 0= #1057#1087#1088#1103#1090#1072#1090#1100' '#1089#1086#1086#1073#1097#1077#1085#1080#1077' '#1074' '#1080#1085#1092#1086#1088#1084#1072#1094#1080#1080' '#1082' '#1092#1072#1081#1083#1091= 206= 473= clBtnFace.Charset = DEFAULT_CHARSET.Color = clWindowText.Height = -11.Name = 'Tahoma'.Style = []= False= poDesktopCenter= FormCreate= FormShow= 96= 13Label1: TLabel= 8= 44= 200= 21= #1057#1086#1086#1073#1097#1077#1085#1080#1077' '#1076#1083#1103' '#1089#1086#1082#1088#1099#1090#1080#1103':'.Charset = ANSI_CHARSET.Color = clWindowText.Height = -16.Name = 'Palatino Linotype'.Style = [fsBold, fsItalic]= FalseLabel2: TLabel= 8= 1= 107= 21= #1055#1091#1090#1100' '#1082' '#1092#1072#1081#1083#1091.Charset = RUSSIAN_CHARSET.Color = clWindowText.Height = -16.Name = 'Palatino Linotype'.Style = [fsBold, fsItalic]= FalseedIsxodDir: TEdit= 8= 24= 441= 21= 0bbOpenIsxod: TBitBtn= 444= 24= 21= 21= True.Data = {

D4202000000000000420000002800000010000000100000000100

E0000202E00000000000000000000007C0000E003

F000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBB7BFF7FFF7FFFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F977FA76E42666A318E2DAFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBC7FED76A0764062606A60450000

C31BD77FF7FFF7FFF7FFF7FDE7F307BA376806EE176A26A235A227F2031

FF7FFF7FFF7F557BC676A072C076E276E276A26E0356037B6066

FF7FFF7F787BEA76A076E076027B027BE276E27AA26E435EA36AA072

FFF7FFF7FDD7FA476A076E276027B027B027BE276027BC272425E8462C076ABD7BFF7FDD7FC376E076027B027B027B027B227F227F4266635E6356C36E

ECF66FF7FDD7FC376C076027B027B027B227F027B826A43626362835EE372A435EDE7BBC7BC376C076E276027B227FC2724366445EA366C26E027BE27AA606AAD66BC7FC372C076E276227FA26E235A8562A46AE276027BE276C276

BA072255EBC7FC372A072027BC072025E465AA366027F017BA072A072E172

A65667977BC7FC376C072806E456A465E8362E276C076406AED72077B606AABC7BFF7FDB7F80724066F06EDE7B4F7B8072606E64665673FF7FFD7F977BFFF7FFF7FFD7FED763673FF7FFF7FDC7F0D7BCD6EBC7BFF7FFF7FFF7FFF7FFFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFF7FFF7F}= False= 1= bbOpenIsxodClickmmMessage: TMemo= 8= 68= 458= 89.Charset = RUSSIAN_CHARSET.Color = clWindowText.Height = -13.Name = 'Times New Roman'.Style = []= False= ssBoth= 2butStartStego: TButton= 248= 163= 218= 27= #1057#1087#1088#1103#1090#1072#1090#1100' '#1089#1086#1086#1073#1097#1077#1085#1080#1077.Charset = RUSSIAN_CHARSET.Color = clWindowText.Height = -16.Name = 'Palatino Linotype'.Style = [fsBold, fsItalic]= False= 3= butStartStegoClickdiagOpenPict: TOpenPictureDialog= 'JPEG Image File (*.jpg)|*.jpg'= 272= 65528

unInfoIzo;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtDlgs, Buttons, CCR.Exif.JPEGUtils, CCR.Exif; стенография компьютерный скрытый информация

TfrmIzoInfo = class(TForm)

edIsxodDir: TEdit;: TBitBtn;: TOpenPictureDialog;: TMemo;: TLabel;: TButton;: TLabel;FormCreate(Sender: TObject);FormShow(Sender: TObject);bbOpenIsxodClick(Sender: TObject);butStartStegoClick(Sender: TObject);

{ Private declarations }

{ Public declarations };: TfrmIzoInfo;

{$R *.dfm}TfrmIzoInfo.bbOpenIsxodClick(Sender: TObject);.FileName:='';.Execute();diagOpenPict.FileName<>'' then.Text:=diagOpenPict.FileName;;TfrmIzoInfo.butStartStegoClick(Sender: TObject);Jpeg_im: TJpegImageEx;frmIzoInfo.Tag=0 then_im:= TJpegImageEx.Create;_im.LoadFromFile(edIsxodDir.Text);_im.ExifData.Comments:= mmMessage.Text;_im.SaveToFile(edIsxodDir.Text);(Application.Handle, 'Файл успешно перезаписан', 'Ok', MB_OK or MB_ICONINFORMATION);_im.Free;;_im:= TJpegImageEx.Create;_im.LoadFromFile(edIsxodDir.Text);.Text:=Jpeg_im.ExifData.Comments;_im.Free;;;TfrmIzoInfo.FormCreate(Sender: TObject);.InitialDir:=ExtractFilePath(Application.ExeName);;TfrmIzoInfo.FormShow(Sender: TObject);.Lines.Clear;.Text:='';;.frmIzo: TfrmIzo= 0= 0= bsDialog= #1057#1087#1088#1103#1090#1072#1090#1100' '#1074' '#1080#1079#1086#1073#1088#1072#1078#1077#1085#1080#1080= 439= 473= clBtnFace.Charset = DEFAULT_CHARSET.Color = clWindowText.Height = -11.Name = 'Tahoma'.Style = []= False= poDesktopCenter= FormCreate= FormShow= 96= 13imIsxodIzo: TImage= 8= 35= 200= 200= TrueimStegoIzo: TImage= 264= 35= 200= 200= TrueLabel1: TLabel= 8= 236= 200= 21= #1057#1086#1086#1073#1097#1077#1085#1080#1077' '#1076#1083#1103' '#1089#1086#1082#1088#1099#1090#1080#1103':'.Charset = ANSI_CHARSET.Color = clWindowText.Height = -16.Name = 'Palatino Linotype'.Style = [fsBold, fsItalic]= FalsebutSravn: TButton= 248= 386= 218= 47= #1055#1086#1082#1072#1079#1072#1090#1100' '#1080#1079#1086#1073#1088#1072#1078#1077#1085#1080#1103' '#1087#1088#1080' '#1088#1077#1072#1083#1100#1085#1086#1084' '#1084#1072#1089#1096#1090#1072#1073#1077.Charset = RUSSIAN_CHARSET.Color = clWindowText.Height = -16.Name = 'Palatino Linotype'.Style = [fsBold, fsItalic]= False= 0= True= butSravnClickmmMessage: TMemo= 8= 260= 458= 89.Charset = RUSSIAN_CHARSET.Color = clWindowText.Height = -13.Name = 'Times New Roman'.Style = []= False= ssBoth= 1butStartStego: TButton= 248= 355= 218= 27= #1057#1087#1088#1103#1090#1072#1090#1100' '#1089#1086#1086#1073#1097#1077#1085#1080#1077.Charset = RUSSIAN_CHARSET.Color = clWindowText.Height = -16.Name = 'Palatino Linotype'.Style = [fsBold, fsItalic]= False= 2= butStartStegoClickedIsxodDir: TEdit= 8= 8= 185= 21= 3= edIsxodDirDblClickbbOpenIsxod: TBitBtn= 192= 8= 21= 21= True.Data = {

D4202000000000000420000002800000010000000100000000100

E0000202E00000000000000000000007C0000E003

F000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBB7BFF7FFF7FFFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F977FA76E42666A318E2DAFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBC7FED76A0764062606A60450000

C31BD77FF7FFF7FFF7FFF7FDE7F307BA376806EE176A26A235A227F2031

FF7FFF7FFF7F557BC676A072C076E276E276A26E0356037B6066

FF7FFF7F787BEA76A076E076027B027BE276E27AA26E435EA36AA072

FFF7FFF7FDD7FA476A076E276027B027B027BE276027BC272425E8462C076ABD7BFF7FDD7FC376E076027B027B027B027B227F227F4266635E6356C36E

ECF66FF7FDD7FC376C076027B027B027B227F027B826A43626362835EE372A435EDE7BBC7BC376C076E276027B227FC2724366445EA366C26E027BE27AA606AAD66BC7FC372C076E276227FA26E235A8562A46AE276027BE276C276

BA072255EBC7FC372A072027BC072025E465AA366027F017BA072A072E172

A65667977BC7FC376C072806E456A465E8362E276C076406AED72077B606AABC7BFF7FDB7F80724066F06EDE7B4F7B8072606E64665673FF7FFD7F977BFFF7FFF7FFD7FED763673FF7FFF7FDC7F0D7BCD6EBC7BFF7FFF7FFF7FFF7FFFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFF7FFF7F}= False= 4= bbOpenIsxodClickedStegoDir: TEdit= 261= 8= 188= 21= 5= edStegoDirDblClickbbOpenStego: TBitBtn= 445= 8= 21= 21= True.Data = {

D4202000000000000420000002800000010000000100000000100

E0000202E00000000000000000000007C0000E003

F000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBB7BFF7FFF7FFFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F977FA76E42666A318E2DAFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBC7FED76A0764062606A60450000

C31BD77FF7FFF7FFF7FFF7FDE7F307BA376806EE176A26A235A227F2031

FF7FFF7FFF7F557BC676A072C076E276E276A26E0356037B6066

FF7FFF7F787BEA76A076E076027B027BE276E27AA26E435EA36AA072

FFF7FFF7FDD7FA476A076E276027B027B027BE276027BC272425E8462C076ABD7BFF7FDD7FC376E076027B027B027B027B227F227F4266635E6356C36E

ECF66FF7FDD7FC376C076027B027B027B227F027B826A43626362835EE372A435EDE7BBC7BC376C076E276027B227FC2724366445EA366C26E027BE27AA606AAD66BC7FC372C076E276227FA26E235A8562A46AE276027BE276C276

BA072255EBC7FC372A072027BC072025E465AA366027F017BA072A072E172

A65667977BC7FC376C072806E456A465E8362E276C076406AED72077B606AABC7BFF7FDB7F80724066F06EDE7B4F7B8072606E64665673FF7FFD7F977BFFF7FFF7FFD7FED763673FF7FFF7FDC7F0D7BCD6EBC7BFF7FFF7FFF7FFF7FFFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFF7FFF7F}= False= 6= bbOpenStegoClickdiagOpenPict: TOpenPictureDialog=

'All (*.jpg;*.bmp)|*.jpg;*.bmp|JPEG Image File (*.jpg)|*.jpg|Bitm' +

'aps (*.bmp)|*.bmp'= 224= 8diagSavePict: TSavePictureDialog= '.bmp'= 'Bitmaps (*.bmp)|*.bmp'= 224= 56

unIzo;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, Mask, Buttons, ExtDlgs, JPEG, unSravnenie;= class(TForm): TImage;: TImage;: TButton;: TLabel;: TMemo;: TButton;: TOpenPictureDialog;: TEdit;: TBitBtn;: TEdit;: TBitBtn;: TSavePictureDialog;FormCreate(Sender: TObject);edIsxodDirDblClick(Sender: TObject);edStegoDirDblClick(Sender: TObject);bbOpenIsxodClick(Sender: TObject);bbOpenStegoClick(Sender: TObject);FormShow(Sender: TObject);butStartStegoClick(Sender: TObject);butSravnClick(Sender: TObject);

{ Private declarations }

{ Public declarations };: TfrmIzo;:boolean;

{$R *.dfm}TfrmIzo.bbOpenIsxodClick(Sender: TObject);pict_jpg:TJPEGImage;.FileName:='';.Execute();diagOpenPict.FileName<>'' then.Text:=diagOpenPict.FileName;copy(diagOpenPict.FileName, length(diagOpenPict.FileName)-3,4)='.jpg' then_jpg:=TJPEGImage.Create;_jpg.LoadFromFile(diagOpenPict.FileName);.Picture.Assign(pict_jpg);(pict_jpg);.Picture.LoadFromFile(diagOpenPict.FileName);;;TfrmIzo.bbOpenStegoClick(Sender: TObject);.FileName:='';.Execute();diagSavePict.FileName<>'' then.Text:=diagSavePict.FileName;;TfrmIzo.butSravnClick(Sender: TObject);stego=false then exit;.imIsxod.Picture:=imIsxodIzo.Picture;.imStego.Picture:=imStegoIzo.Picture;.ShowModal;;TfrmIzo.butStartStegoClick(Sender: TObject);i,j,l,ns,nb:integer;_jpg:TJPEGImage;_bmp:TBitmap;_word:word;

//q:int64;:TStream;edIsxodDir.Text='' then(Application.Handle,'Не указан путь исходного изображения.', 'Error', MB_OK or MB_ICONERROR);;;edStegoDir.Text='' then(Application.Handle,'Не указан путь конечного изображения.', 'Error', MB_OK or MB_ICONERROR);;;

//showmessage(copy(diagOpenPict.FileName, length(diagOpenPict.FileName)-3,4));copy(diagOpenPict.FileName, length(diagOpenPict.FileName)-3,4)='.jpg' then_jpg:=TJPEGImage.Create;_jpg.LoadFromFile(diagOpenPict.FileName);_bmp:=TBitmap.Create;_bmp.Assign(pict_jpg);(pict_jpg);_bmp:=TBitmap.Create;_bmp.LoadFromFile(diagOpenPict.FileName);;

{if pict_bmp.Width*pict_bmp.Height*sizeof(integer)<length(Text)*2 then(Application.Handle,'Данное сообщение невозможно спрятать в этом изображении.', 'Error', MB_OK or MB_ICONERROR);;;}:=0;:=1;:=0;_word:=ord(mmMessage.Text[ns]);

//showmessage(IntToHex(sim_word,4));:=TMemoryStream.Create;.Lines.SaveToStream(data);.Seek(0,soFromBeginning);.Read(sim_word,2);(pict_bmp.Width*pict_bmp.Height-2)*sizeof(integer)<(data.Size+8) then(Application.Handle,'Данное сообщение невозможно спрятать в этом изображении.', 'Error', MB_OK or MB_ICONERROR);(pict_bmp);(data);;;i:=0 to pict_bmp.Width-1 doj:=0 to pict_bmp.Height-1 do(data.Position=data.Size)and(l mod 16=0) then break;(l mod 16=0)and(l<>0) then:=ns+1;.Read(sim_word,2);:=0;;

//showmessage(inttostr(ord(mmMessage.Text[ns]))+' '+chr(ord(mmMessage.Text[ns])));(sim_word and (1 shl nb))<>0 then_bmp.Canvas.Pixels[i,j]:=pict_bmp.Canvas.Pixels[i,j] or (1 shl 0)_bmp.Canvas.Pixels[i,j]:=pict_bmp.Canvas.Pixels[i,j] and not (1 shl 0);:=l+1;:=nb+1;(data.Position=data.Size)and(l mod 16=0) then break;(l mod 16=0)and(l<>0) then:=ns+1;.Read(sim_word,2);:=0;;(sim_word and (1 shl nb))<>0 then_bmp.Canvas.Pixels[i,j]:=pict_bmp.Canvas.Pixels[i,j] or (1 shl 1)_bmp.Canvas.Pixels[i,j]:=pict_bmp.Canvas.Pixels[i,j] and not (1 shl 1);:=l+1;:=nb+1;(data.Position=data.Size)and(l mod 16=0) then break;(l mod 16=0)and(l<>0) then:=ns+1;.Read(sim_word,2);:=0;;(sim_word and (1 shl nb))<>0 then_bmp.Canvas.Pixels[i,j]:=pict_bmp.Canvas.Pixels[i,j] or (1 shl 2)_bmp.Canvas.Pixels[i,j]:=pict_bmp.Canvas.Pixels[i,j] and not (1 shl 2);:=l+1;:=nb+1;;;i:=0 to 31 do(data.Size and (1 shl i))<>0 then_bmp.Canvas.Pixels[pict_bmp.Width-1,pict_bmp.Height-2]:=pict_bmp.Canvas.Pixels[pict_bmp.Width-1,pict_bmp.Height-2] or (1 shl i)_bmp.Canvas.Pixels[pict_bmp.Width-1,pict_bmp.Height-2]:=pict_bmp.Canvas.Pixels[pict_bmp.Width-1,pict_bmp.Height-2] and not (1 shl i);:=i+32;(data.Size and (1 shl j))<>0 then_bmp.Canvas.Pixels[pict_bmp.Width-1,pict_bmp.Height-1]:=pict_bmp.Canvas.Pixels[pict_bmp.Width-1,pict_bmp.Height-1] or (1 shl i)_bmp.Canvas.Pixels[pict_bmp.Width-1,pict_bmp.Height-1]:=pict_bmp.Canvas.Pixels[pict_bmp.Width-1,pict_bmp.Height-1] and not (1 shl i);;_bmp.SaveToFile(edStegoDir.Text);.Picture.Assign(pict_bmp);(pict_bmp);(data);:=true;;TfrmIzo.edIsxodDirDblClick(Sender: TObject);.Click;;TfrmIzo.edStegoDirDblClick(Sender: TObject);.Click;;TfrmIzo.FormCreate(Sender: TObject);.InitialDir:=ExtractFilePath(Application.ExeName);.InitialDir:=ExtractFilePath(Application.ExeName);

//diredIsxod.;TfrmIzo.FormShow(Sender: TObject);.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Question.bmp');.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Question.bmp');.Text:='';.Text:='';.Lines.Clear;:=false;;.frmIzvlechMessage: TfrmIzvlechMessage= 0= 0= bsDialog= #1048#1079#1074#1083#1077#1095#1100' '#1089#1086#1086#1073#1097#1077#1085#1080#1077' '#1080#1079' '#1080#1079#1086#1073#1088#1072#1078#1077#1085#1080#1103= 388= 428= clBtnFace.Charset = DEFAULT_CHARSET.Color = clWindowText.Height = -11.Name = 'Tahoma'.Style = []= False= FormShow= 96= 13imIsxodIzo: TImage= 8= 35= 402= 200= TrueLabel1: TLabel= 8= 236= 183= 21= #1048#1079#1074#1083#1077#1095#1105#1085#1085#1086#1077' '#1089#1086#1086#1073#1097#1077#1085#1080#1077':'.Charset = ANSI_CHARSET.Color = clWindowText.Height = -16.Name = 'Palatino Linotype'.Style = [fsBold, fsItalic]= FalseedIsxodDir: TEdit= 8= 8= 385= 21= 0mmMessage: TMemo= 8= 260= 402= 89.Charset = RUSSIAN_CHARSET.Color = clWindowText.Height = -13.Name = 'Times New Roman'.Style = []= False= ssBoth= 1butStartStego: TButton= 266= 355= 154= 27= #1048#1079#1074#1083#1077#1095#1100' '#1089#1086#1086#1073#1097#1077#1085#1080#1077.Charset = RUSSIAN_CHARSET.Color = clWindowText.Height = -16.Name = 'Palatino Linotype'.Style = [fsBold, fsItalic]= False= 2= butStartStegoClickbbOpenIsxod: TBitBtn= 389= 8= 21= 21= True.Data = {

D4202000000000000420000002800000010000000100000000100

E0000202E00000000000000000000007C0000E003

F000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBB7BFF7FFF7FFFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F977FA76E42666A318E2DAFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBC7FED76A0764062606A60450000

C31BD77FF7FFF7FFF7FFF7FDE7F307BA376806EE176A26A235A227F2031

FF7FFF7FFF7F557BC676A072C076E276E276A26E0356037B6066

FF7FFF7F787BEA76A076E076027B027BE276E27AA26E435EA36AA072

FFF7FFF7FDD7FA476A076E276027B027B027BE276027BC272425E8462C076ABD7BFF7FDD7FC376E076027B027B027B027B227F227F4266635E6356C36E

ECF66FF7FDD7FC376C076027B027B027B227F027B826A43626362835EE372A435EDE7BBC7BC376C076E276027B227FC2724366445EA366C26E027BE27AA606AAD66BC7FC372C076E276227FA26E235A8562A46AE276027BE276C276

BA072255EBC7FC372A072027BC072025E465AA366027F017BA072A072E172

A65667977BC7FC376C072806E456A465E8362E276C076406AED72077B606AABC7BFF7FDB7F80724066F06EDE7B4F7B8072606E64665673FF7FFD7F977BFFF7FFF7FFD7FED763673FF7FFF7FDC7F0D7BCD6EBC7BFF7FFF7FFF7FFF7FFFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFF7FFF7F}= False= 3= bbOpenIsxodClickdiagOpenPict: TOpenPictureDialog= 'Bitmaps (*.bmp)|*.bmp'= 208= 232

unIzvlechMessage;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, JPEG, ExtDlgs, ExtCtrls, Buttons, StdCtrls;= class(TForm): TEdit;: TImage;: TOpenPictureDialog;: TLabel;: TMemo;: TButton;: TBitBtn;bbOpenIsxodClick(Sender: TObject);butStartStegoClick(Sender: TObject);FormShow(Sender: TObject);

{ Private declarations }

{ Public declarations };: TfrmIzvlechMessage;

{$R *.dfm}TfrmIzvlechMessage.bbOpenIsxodClick(Sender: TObject);.FileName:='';.Execute();diagOpenPict.FileName<>'' then.Text:=diagOpenPict.FileName;.Picture.LoadFromFile(diagOpenPict.FileName);;;TfrmIzvlechMessage.butStartStegoClick(Sender: TObject);i,j,nb:integer;_bmp:TBitmap;_b:word;:int64;:TStream;edIsxodDir.Text='' then(Application.Handle,'Не указан путь исходного изображения.', 'Error', MB_OK or MB_ICONERROR);;;_bmp:=TBitmap.Create;_bmp.LoadFromFile(diagOpenPict.FileName);:=TMemoryStream.Create;.Seek(0,soFromBeginning);:=0;_b:=0;:=0;i:=0 to 31 do(pict_bmp.Canvas.Pixels[pict_bmp.Width-1,pict_bmp.Height-2] and (1 shl i))<>0 then:=sizeofdata or (1 shl i):=sizeofdata and not (1 shl i);(pict_bmp.Canvas.Pixels[pict_bmp.Width-1,pict_bmp.Height-1] and (1 shl i))<>0 then:=sizeofdata or (1 shl (i+32)):=sizeofdata and not (1 shl (i+32));;i:=0 to pict_bmp.Width doj:=0 to pict_bmp.Height do(data.Size=sizeofdata)and(nb mod 16 =0) then break;(nb mod 16 =0)and(nb<>0) then:=0;.Write(sim_b,2);

//text:=text+chr(sim_b);;(pict_bmp.Canvas.Pixels[i,j] and (1 shl 0))<>0 then_b:=sim_b or (1 shl nb)_b:=sim_b and not (1 shl nb);:=nb+1;(data.Size=sizeofdata)and(nb mod 16 =0) then break;(nb mod 16 =0)and(nb<>0) then:=0;.Write(sim_b,2);

//text:=text+chr(sim_b);;(pict_bmp.Canvas.Pixels[i,j] and (1 shl 1))<>0 then_b:=sim_b or (1 shl nb)_b:=sim_b and not (1 shl nb);:=nb+1;(data.Size=sizeofdata)and(nb mod 16 =0) then break;(nb mod 16 =0)and(nb<>0) then:=0;.Write(sim_b,2);

//text:=text+chr(sim_b);;(pict_bmp.Canvas.Pixels[i,j] and (1 shl 2))<>0 then_b:=sim_b or (1 shl nb)_b:=sim_b and not (1 shl nb);:=nb+1;;

//mmMessage.Text:=text;.Seek(0,soFromBeginning);.Lines.LoadFromStream(data);(pict_bmp);;TfrmIzvlechMessage.FormShow(Sender: TObject);.Text:='';.Text:='';.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Question.bmp');;.frmMain: TfrmMain= 0= 0= [biSystemMenu, biMinimize]= #1057#1090#1077#1075#1072#1085#1086#1075#1088#1072#1092#1080#1103' '#1089' '#1080#1079#1086#1073#1088#1072#1078#1077#1085#1080#1077#1084= 155= 419= clBtnFace.Charset = RUSSIAN_CHARSET.Color = clWindowText.Height = -16.Name = 'Palatino Linotype'.Style = [fsBold, fsItalic]= False= poDesktopCenter= (

 

)= 96= 21butIzo: TButton= 8= 8= 401= 28= [akLeft, akRight]= #1057#1087#1088#1103#1090#1072#1090#1100' '#1089#1086#1086#1073#1097#1077#1085#1080#1077' '#1074' '#1080#1079#1086#1073#1088#1072#1078#1077#1085#1080#1080' '= 0= butIzoClickbutInfoIzo: TButton= 8= 45= 401= 28= [akLeft, akRight]= #1057#1087#1088#1103#1090#1072#1090#1100' '#1089#1086#1086#1073#1097#1077#1085#1080#1077' '#1074' '#1080#1085#1092#1086#1088#1084#1072#1094#1080#1080' '#1092#1072#1081#1083#1072' JPEG '= 1= True= butInfoIzoClickbutStegoIzo: TButton= 8= 79= 401= 28= [akLeft, akRight]= #1048#1079#1074#1083#1077#1095#1100' '#1089#1086#1086#1073#1097#1077#1085#1080#1077' '#1080#1079' '#1080#1079#1086#1073#1088#1072#1078#1077#1085#1080#1103= 2= butStegoIzoClickbutStegoInfoIzo: TButton= 8= 116= 401= 28= [akLeft, akRight]= #1048#1079#1074#1083#1077#1095#1100' '#1089#1086#1086#1073#1097#1077#1085#1080#1077' '#1080#1079' '#1080#1085#1092#1086#1088#1084#1072#1094#1080#1080' '#1092#1072#1081#1083#1072' JPEG '= 3= True= butStegoInfoIzoClick

unMainForm;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, unIzo, unIzvlechMessage, unInfoIzo;= class(TForm): TButton;: TButton;: TButton;: TButton;butIzoClick(Sender: TObject);butStegoIzoClick(Sender: TObject);butInfoIzoClick(Sender: TObject);butStegoInfoIzoClick(Sender: TObject);

{ Private declarations }

{ Public declarations };: TfrmMain;

{$R *.dfm}TfrmMain.butInfoIzoClick(Sender: TObject);.Tag:=0;.butStartStego.Caption:='Спрятать сообщение';

frmIzoInfo.Label1.Caption:='Сообщение для сокрытия:';.Caption:='Спрятать сообщение в информации к файлу';

frmIzoInfo.ShowModal;;TfrmMain.butIzoClick(Sender: TObject);.ShowModal;;TfrmMain.butStegoInfoIzoClick(Sender: TObject);.Tag:=1;.butStartStego.Caption:='Получить сообщение';.Label1.Caption:='Сообщение:';

frmIzoInfo.Caption:='Получить сообщение из информации к файлу';

frmIzoInfo.ShowModal;;TfrmMain.butStegoIzoClick(Sender: TObject);.ShowModal;;.frmSravnenie: TfrmSravnenie= 0= 0= bsDialog= #1048#1089#1093#1086#1076#1085#1086#1077' '#1080#1079#1086#1073#1088#1072#1078#1077#1085#1080#1077' '#1080' '#1080#1079#1086#1073#1088#1072#1078#1077#1085#1080#1077' '#1089' '#1089#1086#1086#1073#1097#1077#1085#1080#1077#1084= 350= 700= clBtnFace.Charset = DEFAULT_CHARSET.Color = clWindowText.Height = -11.Name = 'Tahoma'.Style = []= False= poDesktopCenter= 96= 13imIsxod: TImage= 0= 0= 350= 350= alLeftimStego: TImage= 350= 0= 350= 350= alClient= 337= 380

unSravnenie;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls;= class(TForm): TImage;: TImage;

{ Private declarations }

{ Public declarations };: TfrmSravnenie;

{$R *.dfm}.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...