{"id":31090,"date":"2019-10-31T21:39:22","date_gmt":"2019-10-31T18:39:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/steganografiya-mimo-fajlov-pryachem-dannye-pryamo-v-sektorah\/"},"modified":"2019-10-31T21:39:22","modified_gmt":"2019-10-31T18:39:22","slug":"steganografiya-mimo-fajlov-pryachem-dannye-pryamo-v-sektorah","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/steganografiya-mimo-fajlov-pryachem-dannye-pryamo-v-sektorah","title":{"rendered":"Steganography beyond files: hiding data directly in sectors","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>A Brief Introduction<\/h3>\n<p>\nSteganography, in case anyone forgets, is the concealment of information within containers. For example, in images (discussed <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/112976\/\">here<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/128327\/\">here<\/a><\/noindex>). Data can also be hidden in the filesystem's metadata tables (this was mentioned <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/347604\/\">here<\/a><\/noindex>), and even <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/60726\/\">in the control packets of the TCP protocol<\/a><\/noindex>. Unfortunately, all these methods have one drawback: to subtly 'inject' information into a container, clever algorithms are needed that take into account the internal structure of the container. Also, there are issues with the container's resistance to manipulation: for instance, if you slightly edit an image, the hidden information is lost.<\/p>\n<p>Is it possible to do without clever algorithms and delicate data manipulations while still ensuring the functioning of the container and an acceptable level of safety for hidden data? To give a sneak peek\u2014yes, it is! And I will even suggest a utility.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>The Bloody Details of the Method<\/h3>\n<p>\nThe main idea is as straightforward as a blunt force to the forehead: there are areas on the disk where the operating system never writes (or writes only in rare cases). Instead of searching for these areas with clever algorithms, we'll take advantage of redundancy\u2014by duplicating our hidden information many, many times across all sectors of the disk. Then, right on top of all this splendor, you can create the necessary partitions, format the filesystems, write files, and install operating systems\u2014the part of the secret data will still be preserved, and it can be extracted; the multiple duplication will help us piece together the original whole.<\/p>\n<p>The advantage of this method is clear: we are not dependent on the file format or even the type of filesystem used.<\/p>\n<p>The drawbacks are also, I think, obvious:<\/p>\n<ul>\n<li>Secret data can only be changed by completely overwriting the entire disk, followed by reconstructing the visible content for the user. You cannot use software that recreates the disk from an image: it will restore the previous secret data as well.<\/li>\n<li>The larger the volume of secret data, the higher the probability of losing part of the information.<\/li>\n<li>Extracting data from the disk can take a long time. From several minutes to several days (modern disks are larger).<\/li>\n<\/ul>\n<p>\nNow let\u2019s get into the specifics.<\/p>\n<p>It's clear that if we simply scatter the secret data across the disk, it will only be hidden from the naked eye. If we enhance the view, say with a disk editor, the data will be fully exposed. Therefore, it\u2019s advisable to encrypt the data to keep it obscured. We will encrypt it simply but stylishly using the aes256-cbc algorithm. We'll ask the user for the encryption key, so they can come up with a strong password.<\/p>\n<p>The next question is how to differentiate \"good\" data from corrupted data. Here, a checksum will help us, specifically a SHA1 checksum. Why not? It\u2019s good enough for Git, so it will work for us as well. It's settled: we will provide each stored segment of information with a checksum, and if it matches after decryption, then the decryption was successful.<\/p>\n<p>We will also need the fragment number and the total length of the secret data. The fragment number is to track which pieces we have decrypted and which are still left. The total length will come in handy when processing the last fragment, so we don\u2019t write excess data (aka padding). Since we already have a header forming, we'll also add the name of the secret file there. It will be useful after decryption to know what to open it with.<\/p>\n<h3>Let's test the method in practice<\/h3>\n<p>\nFor testing, we'll use the most common storage medium \u2014 a USB flash drive. I have an old 1 GB one, which is quite suitable for experiments. If, like me, you thought about skipping physical media and trying it on a file \u2014 a disk image, let me tell you: it won't work. When formatting such a \"disk,\" Linux creates a new file, and all unused sectors will be filled with zeros.<\/p>\n<p>Unfortunately, I had to use a Raspberry Pi 3 weather station lying around on the balcony as the Linux machine. There isn't much memory, so I won't hide large files. We'll limit ourselves to a maximum size of 10 megabytes. Hiding files that are too small doesn't make sense either: the utility writes data to the disk in clusters of 4 KB. Therefore, we'll set a lower limit of 3 KB as that's the size of one such cluster.<\/p>\n<p>We will systematically test the flash drive, checking after each step whether the hidden information can be read:<\/p>\n<ol>\n<li>Quick formatting in FAT16 format with a cluster size of 16 KB. This is what Windows 7 offers to do with a flash drive that lacks a file system.<\/li>\n<li>Filling the flash drive with all sorts of junk by 50%.<\/li>\n<li>Filling the flash drive with all sorts of junk by 100%.<\/li>\n<li>A \"long\" formatting in FAT16 format (overwriting everything).<\/li>\n<\/ol>\n<p>\nThe first two tests, quite predictably, ended in complete success: the utility was able to successfully extract 10 megabytes of secret data from the flash drive. However, after the flash drive was filled to the brim with files, a failure occurred:<\/p>\n<p><code>Total clusters read: 250752, decrypted: 158<br \/>\nERROR: cannot write incomplete secretFile<\/code><\/p>\n<p>As we can see, only 158 clusters (632 kilobytes of raw data, amounting to 636424 bytes of useful payload) were successfully decrypted. It\u2019s clear that 10 megabytes couldn\u2019t be gathered here, and there are definitely duplicates among these clusters. Even 1 megabyte can no longer be recovered this way. But we can guarantee that we will recover 3 kilobytes of secret data from the flash drive even after it has been formatted and filled to the brim. However, experiments show that it is quite possible to extract a file of 120 kilobytes from such a flash drive.<\/p>\n<p>The final test, unfortunately, showed that the flash drive had been completely overwritten:<\/p>\n<p><code>$ sudo .\/steganodisk -p password \/dev\/sda<br \/>\nDevice size: 250752 clusters<br \/>\n250700 99%<br \/>\nTotal clusters read: 250752, decrypted: 0<br \/>\nERROR: cannot write incomplete secretFile<br \/>\n<\/code><\/p>\n<p>Not a single cluster was preserved\u2026 Sad, but not tragic! Let's try to create a partition on the flash drive before formatting it, and then set up the file system within that partition. By the way, it originally came formatted like that from the factory, so we\u2019re not doing anything suspicious.<br \/>\nIt is quite expected that the available space on the flash drive decreased a bit.<\/p>\n<p>Also quite expected that 10 megabytes could not be hidden on a completely filled disk. But now, the number of successfully decrypted clusters has increased more than twice!<\/p>\n<p><code>Total clusters read: 250752, decrypted: 405<\/code><\/p>\n<p>Unfortunately, it\u2019s not possible to assemble a megabyte from pieces, but two hundred kilobytes can be done easily.<\/p>\n<p>Well, and the news from the last, 4th check, this time is joyful: full formatting of such a flash drive did not lead to the destruction of all the information! 120 kilobytes of secret data fit perfectly into the unused space.<\/p>\n<p>Summary table for testing:<\/p>\n<p><img decoding=\"async\" alt=\"Steganography beyond files: hiding data directly in sectors\" src=\"\/wp-content\/uploads\/2019\/04\/dd386ca1f39808d6c7af85a310334629.bmp\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>A bit of theorizing: on free space and unused sectors<\/h3>\n<p>\nIf you've ever partitioned a hard drive, you may have noticed that it doesn't always allocate all free space on the disk. The first partition always starts with some offset (usually 1 megabyte, or 2048 sectors). There can also be a small 'tail' of unused sectors left after the last partition. Additionally, there are sometimes gaps between partitions, though that is rare.<\/p>\n<p>In other words, there are sectors on the disk that are inaccessible during normal disk operation, but you can still write data to those sectors! Which means you can read from them too. This comes with the caveat that there is also a partition table and a boot code that are located in the empty area at the beginning of the disk.<\/p>\n<p>Let's take a moment to step away from partitions and view the disk from a higher perspective, so to speak. We have an empty partition on the disk. Let's create a file system in it. Can we say that some sectors on the disk remain untouched?<\/p>\n<p>And \u2014 drumroll, please! \u2014 the answer will almost always be yes! Because in most cases, creating a file system involves writing only a few blocks of metadata to the disk, while the rest of the contents of the partition remain unchanged.<\/p>\n<p>Additionally \u2014 empirically speaking \u2014 it can be assumed that the file system cannot always occupy all the allocated space down to the last sector. For example, a FAT16 file system with a cluster size of 64 kilobytes obviously cannot fully fill a partition size that is not a multiple of 64 kilobytes. At the end of such a partition, there will be a 'tail' of several sectors that are unavailable for storing user data. However, this assumption could not be experimentally confirmed.<\/p>\n<p>So, to maximize the available space for a steganogram, it's necessary to use a file system with a larger cluster size. You can also create a partition, even if it's not necessary (for instance, on a flash drive). There\u2019s no need to create empty partitions or leave unallocated areas \u2014 this will attract the attention of curious individuals.<\/p>\n<h3>Utility for experiments<\/h3>\n<p>\nThe source code of the utility can be explored <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dishather\/steganodisk\">here<\/a><\/noindex><\/p>\n<p>You will need Qt version 5.0 or higher and OpenSSL for the build. If something doesn't compile, you may need to adjust the steganodisk.pro file.<\/p>\n<p>You can change the cluster size from 4 KB to, say, 512 bytes (in secretfile.h). However, this will increase overhead costs: the header and checksum occupy a fixed 68 bytes.<\/p>\n<p>You must run the utility, of course, with root user privileges and with caution. There will be no questions before overwriting the specified file or device!<\/p>\n<p>Enjoy.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/447028\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435 \u0421\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u044f, \u0435\u0441\u043b\u0438 \u043a\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u043d\u0438\u0442, \u2014 \u044d\u0442\u043e \u0441\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u0445 (\u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u043e\u0441\u044c \u0442\u0443\u0442 \u0438 \u0442\u0443\u0442). \u041c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0441\u043a\u0440\u044b\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (\u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c \u0442\u0443\u0442), \u0438 \u0434\u0430\u0436\u0435 \u0432 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u0430\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 TCP. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0443 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a: \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u043e \u00ab\u0432\u043a\u0440\u0430\u043f\u0438\u0442\u044c\u00bb \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23060,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31090","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=\"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435 \u0421\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u044f, \u0435\u0441\u043b\u0438 \u043a\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u043d\u0438\u0442, \u2014 \u044d\u0442\u043e \u0441\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445.\" \/>\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\/en\/blog\/administrirovanie\/steganografiya-mimo-fajlov-pryachem-dannye-pryamo-v-sektorah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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 \u043c\u0438\u043c\u043e \u0444\u0430\u0439\u043b\u043e\u0432: \u043f\u0440\u044f\u0447\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u044f\u043c\u043e \u0432 \u0441\u0435\u043a\u0442\u043e\u0440\u0430\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435 \u0421\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u044f, \u0435\u0441\u043b\u0438 \u043a\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u043d\u0438\u0442, \u2014 \u044d\u0442\u043e \u0441\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/steganografiya-mimo-fajlov-pryachem-dannye-pryamo-v-sektorah\" \/>\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:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:39:22+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\udd47Steganography beyond files: hiding data directly in sectors | ProHoster","description":"A brief introduction: Steganography, for those who may not remember, is the concealment of information within certain containers.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/steganografiya-mimo-fajlov-pryachem-dannye-pryamo-v-sektorah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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 \u043c\u0438\u043c\u043e \u0444\u0430\u0439\u043b\u043e\u0432: \u043f\u0440\u044f\u0447\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u044f\u043c\u043e \u0432 \u0441\u0435\u043a\u0442\u043e\u0440\u0430\u0445 | ProHoster","og:description":"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435 \u0421\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u044f, \u0435\u0441\u043b\u0438 \u043a\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u043d\u0438\u0442, \u2014 \u044d\u0442\u043e \u0441\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/steganografiya-mimo-fajlov-pryachem-dannye-pryamo-v-sektorah","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:22+00:00","article:modified_time":"2019-10-31T18:39:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31090","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:28:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:22:35","updated":"2026-01-21 04:28:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/31090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=31090"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/31090\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/23060"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=31090"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=31090"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=31090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}