وبلاگ مصطفی ستاری

یک وبلاگ برنامه نویسی دیگر

یک وبلاگ برنامه نویسی دیگر

۴ مطلب در اسفند ۱۳۹۲ ثبت شده است

حل استگانوگرافی تیم باقالی (LookMore#1)

چند وقت پیش یکی از دوستان سی‌تی‌اف باز (TMT) از تیم باقالی، یک استگانو طراحی کرد و ما رو دعوت به حلش کرد.

امضای فایل حامل، هیچ فایل مشخصی رو نشون نمی‌ده. وقتی فایل رو با یک هگز ادیتور باز می‌کنیم می‌بینیم که هیچ بایت NULL ای نداره. در عوض تعداد زیادی بایت 0x09 داره.

بعد از XOR کردن فایل یک فایل عکس به دست می‌یاد که توش نوشته Baghali. (تصویر بزرگ شده)

خوب توی توضیحات چلنج گفته شده بود که جواب Baghali نیست پس هنوز کار تموم نشده.

پیکسل‌های رنگی فایل، رنگ سبزشون متغیره و بقیه رنگها ثابت هستند(0xFF). اگر هیستوگرام این فایل رو بگیریم می‌بینیم که شبیه یه رشته بیتی می‌شه.

پس از تبدیل این رشته بیتی به اسکی به فلگ که FlagIs:Stego.Can.Be.Hard.Baghal می‌رسیم.

البته انجام این روند به صورت دستی کار حوصله بری هست، بنابراین ما برای انجام کل عملیات کد زدیم.

قسمت اصلی برنامه که تبدیل عکس به هیستوگرام هست به شکل زیر است:

        public static long[] GetHistogram(Bitmap picture)
        {
            var histogram = new long[256];
 
            for (int i = 0; i < picture.Size.Width; i++)
                for (int j = 0; j < picture.Size.Height; j++)
                {
                    Color c = picture.GetPixel(i, j);
                    histogram[c.G]++;
                }
 
            return histogram;
        }

در نهایت برنامه کامل که همه این کارها را از ابتدای XOR انجام می‌دهد:

سومین مطلب آزمایشی

این سومین مطلب تستی من هست که توسط خودم البته نوشته شده.

برای تست نمایش کد در وبلاگ :

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            System.Windows.Forms.Label member_IDLabel;
            System.Windows.Forms.Label loan_SerialLabel;
            System.Windows.Forms.Label amountLabel;
            System.Windows.Forms.Label payDateLabel;
            this.idLabel = new System.Windows.Forms.Label();
            this.memberLinkLabel = new System.Windows.Forms.LinkLabel();
            this.member_IDTextBox = new System.Windows.Forms.TextBox();
            this.loansDataGridView = new System.Windows.Forms.DataGridView();

عنوان دومین مطلب آزمایشی من

این متن دومین مطلب آزمایشی من است که به زودی آن را حذف خواهم کرد.

زکات علم، نشر آن است. هر وبلاگ می تواند پایگاهی برای نشر علم و دانش باشد. بهره برداری علمی از ,بلاگ ها نقش بسزایی در تولید محتوای مفید فارسی در اینترنت خواهد داشت. انتشار جزوات و متون درسی، یافته های تحقیقی و مقالات علمی از جمله کاربردهای علمی قابل تصور برای ,بلاگ ها است.

همچنین وبلاگ نویسی یکی از موثرترین شیوه های نوین اطلاع رسانی است و در جهان کم نیستند وبلاگ هایی که با رسانه های رسمی خبری رقابت می کنند. در بعد کسب و کار نیز، روز به روز بر تعداد شرکت هایی که اطلاع رسانی محصولات، خدمات و رویدادهای خود را از طریق بلاگ انجام می دهند افزوده می شود.

عنوان اولین مطلب آزمایشی من

این متن اولین مطلب آزمایشی من است که به زودی آن را حذف خواهم کرد.

مرد خردمند هنر پیشه را، عمر دو بایست در این روزگار، تا به یکی تجربه اندوختن، با دگری تجربه بردن به کار!

اگر همه ما تجربیات مفید خود را در اختیار دیگران قرار دهیم همه خواهند توانست با انتخاب ها و تصمیم های درست تر، استفاده بهتری از وقت و عمر خود داشته باشند.

گاهی هدف از نوشتن ترویج نظرات و دیدگاه های شخصی نویسنده یا ابراز احساسات و عواطف اوست. برخی هم انتشار نظرات خود را فرصتی برای نقد و ارزیابی آن می دانند. البته بدیهی است کسانی که دیدگاه های خود را در قالب هنر بیان می کنند، تاثیر بیشتری بر محیط پیرامون خود می گذارند.