فهرست مطالب:
- تدارکات
- مرحله 1: استگانوگرافی چیست
- مرحله 2: چگونه متن بر روی رایانه ها رمزگذاری می شود
- مرحله 3: نحوه عملکرد برنامه
- مرحله 4: نتیجه گیری
تصویری: این PNG محفظه مخفی است: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-31 10:19
خواننده عزیز ، چالش شما این است که بفهمید چه پیامی در خروجی-p.webp
این دو تصویر در اینجا یکسان به نظر می رسند اما اینها نیستند اینها عکسهای greenman-p.webp
این آموزش با الهام از یک ویدیوی یوتیوب عالی ساخته شده است. پس از تماشای این ویدئو در اواخر شب یک روز و تلاش برای فکر کردن در مورد یک سخنرانی و امتحان میان ترم برای کلاس برنامه نویسی پیشرفته جاوا ، این پروژه متولد شد. تصاویر بالا ، همراه با کد توصیف شده در این دستورالعمل ، در Github رایگان است.
تدارکات
شما به یک کامپیوتر نیاز دارید و باید بدانید که چگونه یک برنامه جاوا را کامپایل و اجرا کنید. این برنامه فقط دو فایل کوتاه است و باید آن را روی خط فرمان اجرا کنید.
مرحله 1: استگانوگرافی چیست
شما باید ویدیوی یوتیوب را که در مرحله قبل پیوند دادم تماشا کنید ، اما خلاصه آن در اینجا آمده است:
اگر می خواهید یک پیام مخفی را برای یک دوست پنهان کنید ، یک راه جالب برای انجام این کار Steganography است. ایده تصویری تصویر ساده است. تصاویر رایانه ای از پیکسل ساخته شده اند و هر پیکسل ترکیبی از قرمز ، سبز و آبی است. در بسیاری از فرمت های تصویر کامپیوتر ، مقدار قرمز ، سبز و آبی در هر پیکسل به عنوان مقادیر 0-127 بیان می شود. به عنوان مثال ، یک پیکسل بسیار قرمز دارای مقدار قرمز 127 و مقادیر سبز و آبی صفر است. ترفند این است: شدت قرمز 126 از شدت قرمز 127 (تا چشم انسان) قابل تشخیص نیست. و بنابراین با تعارض با مثبت یا منفی یک در هر پیکسل قرمز می توانیم بیت ها را در پیکسل پنهان کنیم. اگر راهی دزدکی برای جمع آوری مجدد بیت ها پیدا کنیم ، می توانیم داده هایی را که در تصویر مخفی کرده ایم بازیابی کنیم!
خلاق بودن! استگانوگرافی را می توان با هر رسانه دیجیتالی انجام داد! برای مثال ، می توانید با بیت هایی در فایل های موسیقی یا ویدئویی بازی کنید ، اما این امر مستلزم این است که تحقیقات بیشتری را خارج از محدوده این دستورالعمل انجام دهید.
مرحله 2: چگونه متن بر روی رایانه ها رمزگذاری می شود
آنچه در اینجا ذکر می شود ممکن است نیاز به مدرک CS یا اشتیاق فراوان برای درک داشته باشد. کامپیوترها داده ها را در بیت های 1s و 0s ذخیره می کنند. این 1 ها و 0 ها معمولاً در دسته های 8 تایی دسته بندی شده و به آنها "بایت" گفته می شود. همانطور که در اینجا و اینجا توضیح داده شده راه های کمی وجود دارد که ما می توانیم به رایانه بگوییم بایت ها را به عنوان متن تفسیر کند. برای بهره مندی بیشتر از این سخنرانی/قابل آموزش ، باید کم و بیش ASCII و UTF8 را بشناسید. این دو روش رایج برای رمزگذاری داده های زبان در یک سری بایت است.
وقتی ایده ای در مورد این موضوع پیدا کردید ، این را می فهمید: در ASCII و UTF8 کلمه "the" با بایت های زیر (به صورت شش ضلعی) 0x74 0x68 0x65 نشان داده می شود. در باینری ، این بایت ها عبارتند از: 01110100b 01101000b 01101101b
علاوه بر این ، متوجه خواهید شد که در UTF8 یک شکلک صورت پوزخند با بایت های زیر (به صورت شش ضلعی) 0xF0 0x9F 0x98 0x80 نشان داده می شود. در باینری این بایت ها 11110000b 10011111b 10011000b 10000000b هستند.
در هر صورت در تصویر ضمیمه شده مشاهده خواهید کرد که کامپیوتر من با این بایت ها کاری انجام می دهد. من آنها را در خروجی برنامه با فلش و "LOOK!" بزرگ برجسته کرده ام.
مرحله 3: نحوه عملکرد برنامه
کامپایل برنامه از github آسان است. هر چند وقت یکبار repo نشان داده شده در صفحه اول را دریافت کنید
این برنامه از خط فرمان به این صورت اجرا می شود: java Main input-p.webp
در نمونه های پیوست می بینید که من java Main greenman-p.webp
شما هم همین کار را خواهید کرد.
اگر به Main.java نگاه کنید خواهید دید که این همان چیزی است که اتفاق می افتد:
- برنامه تصویر را در یک آرایه دو بعدی می خواند
- برنامه پیامی را که وارد کرده اید به آرایه بایت تبدیل می کند (بایت )
- سپس برنامه از کلاس MessageHider برای پنهان کردن بایت های پیام در آرایه تصویر استفاده می کند.
- سپس برنامه آرایه 2d تصویر را در یک فایل (output.png) با داده های مخفی در داخل می نویسد. اگر به این تصویر نگاه کنید ، از تصویر اصلی قابل تشخیص نیست
- سپس برنامه output-p.webp" />
بنابراین تقریباً کد همانطور که انتظار داریم کار می کند.
مرحله 4: نتیجه گیری
بنابراین من تعدادی کد کار ، اثبات این که به شکل تصویر عمل می کند ، و برخی یادداشت های سخنرانی را که به دانشجویان دانشگاه می دهم به شما ارائه کردم. من هم به شما چالش دادم! من چند ساعت را صرف نوشتن کد و تهیه یادداشت های سخنرانی کردم ، بنابراین متاسفم که این فایل آموزشی چندان عکس ندارد. اگر فکر می کنید استگانوگرافی جالب است لطفاً چالش من را بپذیرید!
توصیه شده:
آینه تشخیص چهره با محفظه مخفی: 15 مرحله (همراه با تصاویر)
آینه تشخیص چهره با محفظه مخفی: من همیشه شیفته محفظه های مخفی همیشه خلاقانه ای بودم که در داستان ها ، فیلم ها و موارد مشابه استفاده می شد. بنابراین ، وقتی مسابقه بخش محرمانه را دیدم ، تصمیم گرفتم خودم با این ایده آزمایش کنم و یک آینه معمولی بسازم که یک چشم باز می کند
کتاب اسرار آمیز با قفل مخفی مخفی: 11 مرحله (همراه با تصاویر)
کتاب مرموز با Secret Knock Lock: وقتی صحبت از پنهان کردن چیزهای مخفی ما می شود. ما معمولاً در داخل یک بطری یا در یک جعبه مخفی می شویم. خوب است! اما همیشه برای گیک ها خوب نیست ، زیرا 100٪ ایمن نیست و همچنین هیچ چیز جالبی وجود ندارد فکر می کند در این آموزش من h را نشان می دهم
نایک LED Swoosh! این یک دکور عالی برای یک اتاق است. این همان پروژه ای است که همه می توانند آن را تکرار کنند: 5 قدم
نایک LED Swoosh! این یک دکور عالی برای یک اتاق است. این پروژه ای است که همه می توانند آن را تکرار کنند. 2x چوب 20-20-3000 2x تخته سه لا 500-1000mm-screws (45mm) 150x-screws (35mm) 30x-scr
USB Stick داخلی مخفی با سوئیچ مخفی: 5 مرحله
USB Secret Stick داخلی با سوئیچ مخفی: اخیراً من این مشکل را داشتم که می خواستم Tails OS* را به عنوان یک سیستم عامل دوم همیشه همراه خود داشته باشم. اما من نمی خواستم یک USB را حمل کنم و یک هارد دیسک دائمی توسط توسعه دهندگان در نظر گرفته نشده است. بنابراین به چیزی دیگری رسیدم
مینی کشوی محفظه مخفی: 5 مرحله
مخزن کوچک محفظه مخفی: این دستورالعمل به شما نشان می دهد که چگونه یک کمد کشویی با یک محفظه مخفی ساخته ام. من عمدتا از جزئیات کوچک برای توصیف اقدامات انجام شده استفاده خواهم کرد