حل استگانوگرافی تیم باقالی (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 انجام میدهد: