{"id":31080,"date":"2019-10-31T21:39:19","date_gmt":"2019-10-31T18:39:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/steganografiya-v-fajlovoj-sisteme\/"},"modified":"2019-10-31T21:39:19","modified_gmt":"2019-10-31T18:39:19","slug":"steganografiya-v-fajlovoj-sisteme","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","title":{"rendered":"Steganografia w systemie plik\u00f3w","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Cze\u015b\u0107, Habr. <\/p>\n<p><\/p>\n<p>Chc\u0119 przedstawi\u0107 wam ma\u0142y projekt dotycz\u0105cy <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D1%82%D0%B5%D0%B3%D0%B0%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F\">steganografii<\/a><\/noindex>, zrealizowany w wolnym czasie od nauki. <\/p>\n<p><\/p>\n<p>Stworzy\u0142em projekt dotycz\u0105cy ukrytego przechowywania informacji w systemie plik\u00f3w (dalej <strong>SP<\/strong>).<br \/>\n, co mo\u017cna wykorzysta\u0107 do kradzie\u017cy poufnych informacji w celach edukacyjnych.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Steganografia w systemie plik\u00f3w\" src=\"\/wp-content\/uploads\/2019\/04\/d6639b37e1b1fe57b80288e671176fe3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Na przyk\u0142ad, wybrano do eksperymentalnego wzoru do\u015b\u0107 stary system plik\u00f3w Linuksa <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Ext2\">ext2<\/a><\/noindex>. <\/p>\n<p>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"realizaciya\">Realizacja<\/h3>\n<p><\/p>\n<h4 id=\"soobrazheniya-o-realizacii\">Rozwa\u017cania na temat realizacji<\/h4>\n<p><\/p>\n<p>Je\u015bli dobrze \u201ezestresowa\u0107\u201d standard ext2, mo\u017cna zauwa\u017cy\u0107, \u017ce w SP istnieje tzw. <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#SUPERBLOCK\"><strong>Superblok<\/strong><\/a><\/noindex>, w kt\u00f3rym zawarte s\u0105 podstawowe informacje o systemie. Po moich odkryciach znalaz\u0142em <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#BLOCK-BITMAP\"><strong>Bitmapa blok\u00f3w<\/strong><\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#INODE-TABLE\"><strong>Tabela i-w\u0119z\u0142\u00f3w<\/strong><\/a><\/noindex>. Prawie od razu pojawi\u0142 si\u0119 pomys\u0142 zapisywania informacji w pustych obecnie blokach SP. Teraz nale\u017ca\u0142o przemy\u015ble\u0107 zabezpieczenie przed programist\u0105, wyposa\u017conym w <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Hex-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80\">edytor szesnastkowy<\/a><\/noindex>. <\/p>\n<p><\/p>\n<p>Je\u015bli przechowujesz ukryt\u0105 informacj\u0119 bez szyfrowania, to, nawet w obliczu jej zamazania w SP, nadal b\u0119dzie zbyt rzuca\u0107 si\u0119 w oczy, szczeg\u00f3lnie je\u015bli programista b\u0119dzie wiedzia\u0142, czego szuka\u0107. Dlatego podj\u0119to decyzj\u0119 o szyfrowaniu wszystkich blok\u00f3w pliku \u017ar\u00f3d\u0142owego. Wybra\u0142em szyfr bloku <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Advanced_Encryption_Standard\">AES<\/a><\/noindex>, ale jak rozumiesz, to nie jest kluczowe.<\/p>\n<p><\/p>\n<p>Aby oddzieli\u0107 potrzebne bloki od wszystkich innych podczas odczytu, postanowiono doda\u0107 specjalny znacznik na pocz\u0105tku ka\u017cdego bloku. Ten znacznik by\u0142 szyfrowany w zale\u017cno\u015bci od numeru bloku w pliku \u017ar\u00f3d\u0142owym. Ta sztuczka pozwoli\u0142a nie tylko znajdowa\u0107 potrzebne bloki, ale tak\u017ce poznawa\u0107 ich prawid\u0142ow\u0105 kolejno\u015b\u0107.<\/p>\n<p><\/p>\n<p>Og\u00f3lna zasada dzia\u0142ania systemu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Steganografia w systemie plik\u00f3w\" src=\"\/wp-content\/uploads\/2019\/04\/cb6e712aeffafe87b1ad10e4ed5b0a39.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"algoritm-zapisi\">Algorytm zapisu<\/h4>\n<p><\/p>\n<p>Krok po kroku:<\/p>\n<p><\/p>\n<ul>\n<li>Najpierw zapisa\u0107 jak\u0105kolwiek informacj\u0119 w \u017ar\u00f3d\u0142owym systemie plik\u00f3w;<\/li>\n<li>Usun\u0105\u0107 t\u0119 informacj\u0119 (niekoniecznie ca\u0142\u0105); <\/li>\n<li>Plik do ukrycia podzieli\u0107 na bloki o r\u00f3wnej d\u0142ugo\u015bci, dodaj\u0105c znacznik;<\/li>\n<li>Szyfrowa\u0107 te bloki;<\/li>\n<li>Umie\u015bci\u0107 zaszyfrowane bloki w pustych blokach SP.<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Dla mi\u0142o\u015bnik\u00f3w diagram\u00f3w blokowych<\/b><\/p>\n<p>Poni\u017cej przedstawiony jest diagram blokowy algorytmu zapisu. Na wej\u015bciu algorytm otrzymuje cztery pliki:<br \/>\n-Obraz zmieniaj\u0105cego si\u0119 systemu plik\u00f3w;<br \/>\n-Plik podlegaj\u0105cy steganografii;<br \/>\n-Plik z kluczem szyfrowania dla AES;<br \/>\n-Plik z markerem.<br \/>\n<img decoding=\"async\" alt=\"Steganografia w systemie plik\u00f3w\" src=\"\/wp-content\/uploads\/2019\/04\/3089bf0d55cbdca1a98e4ee992089665.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Od razu warto zauwa\u017cy\u0107, \u017ce ten algorytm ma jedn\u0105 wad\u0119: po zapisie pliku w SP, <strong>nie mo\u017cna<\/strong> Zapisanie czegokolwiek nowego w systemie plik\u00f3w, poniewa\u017c ka\u017cda nowa informacja mo\u017ce trafi\u0107 do blok\u00f3w, kt\u00f3re przeznaczyli\u015bmy dla naszego pliku steganograficznego, a jednak otwiera to mo\u017cliwo\u015b\u0107 \u00abszybkiego zatarcia \u015blad\u00f3w\u00bb. <\/p>\n<p><\/p>\n<p>Jednak \u043d\u0430\u043fewno jest jasne, jak mo\u017cna to poprawi\u0107: nale\u017cy przepisac algorytm zapisu blok\u00f3w w systemie plik\u00f3w. To zrozumia\u0142a, ale niezwykle pracoch\u0142onna zadanie.<br \/>\nDla Proof Of Concept nie realizowa\u0142em tego.<\/p>\n<p><\/p>\n<p>W rezultacie otrzymujemy nast\u0119puj\u0105ce zmiany w systemie plik\u00f3w, tak wygl\u0105da system plik\u00f3w przed steganografi\u0105 (wcze\u015bniej zapisany zosta\u0142 plik audio).<br \/>\n<img decoding=\"async\" alt=\"Steganografia w systemie plik\u00f3w\" src=\"\/wp-content\/uploads\/2019\/04\/a779de50121de2bafacab9d891b5f5df.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA tak wygl\u0105da system plik\u00f3w z ju\u017c zaszyfrowanymi informacjami.<br \/>\n<img decoding=\"async\" alt=\"Steganografia w systemie plik\u00f3w\" src=\"\/wp-content\/uploads\/2019\/04\/5722200a90d720f96c0aad5b4a5a11ae.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"algoritm-chteniya\">Algorytm odczytu<\/h4>\n<p><\/p>\n<p>Krok po kroku:<\/p>\n<p><\/p>\n<ul>\n<li>Znaj\u0105c klucz i spos\u00f3b budowy znacznik\u00f3w, stworzy\u0107 pierwsze N znacznik\u00f3w, z gwarancj\u0105, \u017ce N pomno\u017cone przez d\u0142ugo\u015b\u0107 bloku systemu plik\u00f3w jest wi\u0119ksze od d\u0142ugo\u015bci zaszyfrowanego pliku;<\/li>\n<li>Wykona\u0107 wyszukiwanie blok\u00f3w w systemie plik\u00f3w zaczynaj\u0105cych si\u0119 od znacznik\u00f3w; <\/li>\n<li>Odszyfrowa\u0107 otrzymane bloki i oddzieli\u0107 znaczniki;<\/li>\n<li>Zebra\u0107 otrzymane bloki w odpowiedniej kolejno\u015bci i uzyska\u0107 pierwotny plik.<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Dla mi\u0142o\u015bnik\u00f3w diagram\u00f3w blokowych<\/b><\/p>\n<p>Poni\u017cej przedstawiono schemat blokowy algorytmu zapisu. Na wej\u015bciu algorytm otrzymuje trzy pliki:<br \/>\n- Obraz systemu plik\u00f3w;<br \/>\n-Plik z kluczem szyfrowania dla AES;<br \/>\n-Plik z markerem.<br \/>\n<img decoding=\"async\" alt=\"Steganografia w systemie plik\u00f3w\" src=\"\/wp-content\/uploads\/2019\/04\/9dcfe680121a30c1b17b5a4cdbd76dc3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Po zako\u0144czeniu pracy programu powstaje plik Read, kt\u00f3ry b\u0119dzie wyci\u0105gni\u0119tym z zaszyfrowanego systemu plik\u00f3w plikiem, je\u015bli klucz lub znacznik by\u0142y podane niepoprawnie, plik Read b\u0119dzie pusty.<br \/>\n(dla mi\u0142o\u015bnik\u00f3w atrakcyjnych rozwi\u0105za\u0144 mo\u017cna wple\u015b\u0107 nie tylko plik, ale tak\u017ce \u201enag\u0142\u00f3wek\u201d, zawieraj\u0105cy metainformacje: nazw\u0119 pliku, uprawnienia, czas ostatniej zmiany itd.)<\/p>\n<p><\/p>\n<h4 id=\"avtomatizaciya-zapuska\">Automatyzacja uruchamiania<\/h4>\n<p><\/p>\n<p>Dla u\u0142atwienia napisano skrypty bash, kt\u00f3re automatyzuj\u0105 uruchamianie na Linuxie (testowane na Ubuntu 16.04.3 LTS).<br \/>\nRozbijmy uruchamianie na kroki.<br \/>\nZapis:<\/p>\n<p><\/p>\n<ol>\n<li>sudo Copy_Flash.sh \u201cDEVICE\u201d \u2014 uzyskujemy obraz systemu plik\u00f3w z DEVICE (pami\u0119\u0107 flash);<\/li>\n<li>.\/Write.sh \u201cFILE\u201d \u201cKEY\u201d \u201cMARKER\u201d \u2013 tworzymy wirtualne \u015brodowisko, pobieramy potrzebne biblioteki i uruchamiamy skrypt zapisu;<\/li>\n<li>sudo .\/Write_Flash.sh \u201cDEVICE\u201d \u2013 zapisujemy zmieniony system plik\u00f3w ponownie na DEVICE.<\/li>\n<\/ol>\n<p><\/p>\n<p>Odczyt:<\/p>\n<p><\/p>\n<ol>\n<li>sudo Copy_Flash.sh \u201cDEVICE\u201d \u2014 uzyskujemy obraz systemu plik\u00f3w z DEVICE (pami\u0119\u0107 flash);<\/li>\n<li>.\/Read.sh \u201cKEY\u201d \u2018MARKER\u201d \u2014 tworzymy wirtualne \u015brodowisko, pobieramy potrzebne biblioteki i uruchamiamy skrypt do odczytu;<\/li>\n<li>W bie\u017c\u0105cym katalogu otwieramy plik Read \u2013 to jest zaszyfrowana informacja.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"zaklyuchenie\">Podsumowanie<\/h3>\n<p><\/p>\n<p>Ta metoda steganografii prawdopodobnie wymaga dopracowania, dodatkowego testowania i rozszerzenia na bardziej popularne systemy plik\u00f3w, takie jak <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/FAT32\">Fat32<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/NTFS\">NTFS<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Ext4\">ext4<\/a><\/noindex>.<br \/>\nCelem tej pracy by\u0142o pokazanie zasady, dzi\u0119ki kt\u00f3rej mo\u017cliwe jest ukryte przechowywanie informacji w systemie plik\u00f3w.<br \/>\nDzi\u0119ki podobnym algorytmom mo\u017cna bez obaw przechowywa\u0107 informacje, a je\u015bli przy znajomo\u015bci klucza tak\u0105 system mo\u017cna z\u0142ama\u0107 nie pe\u0142nym przeszukiwaniem (ale do\u015b\u0107 d\u0142ugim algorytmem), to bez znajomo\u015bci klucza ten system wydaje mi si\u0119 ca\u0142kowicie odporny, chocia\u017c mo\u017ce to by\u0107 pow\u00f3d do osobnego artyku\u0142u.<\/p>\n<p><\/p>\n<p>Ca\u0142y kod zosta\u0142 zrealizowany w j\u0119zyku Python w wersji 3.5.2. <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/FEAE3_xDKkA\">Przyk\u0142ad dzia\u0142ania<\/a><\/noindex> jest dost\u0119pny na moim kanale youtube. Pe\u0142ny kod projektu jest zamieszczony na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/MalahovMV\/Ext2Stego\">github<\/a><\/noindex>.<br \/>\n(Tak, wiem, \u017ce dla wersji produkcyjnej nale\u017cy pisa\u0107 w czym\u015b 'szybkim', na przyk\u0142ad w C \ud83d\ude09 )<br \/>\nW tej implementacji rozmiar pliku wej\u015bciowego dla steganografii nie powinien przekracza\u0107 1000 kB.<\/p>\n<p><\/p>\n<p>Chc\u0119 wyrazi\u0107 wdzi\u0119czno\u015b\u0107 u\u017cytkownikowi <noindex><a rel=\"nofollow\" href=\"https:\/\/habrahabr.ru\/users\/pavelmstu\/\" class=\"user_link\">PavelMSTU<\/a><\/noindex> za cenne rady przy planowaniu bada\u0144 oraz zalecenia dotycz\u0105ce formatu artyku\u0142u.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/347604\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0441\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0439 \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u043e\u0442 \u0443\u0447\u0435\u0431\u044b \u0432\u0440\u0435\u043c\u044f. \u042f \u0441\u0434\u0435\u043b\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0441\u043a\u0440\u044b\u0442\u043e\u043c\u0443 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 (\u0434\u0430\u043b\u0435\u0435 \u0424\u0421). \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u043a\u0440\u0430\u0436\u0438 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445. \u0412 \u0432\u0438\u0434\u0435 \u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0446\u0430 \u0431\u044b\u043b\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0442\u0430\u0440\u0435\u043d\u044c\u043a\u0430\u044f \u043b\u0438\u043d\u0443\u043a\u0441\u043e\u0432\u0430\u044f \u0424\u0421 ext2. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0421\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0415\u0441\u043b\u0438 \u0445\u043e\u0440\u043e\u0448\u043e &#171;\u0440\u0430\u0437\u0434\u0440\u0430\u043a\u043e\u043d\u0438\u0442\u044c&#187; [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23051,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31080","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:39:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:39:19+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Steganografia w systemie plik\u00f3w | ProHoster","description":"Cze\u015b\u0107, Habr.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:39:19+00:00","article:modified_time":"2019-10-31T18:39:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31080","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 04:26:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:22:35","updated":"2026-01-21 04:26:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/31080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=31080"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/31080\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/23051"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=31080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=31080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=31080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}