{"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\/ro\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","title":{"rendered":"Steganografia \u00een sistemul de fi\u0219iere","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bun\u0103, Habr. <\/p>\n<p><\/p>\n<p>Vreau s\u0103 v\u0103 prezint un mic proiect de <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\">steganografie<\/a><\/noindex>, realizat \u00een timpul liber de la studii. <\/p>\n<p><\/p>\n<p>Am realizat un proiect pentru stocarea ascuns\u0103 a informa\u021biei \u00een sistemul de fi\u0219iere (\u00een continuare <strong>FS<\/strong>).<br \/>\n). Acesta poate fi folosit pentru furtul de informa\u021bii confiden\u021biale \u00een scopuri educa\u021bionale.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Steganografia \u00een sistemul de fi\u0219iere\" src=\"\/wp-content\/uploads\/2019\/04\/d6639b37e1b1fe57b80288e671176fe3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ca mostr\u0103 experimental\u0103 a fost aleas\u0103 o sistem de fi\u0219iere Linux destul de vechi <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\">Implementarea<\/h3>\n<p><\/p>\n<h4 id=\"soobrazheniya-o-realizacii\">Considera\u021bii de implementare<\/h4>\n<p><\/p>\n<p>Dac\u0103 se 'dezasambleaz\u0103' bine standardul ext2, atunci se poate substitui c\u0103 \u00een FS exist\u0103 a\u0219a-numitul <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#SUPERBLOCK\"><strong>Superbloche<\/strong><\/a><\/noindex>, care ofer\u0103 informa\u021bii de baz\u0103 despre sistem. Ulterior, am g\u0103sit <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#BLOCK-BITMAP\"><strong>Bitmap-ul blocurilor<\/strong><\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#INODE-TABLE\"><strong>Tabelul Inode.<\/strong><\/a><\/noindex>A\u0219a c\u0103 mi-a venit imediat ideea de a \u00eenregistra informa\u021bia \u00een blocurile care sunt acum goale \u00een FS. Acum trebuia s\u0103 ne g\u00e2ndim la protec\u021bia \u00eempotriva programatorului \u00eenarmat cu <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\">un editor hexazecimal.<\/a><\/noindex>. <\/p>\n<p><\/p>\n<p>Dac\u0103 stoc\u0103m informa\u021bia ascuns\u0103 f\u0103r\u0103 criptare, chiar \u0219i av\u00e2nd \u00een vedere c\u0103 este difuzat\u0103 \u00een FS, ea va ie\u0219i \u00een eviden\u021b\u0103, mai ales dac\u0103 programatorul \u0219tie ce trebuie s\u0103 caute. Din acest motiv, s-a decis s\u0103 cript\u0103m toate blocurile fi\u0219ierului surs\u0103. Am ales un cifru pe blocuri <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Advanced_Encryption_Standard\">AES<\/a><\/noindex>, dar, dup\u0103 cum \u00een\u021belege\u021bi, acest lucru nu este esen\u021bial.<\/p>\n<p><\/p>\n<p>Pentru a separa blocurile necesare de celelalte la citire, s-a decis s\u0103 ad\u0103ug\u0103m un marker special la \u00eenceputul fiec\u0103rui bloc. Acest marker era criptat \u00een func\u021bie de num\u0103rul blocului din fi\u0219ierul surs\u0103. Aceast\u0103 \u0219mecherie a permis nu doar g\u0103sirea blocurilor necesare, ci \u0219i recunoa\u0219terea ordinii corecte.<\/p>\n<p><\/p>\n<p>Principiul general de func\u021bionare al sistemului.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Steganografia \u00een sistemul de fi\u0219iere\" src=\"\/wp-content\/uploads\/2019\/04\/cb6e712aeffafe87b1ad10e4ed5b0a39.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"algoritm-zapisi\">Algoritmul de scriere<\/h4>\n<p><\/p>\n<p>Pas cu pas:<\/p>\n<p><\/p>\n<ul>\n<li>Mai \u00eent\u00e2i, scrie\u021bi informa\u021bii \u00een sistemul de fi\u0219iere surs\u0103;<\/li>\n<li>\u0218terge\u021bi aceste informa\u021bii (nu neap\u0103rat toate); <\/li>\n<li>\u00cemp\u0103r\u021bi\u021bi fi\u0219ierul care trebuie ascuns \u00een blocuri de aceea\u0219i lungime, ad\u0103ug\u00e2nd un marker;<\/li>\n<li>Cripta\u021bi aceste blocuri;<\/li>\n<li>Introduce\u021bi blocurile criptate \u00een blocurile goale din FS.<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Pentru iubitorii de diagrame de flux<\/b><\/p>\n<p>Mai jos este prezentat\u0103 o diagram\u0103 de flux a algoritmului de scriere. Algoritmul prime\u0219te la intrare patru fi\u0219iere:<br \/>\n-Imaginea sistemului de fi\u0219iere modificat;<br \/>\n-Fi\u0219ierul destinat steganografiei;<br \/>\n-Fi\u0219ierul cu cheia de criptare pentru AES;<br \/>\n-Fi\u0219ierul cu markerul.<br \/>\n<img decoding=\"async\" alt=\"Steganografia \u00een sistemul de fi\u0219iere\" src=\"\/wp-content\/uploads\/2019\/04\/3089bf0d55cbdca1a98e4ee992089665.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Merit\u0103 men\u021bionat c\u0103 acest algoritm are un dezavantaj: dup\u0103 ce un fi\u0219ier a fost scris \u00een FS, <strong>nu se poate<\/strong> nu se pot scrie alte informa\u021bii \u00een FS, deoarece orice informa\u021bie nou\u0103 ar putea ajunge \u00een acele blocuri pe care le-am rezervat pentru fi\u0219ierul nostru steganografiat, dar asta deschide \u0219i posibilitatea de a \u201esterge rapid urmele\u201d. <\/p>\n<p><\/p>\n<p>Dar este destul de evident cum poate fi corectat: este necesar\u0103 rescrierea algoritmului de scriere a blocurilor \u00een FS. Este o sarcin\u0103 clar\u0103, dar incredibil de laborioas\u0103.<br \/>\nPentru Proof Of Concept nu am implementat asta.<\/p>\n<p><\/p>\n<p>Ca rezultat, vor ap\u0103rea urm\u0103toarele modific\u0103ri \u00een FS, a\u0219a arat\u0103 FS-ul \u00eenainte de steganografie (un fi\u0219ier audio a fost scris anterior).<br \/>\n<img decoding=\"async\" alt=\"Steganografia \u00een sistemul de fi\u0219iere\" src=\"\/wp-content\/uploads\/2019\/04\/a779de50121de2bafacab9d891b5f5df.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u0218i iat\u0103 cum arat\u0103 FS-ul cu informa\u021biile deja steganografiate.<br \/>\n<img decoding=\"async\" alt=\"Steganografia \u00een sistemul de fi\u0219iere\" src=\"\/wp-content\/uploads\/2019\/04\/5722200a90d720f96c0aad5b4a5a11ae.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"algoritm-chteniya\">Algoritmul de citire<\/h4>\n<p><\/p>\n<p>Pas cu pas:<\/p>\n<p><\/p>\n<ul>\n<li>Cu cuno\u0219tin\u021ba cheii \u0219i a modului de construirea markerelor, se pot genera primele N markere, cu garan\u021bia c\u0103 N, \u00eenmul\u021bit cu lungimea blocului sistemului de fi\u0219iere, este mai mare dec\u00e2t lungimea fi\u0219ierului steganografiat;<\/li>\n<li>Realiza\u021bi c\u0103utarea blocurilor \u00een FS, \u00eencep\u00e2nd cu markerii; <\/li>\n<li>Dezv\u0103lui\u021bi blocurile ob\u021binute \u0219i separa\u021bi markerii;<\/li>\n<li>Aduna\u021bi blocurile ob\u021binute \u00een ordinea corect\u0103 \u0219i ob\u021bine\u021bi fi\u0219ierul original.<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Pentru iubitorii de diagrame de flux<\/b><\/p>\n<p>Mai jos este prezentat un flux de lucru al algoritmului de scriere. Algoritmul prime\u0219te ca intrare trei fi\u0219iere:<br \/>\n-Imaginea sistemului de fi\u0219iere;<br \/>\n-Fi\u0219ierul cu cheia de criptare pentru AES;<br \/>\n-Fi\u0219ierul cu markerul.<br \/>\n<img decoding=\"async\" alt=\"Steganografia \u00een sistemul de fi\u0219iere\" src=\"\/wp-content\/uploads\/2019\/04\/9dcfe680121a30c1b17b5a4cdbd76dc3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dup\u0103 rularea programului apare fi\u0219ierul Read, care va fi fi\u0219ierul extras din FS-ul steganografiat; dac\u0103 cheia sau markerul au fost specificate incorect, atunci fi\u0219ierul Read va fi gol.<br \/>\n(pentru cei care apreciaz\u0103 estetica, se poate insera nu doar fi\u0219ierul, ci \u0219i 'antetul' care con\u021bine metainforma\u021bii: numele fi\u0219ierului, permisiuni, data ultimei modific\u0103ri etc.)<\/p>\n<p><\/p>\n<h4 id=\"avtomatizaciya-zapuska\">Automatizarea lans\u0103rii<\/h4>\n<p><\/p>\n<p>Pentru comoditate, au fost scrise scripturi bash care automatizeaz\u0103 lansarea pe Linux (testat pe Ubuntu 16.04.3 LTS).<br \/>\nS\u0103 analiz\u0103m lansarea pas cu pas.<br \/>\nScriere:<\/p>\n<p><\/p>\n<ol>\n<li>sudo Copy_Flash.sh \u201cDEVICE\u201d \u2014 ob\u021binem imaginea FS din DEVICE (flash);<\/li>\n<li>.\\\/Write.sh \u201cFILE\u201d \u201cKEY\u201d \u201cMARKER\u201d \u2013 cre\u0103m un mediu virtual, desc\u0103rc\u0103m bibliotecile necesare \u0219i lans\u0103m scriptul de scriere;<\/li>\n<li>sudo .\\\/Write_Flash.sh \u201cDEVICE\u201d \u2013 scriem FS-ul modificat \u00eenapoi pe DEVICE.<\/li>\n<\/ol>\n<p><\/p>\n<p>Citire:<\/p>\n<p><\/p>\n<ol>\n<li>sudo Copy_Flash.sh \u201cDEVICE\u201d \u2014 ob\u021binem imaginea FS din DEVICE (flash);<\/li>\n<li>.\\\/Read.sh \u201cKEY\u201d \u2018MARKER\u201d \u2014 cre\u0103m un mediu virtual, desc\u0103rc\u0103m bibliotecile necesare \u0219i lans\u0103m scriptul de citire;<\/li>\n<li>\u00cen directorul curent deschidem fi\u0219ierul Read \u2013 acesta este informa\u021bia steganografiat\u0103.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"zaklyuchenie\">Concluzie<\/h3>\n<p><\/p>\n<p>Aceast\u0103 metod\u0103 de steganografie necesit\u0103, probabil, \u00eembun\u0103t\u0103\u021biri, teste suplimentare \u0219i extinderea la sisteme de fi\u0219iere mai populare, cum ar fi <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> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Ext4\">ext4<\/a><\/noindex>.<br \/>\nDar scopul acestei lucr\u0103ri a fost de a ar\u0103ta principiul prin care se poate realiza stocarea ascuns\u0103 a informa\u021biilor \u00een sistemul de fi\u0219iere.<br \/>\nFolosind astfel de algoritmi, informa\u021bia poate fi stocat\u0103 f\u0103r\u0103 fric\u0103. Dac\u0103 se cunoa\u0219te cheia, un astfel de sistem poate fi spart nu printr-o \u00eencercare exhaustiv\u0103 (ci printr-un algoritm destul de lung), dar f\u0103r\u0103 cunoa\u0219terea cheii, acest sistem mi se pare absolut rezistent, totu\u0219i aceasta ar putea servi drept motiv pentru un articol separat.<\/p>\n<p><\/p>\n<p>\u00centregul cod este realizat \u00een limbajul Python versiunea 3.5.2. <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/FEAE3_xDKkA\">Exemplul de lucru<\/a><\/noindex> este prezentat pe canalul meu de youtube. Codul complet al proiectului este publicat pe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/MalahovMV\/Ext2Stego\">github<\/a><\/noindex>.<br \/>\n(Da, \u0219tiu c\u0103 pentru versiunea de produc\u021bie trebuie s\u0103 scrii \u00een ceva 'rapid', de exemplu \u00een C \ud83d\ude09 )<br \/>\n\u00cen aceast\u0103 implementare, dimensiunea fi\u0219ierului de intrare pentru steganografie nu trebuie s\u0103 dep\u0103\u0219easc\u0103 1000 kB.<\/p>\n<p><\/p>\n<p>Vreau s\u0103 \u00eemi exprim recuno\u0219tin\u021ba utilizatorului <noindex><a rel=\"nofollow\" href=\"https:\/\/habrahabr.ru\/users\/pavelmstu\/\" class=\"user_link\">PavelMSTU<\/a><\/noindex> pentru sfaturile valoroase \u00een planificarea cercet\u0103rii \u0219i recomand\u0103rile privind redactarea articolului.<\/p>\n<p>Sursa: <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.2.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\/ro\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Steganografie \u00een sistemul de fi\u0219iere | ProHoster","description":"Bun\u0103, Habr.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/31080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=31080"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/31080\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/23051"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=31080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=31080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=31080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}