<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[ReconLabs]]></title><description><![CDATA[My personal Substack]]></description><link>https://shelbyruettiger.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!jQIZ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b63e383-fc37-4194-b4a7-c3e3e054fb04_1024x1024.png</url><title>ReconLabs</title><link>https://shelbyruettiger.substack.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 14 Mar 2026 10:25:18 GMT</lastBuildDate><atom:link href="https://shelbyruettiger.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Shelby Ruettiger]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[shelbyruettiger@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[shelbyruettiger@substack.com]]></itunes:email><itunes:name><![CDATA[Shelby Ruettiger]]></itunes:name></itunes:owner><itunes:author><![CDATA[Shelby Ruettiger]]></itunes:author><googleplay:owner><![CDATA[shelbyruettiger@substack.com]]></googleplay:owner><googleplay:email><![CDATA[shelbyruettiger@substack.com]]></googleplay:email><googleplay:author><![CDATA[Shelby Ruettiger]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Secrets in the Shadows: Reconstructing Sensitive Russian Locations with OSINT]]></title><description><![CDATA[Unveiling Hidden Coordinates Through Reverse Engineering]]></description><link>https://shelbyruettiger.substack.com/p/secrets-in-the-shadows-reconstructing</link><guid isPermaLink="false">https://shelbyruettiger.substack.com/p/secrets-in-the-shadows-reconstructing</guid><dc:creator><![CDATA[Shelby Ruettiger]]></dc:creator><pubDate>Fri, 16 Aug 2024 00:26:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!I7Vd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JH1b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JH1b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png 424w, https://substackcdn.com/image/fetch/$s_!JH1b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png 848w, https://substackcdn.com/image/fetch/$s_!JH1b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png 1272w, https://substackcdn.com/image/fetch/$s_!JH1b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JH1b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png" width="658" height="180" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:180,&quot;width&quot;:658,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22651,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JH1b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png 424w, https://substackcdn.com/image/fetch/$s_!JH1b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png 848w, https://substackcdn.com/image/fetch/$s_!JH1b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png 1272w, https://substackcdn.com/image/fetch/$s_!JH1b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6806aad7-1845-4a99-8d2c-1fddb42a6721_658x180.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://shelbyruettiger.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://shelbyruettiger.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>In October 2023, the Dossier Center <a href="https://dossier.center/dz-russia/">revealed</a> that publicly accessible data had inadvertently exposed sensitive Russian government and military facilities, including previously unknown FSB sites, where power outages could lead to severe consequences. Unfortunately, the Dossier Center did not include the source document, and by the time I started looking for it, the Russian government had taken it down from their <a href="https://www.mos.ru/dgkh/documents/bezopasnost-i-protivodeystviye-terrorizmu/view/272848220/">servers</a>, leaving me with only a map in the article with obfuscated locations. I&#8217;m here to take you on my journey to finding the coordinates. You can find the coordinates on <a href="https://x.com/shelbyruettiger/status/1709591633790906472">X</a> if you don&#8217;t care about the rest of this ;) </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I7Vd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I7Vd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png 424w, https://substackcdn.com/image/fetch/$s_!I7Vd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png 848w, https://substackcdn.com/image/fetch/$s_!I7Vd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png 1272w, https://substackcdn.com/image/fetch/$s_!I7Vd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I7Vd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png" width="1456" height="1317" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1317,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2338926,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I7Vd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png 424w, https://substackcdn.com/image/fetch/$s_!I7Vd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png 848w, https://substackcdn.com/image/fetch/$s_!I7Vd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png 1272w, https://substackcdn.com/image/fetch/$s_!I7Vd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1843a69-bafa-4a97-938a-2bd93315b2e1_1572x1422.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" style="height:20px;width:20px" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Obfuscated Locations D&#8217;:</figcaption></figure></div><h3>First stop: the WayBack machine</h3><p>Archive.org regularly crawls websites and snapshots them at specific moments in time. Of course, this process has limits. Deeper links often need to be manually snapshotted. In this case, there was no record of this webpage (until I <a href="https://web.archive.org/web/20231002161515/https://www.mos.ru/dgkh/documents/bezopasnost-i-protivodeystviye-terrorizmu/view/272848220/">made one that day</a>). I searched parent links but found nothing of interest.&nbsp;</p><h3>Second stop: Clear/Dark web searching</h3><p>In the article, they tell us the exact description of the file: &#8220;&#1055;&#1077;&#1088;&#1077;&#1095;&#1077;&#1085;&#1100; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1077;&#1081; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1080;&#1095;&#1077;&#1089;&#1082;&#1086;&#1081; &#1101;&#1085;&#1077;&#1088;&#1075;&#1080;&#1080; (&#1084;&#1086;&#1097;&#1085;&#1086;&#1089;&#1090;&#1080;), &#1086;&#1075;&#1088;&#1072;&#1085;&#1080;&#1095;&#1077;&#1085;&#1080;&#1077; &#1088;&#1077;&#1078;&#1080;&#1084;&#1072; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1083;&#1077;&#1085;&#1080;&#1103; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1080;&#1095;&#1077;&#1089;&#1082;&#1086;&#1081; &#1101;&#1085;&#1077;&#1088;&#1075;&#1080;&#1080; &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1093; &#1084;&#1086;&#1078;&#1077;&#1090; &#1087;&#1088;&#1080;&#1074;&#1077;&#1089;&#1090;&#1080; &#1082; &#1101;&#1082;&#1086;&#1085;&#1086;&#1084;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080;&#1084;, &#1101;&#1082;&#1086;&#1083;&#1086;&#1075;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080;&#1084;, &#1089;&#1086;&#1094;&#1080;&#1072;&#1083;&#1100;&#1085;&#1099;&#1084; &#1087;&#1086;&#1089;&#1083;&#1077;&#1076;&#1089;&#1090;&#1074;&#1080;&#1103;&#1084;,&#8221; which translates to &#8220;List of consumers of electrical energy (power), limiting the mode of consumption of electrical energy which can lead to economic, environmental, and social consequences.&#8221; A quick Google search revealed that this is required under Decree of the Government of the Russian Federation 04.05.2012 N 442[5], where Russia mandates regional governments create these lists in case of emergency.</p><p>A search of the exact description &#8220;&#1055;&#1077;&#1088;&#1077;&#1095;&#1077;&#1085;&#1100; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1080;&#1090;&#1077;&#1083;&#1077;&#1081; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1080;&#1095;&#1077;&#1089;&#1082;&#1086;&#1081; &#1101;&#1085;&#1077;&#1088;&#1075;&#1080;&#1080; (&#1084;&#1086;&#1097;&#1085;&#1086;&#1089;&#1090;&#1080;), &#1086;&#1075;&#1088;&#1072;&#1085;&#1080;&#1095;&#1077;&#1085;&#1080;&#1077; &#1088;&#1077;&#1078;&#1080;&#1084;&#1072; &#1087;&#1086;&#1090;&#1088;&#1077;&#1073;&#1083;&#1077;&#1085;&#1080;&#1103; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1080;&#1095;&#1077;&#1089;&#1082;&#1086;&#1081; &#1101;&#1085;&#1077;&#1088;&#1075;&#1080;&#1080; &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1093; &#1084;&#1086;&#1078;&#1077;&#1090; &#1087;&#1088;&#1080;&#1074;&#1077;&#1089;&#1090;&#1080; &#1082; &#1101;&#1082;&#1086;&#1085;&#1086;&#1084;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080;&#1084;, &#1101;&#1082;&#1086;&#1083;&#1086;&#1075;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080;&#1084;, &#1089;&#1086;&#1094;&#1080;&#1072;&#1083;&#1100;&#1085;&#1099;&#1084; &#1087;&#1086;&#1089;&#1083;&#1077;&#1076;&#1089;&#1090;&#1074;&#1080;&#1103;&#1084;&#8221; in Google and Yandex (on a Russian VPN) bore out the files from Bryansk, Vologda, Crimea, Novosibirsk, and Tambov.&nbsp;</p><p>As for results on the Darkweb, I used ahmia[.]fi in Tor Browser to do some searching with variations of the description I used to search Google and Yandex. Nothing came up.</p><h3>Third stop: Reverse Engineering The Map</h3><p>At this point, the only way to get <em>some </em>version of the data is to dig through the map's source code and figure out how to extract all of the information.&nbsp;<em>NOTE: I realized at the end that there was a faster way of reaching the same conclusion, but I think the following workflow is still useful to those trying to understand how to reverse engineer something like this. </em></p><h5>The Hard Way</h5><p>In hopes of an easy win, I started by using <a href="https://developer.chrome.com/docs/devtools/network">Chrome&#8217;s Dev Tools</a> to inspect the network calls to look for an easy data grab. I was specifically looking for Fetch/XHR calls that returned a JSON of latitudes and longitudes but found nothing. There were calls to the Mapbox API, but the response was gibberish to me at that moment.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6l9W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6l9W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png 424w, https://substackcdn.com/image/fetch/$s_!6l9W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png 848w, https://substackcdn.com/image/fetch/$s_!6l9W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png 1272w, https://substackcdn.com/image/fetch/$s_!6l9W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6l9W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png" width="1456" height="622" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:622,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6l9W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png 424w, https://substackcdn.com/image/fetch/$s_!6l9W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png 848w, https://substackcdn.com/image/fetch/$s_!6l9W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png 1272w, https://substackcdn.com/image/fetch/$s_!6l9W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61a6e041-065f-4874-a3d1-2f01e63363dd_1600x683.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" style="height:20px;width:20px" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The only API call of interest from the Network tab in Chrome Dev Tools</figcaption></figure></div><p>Since nothing was helpful in the network tab, I turned to the sources tab to walk through the map&#8217;s source code. I was specifically looking for where the map object is first loaded because it is a fair assumption that there&#8217;d be an array that contained all of the data I needed. I was able to find that in the script included in <code>danger_zone.html</code>. In this file, there was a <code>map.on(&#8216;load&#8217;, function())</code> where I added a breakpoint to inspect the map object.</p><p>Once I added the breakpoint, I realized that I needed to find a method to retrieve the features of the map layer that held these obfuscated points. I started combing Mapbox&#8217;s GL JS API for ideas and landed on the <code>map.get_source(&lt;source_name&gt;)</code>method because &#8220;Sources specify the geographic features to be rendered on the map. Source objects may be obtained from Map#getSource.&#8221; Earlier in the code, I saw variables that contained what I assumed to be the source_name, so I grabbed those strings and called the method with <code>map.get_source(&#8216;objects&#8217;)</code>, which returned a vector object.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Lqa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Lqa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png 424w, https://substackcdn.com/image/fetch/$s_!0Lqa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png 848w, https://substackcdn.com/image/fetch/$s_!0Lqa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png 1272w, https://substackcdn.com/image/fetch/$s_!0Lqa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Lqa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png" width="1152" height="364" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:364,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0Lqa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png 424w, https://substackcdn.com/image/fetch/$s_!0Lqa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png 848w, https://substackcdn.com/image/fetch/$s_!0Lqa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png 1272w, https://substackcdn.com/image/fetch/$s_!0Lqa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200e7f15-102c-4220-8cf1-308760c5067c_1152x364.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" style="height:20px;width:20px" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Variable in the source code where I found the source name.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Aikd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Aikd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png 424w, https://substackcdn.com/image/fetch/$s_!Aikd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png 848w, https://substackcdn.com/image/fetch/$s_!Aikd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png 1272w, https://substackcdn.com/image/fetch/$s_!Aikd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Aikd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png" width="1456" height="557" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:557,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:392595,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Aikd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png 424w, https://substackcdn.com/image/fetch/$s_!Aikd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png 848w, https://substackcdn.com/image/fetch/$s_!Aikd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png 1272w, https://substackcdn.com/image/fetch/$s_!Aikd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79ef25d8-47fd-4c22-b407-2c11d62c0d30_2492x954.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" style="height:20px;width:20px" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Breakpoint added after the maps sources were added in danger_zone.html, where a source was inspected. Calling map.getSource(&#8216;objects&#8217;) returned a vector object</figcaption></figure></div><p>The <a href="https://docs.mapbox.com/mapbox-gl-js/api/sources/#vectortilesource">Source</a> page for Mapbox GL JS explained that a vector source meant the layer's features were in the Mapbox Vector Tile format. When I expanded the vector object in Chrome DevTools, there was a <code>tiles</code> object associated with the source, which contained two links. At this point, I didn&#8217;t fully understand vector tile formats and decided to see if there was an out-of-the-box solution to transform Mapbox Vector Tiles to a GeoJSON. A quick Google search brought me to a handy utility called <a href="https://github.com/mapbox/vt2geojson">vt2geojson</a> that took the Mapbox tile URLs and three variables as input and resulted in a GeoJSON.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j9Sk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j9Sk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png 424w, https://substackcdn.com/image/fetch/$s_!j9Sk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png 848w, https://substackcdn.com/image/fetch/$s_!j9Sk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png 1272w, https://substackcdn.com/image/fetch/$s_!j9Sk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j9Sk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png" width="1456" height="705" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:705,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j9Sk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png 424w, https://substackcdn.com/image/fetch/$s_!j9Sk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png 848w, https://substackcdn.com/image/fetch/$s_!j9Sk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png 1272w, https://substackcdn.com/image/fetch/$s_!j9Sk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f32913d-f954-4d0f-a286-a28438ea4f73_1600x775.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" style="height:20px;width:20px" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The vector object for &#8216;objects&#8217; source and its associated members</figcaption></figure></div><p>The last hurdle was determining the &#8220;x, y, and z&#8221; variables typically part of the URL when calling <code>vt2geojson</code>. Mapbox uses a &#8220;slippy map&#8221; where &#8220;z&#8221; is the zoom level, &#8220;x&#8221; is the column, and &#8220;y&#8221; is a row in that column. In layperson&#8217;s terms, a slippy map is a gridded version of a map so that the vector tiles are served to the browser appropriately and provide a smooth panning and zooming experience on the front end. Figuring out these values came down to trial and error using OpenStreetMap&#8217;s <a href="https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Lon./lat._to_tile_numbers_2">Python method</a> for converting latitudes and longitudes to slippy tile numbers. I found the latitudes and longitudes for Moscow, St. Petersburg, Kaliningrad, Belgorod, and Sevastopol and set a zoom level to 9 to return the appropriate geojsons. I could not set the zoom variable any further because there was too much data.&nbsp;</p><p>Now that I had the correct values for x, y, and z, I pulled the access token from the front end and called vt2geojson to retrieve the geojsons. The following is an example call I made to retrieve the Moscow GeoJSON:</p><p><code>vt2geojson&nbsp; "https://api.mapbox.com/v4/dossier-center.6sjwmvr5/8/154/80.vector.pbf?access_token=&lt;access_key&gt;" &gt;&gt; moscow_dossier.geojson&nbsp;&nbsp;</code></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uf2u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uf2u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png 424w, https://substackcdn.com/image/fetch/$s_!uf2u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png 848w, https://substackcdn.com/image/fetch/$s_!uf2u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png 1272w, https://substackcdn.com/image/fetch/$s_!uf2u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uf2u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png" width="996" height="1454" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1454,&quot;width&quot;:996,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201722,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uf2u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png 424w, https://substackcdn.com/image/fetch/$s_!uf2u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png 848w, https://substackcdn.com/image/fetch/$s_!uf2u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png 1272w, https://substackcdn.com/image/fetch/$s_!uf2u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4b66650-566d-413e-b821-77f6cc5f93d8_996x1454.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" style="height:20px;width:20px" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">One of the features of the Moscow GeoJSON created using vt2geojson</figcaption></figure></div><p>The above call resulted in a GeoJSON of all of the obfuscated locations. Upon inspection of the GeoJSON, I noticed a property value set for google_lat and google_lon, which I assume the map developers used to create the obfuscated locations. Using Python's <a href="https://shapely.readthedocs.io/en/stable/manual.html">Shapely </a>library, I transformed each polygon geometry of the GeoJSON to a point geometry, using the google_lat and google_lon values in properties. I then translated all of the metadata from Russian to English, saved it back into a GeoJSON, threw it into Proton drive and <a href="https://x.com/shelbyruettiger/status/1709591633790906472">voila</a>! Feel free to download this, and open it in geojson.io to inspect the resulting locations.</p><h5>The Easy Way</h5><p>Had I known about Mapbox and vector tile formats, all the information I needed <em>was</em> actually in Chrome&#8217;s Dev Tools. The response already had the &#8220;id&#8221; and the access token I needed, and I just had to calculate the x, y, and z values as I did above to plug it into vt2geojson.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8EvK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8EvK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png 424w, https://substackcdn.com/image/fetch/$s_!8EvK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png 848w, https://substackcdn.com/image/fetch/$s_!8EvK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png 1272w, https://substackcdn.com/image/fetch/$s_!8EvK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8EvK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png" width="1456" height="622" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:622,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8EvK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png 424w, https://substackcdn.com/image/fetch/$s_!8EvK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png 848w, https://substackcdn.com/image/fetch/$s_!8EvK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png 1272w, https://substackcdn.com/image/fetch/$s_!8EvK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cd39f43-603a-4e3e-bab6-1fce66b64ca3_1600x683.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" style="height:20px;width:20px" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">It was there all along&#8230;</figcaption></figure></div><h3>Final Stop: Introducing Myself</h3><p>For those of you who don&#8217;t know me, I&#8217;m a software-enabled threat intelligence specialist by day and an OSINT-er by night. I love using software to solve fun problems like this one, so if you have any ideas or need any help, shoot me a message on <a href="https://x.com/shelbyruettiger">X</a>.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://shelbyruettiger.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Shelby&#8217;s Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Coming soon]]></title><description><![CDATA[This is ReconLabs.]]></description><link>https://shelbyruettiger.substack.com/p/coming-soon</link><guid isPermaLink="false">https://shelbyruettiger.substack.com/p/coming-soon</guid><dc:creator><![CDATA[Shelby Ruettiger]]></dc:creator><pubDate>Thu, 15 Aug 2024 22:27:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jQIZ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b63e383-fc37-4194-b4a7-c3e3e054fb04_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is ReconLabs.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://shelbyruettiger.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://shelbyruettiger.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item></channel></rss>