Exemplo n.º 1
0
        public static void Decoder(Stegonography s)
        {
            var reader = new VideoFileReader();

            reader.Open("test.avi");
            Console.WriteLine("\nVideo title:  " + "test.avi");
            Console.WriteLine("width:  " + reader.Width);
            Console.WriteLine("height: " + reader.Height);
            Console.WriteLine("fps:    " + reader.FrameRate);
            Console.WriteLine("codec:  " + reader.CodecName);
            Console.WriteLine("frames: " + reader.FrameCount);

            string decoded = "";
            int    frame   = 0;

            int rgb = 0;

            for (int i = 0; i < reader.FrameCount; i++)
            {
                Bitmap videoFrame = reader.ReadVideoFrame();
                if (s.FramesToStoreCordinates[frame] == i)
                {
                    for (int cord = 0; cord < s.DataCordinates.Count(); cord++)
                    {
                        int x = (int)s.DataCordinates.ElementAt(cord).X;
                        int y = (int)s.DataCordinates.ElementAt(cord).Y;

                        var color = videoFrame.GetPixel(x, y);
                        var data  = "";
                        if (rgb == 0)
                        {
                            data = Convert.ToChar(color.B).ToString();
                        }
                        else if (rgb == 1)
                        {
                            data = Convert.ToChar(color.G).ToString();
                        }
                        else
                        {
                            data = Convert.ToChar(color.R).ToString();
                        }
                        rgb = (rgb + 1) % 3;

                        decoded += data;
                    }

                    frame++;
                }
                videoFrame.Dispose();
            }
            Console.WriteLine("\n" + decoded);
            reader.Close();

            Console.ReadKey();
        }
Exemplo n.º 2
0
            public SaveVideo(Stegonography steg)
            {
                stegonography = steg;
                //Saving into new AVI
                // create instance of video writer

                //Uncommented till VideoFileWriter is compressing the data!
                //writer = new VideoFileWriter();
                //writer.Open("test.avi", stegonography.Width + 1, stegonography.Height + 1, stegonography.FPS, VideoCodec.MPEG4);

                //Empty constructor is creating writer with DIB codec which means no compression
                writer           = new AVIWriter();
                writer.FrameRate = steg.FPS;
                writer.Open("test.avi", steg.Width + 1, steg.Height + 1);
            }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            string fileName = "";
            int    bpp      = 2;
            bool   encrypt  = false;

            string toEncrypt = "";

            for (int i = 0; i < 1000; i++)
            {
                toEncrypt += i.ToString() + " ";//"Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world";
            }
            if (args.Length > 0)
            {
                fileName = args[0];
                if (args.Length > 1)
                {
                    bpp = int.Parse(args[1]);
                }
            }
            else
            {
                Debug.Log("Enter fileName: ", ConsoleColor.White, false);
                fileName = Console.ReadLine();

                while (true)
                {
                    Debug.Log("Encrypt - e or decrypt - d?");
                    char c = Console.ReadKey().KeyChar;
                    Debug.Log("");

                    if (c == 'e' || c == 'E')
                    {
                        encrypt = true;
                        Debug.Log("What to encrypt?");
                        toEncrypt = Console.ReadLine();

                        break;
                    }
                    else if (c == 'd' || c == 'D')
                    {
                        break;
                    }
                    else
                    {
                        Debug.Log("You have to enter e or d");
                    }
                }

                Debug.Log("Bit per pixel (default - 2): ", ConsoleColor.White, false);
                bpp = int.Parse(Console.ReadLine());
            }

            Stegonography engine = new Stegonography(fileName);

            //engine.DisplayBytes(54, 90);


            if (encrypt)
            {
                engine.Encrypt(toEncrypt, bpp);
            }
            else
            {
                string value = engine.Decrypt(bpp);

                Debug.Log("Decrypted message: ");
                Debug.Log(value, ConsoleColor.Green);

                Console.ReadKey();
            }
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            #region TESTS
            //VideoFileReader reader = new VideoFileReader();
            //// open video file
            ////reader.Open("Helicopter_DivXHT_ASP.divx");
            //reader.Open("Audioslave_-_Be_Yourself.avi");
            //// check some of its attributes
            //Console.WriteLine("Video title: " + "Audioslave_ - _Be_Yourself.avi");
            //Console.WriteLine("width:  " + reader.Width);
            //Console.WriteLine("height: " + reader.Height);
            //Console.WriteLine("fps:    " + reader.FrameRate);
            //Console.WriteLine("codec:  " + reader.CodecName);
            //Console.WriteLine("frames: " + reader.FrameCount);

            ////var writer = new VideoFileWriter();
            //AVIWriter writer = new AVIWriter();
            //writer.FrameRate = reader.FrameRate;
            //writer.Open("test.avi", reader.Width, reader.Height);

            ////writer.Open("test.avi", reader.Width, reader.Height, reader.FrameRate, VideoCodec.MPEG4, 1000);
            //for (int x = 0; x < 100; x++)
            //{
            //    Bitmap videoFrame = reader.ReadVideoFrame();
            //    if (x < 10)
            //        for (int i = 0; i < reader.Width; i++)
            //        {
            //            for (int j = 0; j < reader.Height; j++)
            //            {
            //                videoFrame.SetPixel(i, j, Color.FromArgb(222, 222, 222));
            //                Color p = videoFrame.GetPixel(i, j);
            //            }
            //        }

            //    using (Bitmap oldBmp = new Bitmap(videoFrame))
            //    using (Bitmap newBmp = new Bitmap(oldBmp))
            //    using (Bitmap targetBmp = newBmp.Clone(new Rectangle(0, 0, newBmp.Width, newBmp.Height), PixelFormat.Format24bppRgb))
            //    {
            //        writer.AddFrame(targetBmp);
            //    }
            //    //writer.WriteVideoFrame(videoFrame);
            //    //writer.WriteVideoFrame(videoFrame.Clone(new Rectangle(0, 0, reader.Width, reader.Height), PixelFormat.Format24bppRgb));
            //    videoFrame.Dispose();
            //}
            //writer.Close();
            //reader.Close();

            //reader = new VideoFileReader();
            //reader.Open("test.avi");
            //Console.WriteLine("\nVideo title:  " + "test.avi");
            //Console.WriteLine("width:  " + reader.Width);
            //Console.WriteLine("height: " + reader.Height);
            //Console.WriteLine("fps:    " + reader.FrameRate);
            //Console.WriteLine("codec:  " + reader.CodecName);
            //Console.WriteLine("frames: " + reader.FrameCount);

            //for (int i = 0; i < reader.FrameCount; i++)
            //{
            //    Bitmap videoFrame = reader.ReadVideoFrame();
            //    Color c = videoFrame.GetPixel(0, 0);
            //}
            #endregion

            VideoFileReader reader = new VideoFileReader();
            // open video file
            reader.Open("Audioslave_-_Be_Yourself.avi");
            // check some of its attributes
            Console.WriteLine("Video title: " + "Audioslave_ - _Be_Yourself.avi");
            Console.WriteLine("width:  " + reader.Width);
            Console.WriteLine("height: " + reader.Height);
            Console.WriteLine("fps:    " + reader.FrameRate);
            Console.WriteLine("codec:  " + reader.CodecName);
            Console.WriteLine("frames: " + reader.FrameCount);

            string encode =
                @"Lorem ipsum dolor sit amet quam. Nam eget gravida tempor, dolor gravida sollicitudin, urna nec nibh malesuada euismod, nulla in vehicula vitae, dapibus aliquam cursus aliquet. Aliquam id lorem. Suspendisse potenti. In fermentum. Proin lacus. Aenean ut nonummy rutrum. In justo non enim fringilla orci. Donec nisl nulla non augue. Vestibulum ante sit amet, elementum quis, interdum rhoncus, dolor sit amet pede. Duis ac erat. Duis luctus, quam nibh consectetuer ac, rhoncus eget, dapibus aliquam purus. Praesent quis orci. Phasellus ipsum primis in faucibus scelerisque. Vestibulum ante volutpat at, mattis sem. Integer adipiscing. Vestibulum vitae dui pulvinar ligula, et lacus sagittis lacus. Phasellus facilisis in, adipiscing felis cursus wisi nibh ac turpis gravida vitae, ultricies vitae, ligula. Fusce posuere in, mauris. Nullam eleifend lacinia, diam eros, sagittis lorem. Etiam leo ac turpis vitae ornare pulvinar sem luctus et leo. Sed ultricies in, pulvinar nulla sit amet sapien faucibus a, ultricies viverra accumsan, dolor urna, eu tortor. Suspendisse nec turpis egestas. Praesent elit tincidunt risus auctor scelerisque, quam congue risus. Aliquam feugiat sagittis ac, mollis vel, eros. Quisque placerat velit ornare ultrices posuere eu, nisl. Fusce mollis, purus lacinia aliquet enim sodales in, purus. Phasellus nec scelerisque sem. Sed ligula non felis. Curabitur magna auctor mattis. Pellentesque mattis sed, vestibulum sapien, lacinia neque. Etiam urna eu wisi. Aenean non dui. Nullam justo vulputate nunc. Praesent magna ut diam mauris, volutpat commodo. Cras sit amet tellus tortor, fermentum ut, ligula. Curabitur magna arcu, eget lacus nulla id nonummy laoreet, est congue ac, tincidunt in, purus. Proin cursus lectus, luctus diam. Nullam risus sit amet, volutpat non, dolor. Nullam laoreet, nulla id odio nec tempor diam eu lobortis urna. Vestibulum leo. Quisque pretium eget, dolor. Ut nonummy. Phasellus id arcu. Cras vitae metus. Curabitur quis nibh lacus, congue sit amet cursus dui non felis. In urna. Sed laoreet vel, quam. Mauris neque. Nulla ligula placerat porttitor. Class aptent taciti sociosqu ad litora torquent per inceptos hymenaeos. Nunc massa nisl, sollicitudin augue id sollicitudin quis, tincidunt eget, cursus sapien. Proin non urna. Suspendisse luctus id, lacinia erat. Fusce nonummy sagittis. Curabitur quis nulla facilisis faucibus sem laoreet hendrerit ac, suscipit vitae, ipsum. Fusce nonummy condimentum sit amet, libero. Aliquam ut tortor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per conubia nostra, per inceptos hymenaeos. Fusce tristique, sollicitudin.";
            Stegonography s = new Stegonography(encode, (int)reader.FrameCount, reader.Width, reader.Height, reader.FrameRate);
            Console.WriteLine("Text length: " + encode.Length);
            int frame = 0;

            Color oldData;
            Color newData;
            int   rgb       = 0;
            int   letterPtr = 0;

            SaveVideo newVideo = new SaveVideo(s);
            for (int i = 0; i < s.NumberOfFrames - 1; i++)
            {
                Bitmap videoFrame = reader.ReadVideoFrame();
                if (s.FramesToStoreCordinates[frame] == i)
                {
                    for (int cord = 0; cord < s.DataCordinates.Count(); cord++)
                    {
                        int x = (int)s.DataCordinates.ElementAt(cord).X;
                        int y = (int)s.DataCordinates.ElementAt(cord).Y;

                        oldData = videoFrame.GetPixel(x, y);

                        if (rgb == 0)
                        {
                            newData = Color.FromArgb(oldData.R, oldData.G, Convert.ToByte(s.TextToEncode[letterPtr]));
                        }
                        else if (rgb == 1)
                        {
                            newData = Color.FromArgb(oldData.R, Convert.ToByte(s.TextToEncode[letterPtr]), oldData.B);
                        }
                        else
                        {
                            newData = Color.FromArgb(Convert.ToByte(s.TextToEncode[letterPtr]), oldData.G, oldData.B);
                        }
                        rgb = (rgb + 1) % 3;
                        letterPtr++;
                        videoFrame.SetPixel(x, y, newData);
                    }

                    frame++;
                }
                newVideo.AddFrame(videoFrame);
                videoFrame.Dispose();
            }
            reader.Close();
            newVideo.ExecuteSaving();

            Decoder(s);
        }