<?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:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Connor Tumbleson]]></title><description><![CDATA[Ramblings of a Tampa engineer]]></description><link>https://connortumbleson.com/</link><image><url>https://connortumbleson.com/favicon.png</url><title>Connor Tumbleson</title><link>https://connortumbleson.com/</link></image><generator>Ghost 5.71</generator><lastBuildDate>Fri, 23 Feb 2024 05:58:53 GMT</lastBuildDate><atom:link href="https://connortumbleson.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[The Growth of Tampa]]></title><description><![CDATA[Is Tampa growing a bit quickly? Or am I just too used to living in the less packed Kansas.]]></description><link>https://connortumbleson.com/2024/02/19/the-growth-of-tampa/</link><guid isPermaLink="false">65d09b4121d8145438774a05</guid><category><![CDATA[Tampa]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 19 Feb 2024 03:30:42 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2024/02/996f00bd-05b7-492b-bbc2-19dab747c71d.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/02/996f00bd-05b7-492b-bbc2-19dab747c71d-1.png" class="kg-image" alt="The Growth of Tampa" loading="lazy" width="1024" height="1024" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/996f00bd-05b7-492b-bbc2-19dab747c71d-1.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/02/996f00bd-05b7-492b-bbc2-19dab747c71d-1.png 1000w, https://connortumbleson.com/content/images/2024/02/996f00bd-05b7-492b-bbc2-19dab747c71d-1.png 1024w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">AI Image of &quot;Growing Tampa&quot;</span></figcaption></figure><img src="https://connortumbleson.com/content/images/2024/02/996f00bd-05b7-492b-bbc2-19dab747c71d.png" alt="The Growth of Tampa"><p>A few weeks ago I jumped into my car around 10am on a Saturday to run an errand. The traffic to get where I was going rivaled the weekday drive to work. Once done with errands the drive home was even worse - people were everywhere.</p><p>On that same thought process I went downtown to Ulele, a little restaurant on the water. A few years ago Ulele was about the only restaurant in that little corner, but not anymore. This new expansion created this huge Armature Works, which is an amazing little development full of different shops and food places.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/02/ulele-corner.png" class="kg-image" alt="The Growth of Tampa" loading="lazy" width="958" height="851" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/ulele-corner.png 600w, https://connortumbleson.com/content/images/2024/02/ulele-corner.png 958w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Armature Works, Water Works &amp; Ulele.</span></figcaption></figure><p>As the image shows above with those little shaded regions - they had to build some serious parking lots to support this expansion. Back in the day you fought for parallel parking on Henderson Ave to visit Ulele - now you can pay $5-$15 (depending on the day) for a parking spot to the entire riverfront.</p><p>It&apos;s worth it, but boy there are people everywhere. You wander around from shop to shop with lines everywhere and struggle to find a place to sit when you walk around with your food. Tampa is getting warm again so this might explain how everyone had the same idea to visit the waterfront.</p><p>As night falls the early birds shift out for the night owls - they are just starting their night as others are turning in. A drive back home once again rivals work week traffic - it doesn&apos;t matter if its 8pm or 11pm the highway will be packed.</p><p>Perhaps for others this is normal, but I remember living in Kansas hitting curfew at midnight and driving home. On some nights I may only see a car or two on the 10 minute drive home - I would listen to the 10 minute 30 second version of Strobe by deadmau5 which was such a calming song to fill up nearly the entire drive time.</p><p>A drive home from downtown Tampa is a 30 minute endeavor back to my place in Temple Terrace and that drive is just the opposite. Its full of sirens, horns and requires laser focus with the hectic drivers that await on the I-4/I-275 highways. Obviously comparing Kansas to Tampa isn&apos;t fair, but it seems I&apos;m preferring a more quiet and less busy atmosphere.</p><p>So I got curious - is Tampa actually growing or is this just how all cities tend to be? I researched around for U.S Census numbers and found a graphic/article that leveraged that data.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/02/Net-migration-pattern-by-state.png" class="kg-image" alt="The Growth of Tampa" loading="lazy" width="1275" height="717" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/Net-migration-pattern-by-state.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/02/Net-migration-pattern-by-state.png 1000w, https://connortumbleson.com/content/images/2024/02/Net-migration-pattern-by-state.png 1275w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://tampabayedc.com/news/how-many-people-moved-to-florida-this-past-year/?ref=connortumbleson.com" rel="noreferrer"><span style="white-space: pre-wrap;">How many people moved to Florida this past year?</span></a></figcaption></figure><p>This was an interesting graphic to see as it called out Florida as the top state for migration between July 2021 &amp; July 2022. We get roughly 444,000~ people a year moving in. So perhaps I&apos;m not going crazy - Florida is growing faster than any other state. Looks like based on the graphic that California, New York and Illinois are bleeding the most residents which may be moving to Florida.</p><p>This makes perfect sense, because you can tell immediately who you&apos;ve run into when you meet a new Tampa resident.</p><ul><li>California - Buys largely over asking, says everything is cheap here.</li><li>New York - Has a weird accent.</li><li>Illinois - Complains our public transportation sucks.</li></ul><p>Maybe this graphic isn&apos;t truly accurate as its too close to COVID-19. We all know how Florida treated COVID, which may explain a large boom of incoming residents.</p><p>However, if we ignore states outside of Florida the data also tells a story that folks are leaving other counties to come towards Hillsborough (Tampa).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/02/2016-2020-FL-County-In-Migration-Flow__1679491152561__w1920.png" class="kg-image" alt="The Growth of Tampa" loading="lazy" width="1920" height="753" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/2016-2020-FL-County-In-Migration-Flow__1679491152561__w1920.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/02/2016-2020-FL-County-In-Migration-Flow__1679491152561__w1920.png 1000w, https://connortumbleson.com/content/images/size/w1600/2024/02/2016-2020-FL-County-In-Migration-Flow__1679491152561__w1920.png 1600w, https://connortumbleson.com/content/images/2024/02/2016-2020-FL-County-In-Migration-Flow__1679491152561__w1920.png 1920w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://tampaedc.maps.arcgis.com/apps/MapSeries/index.html?appid=b8aa5b13dd3648c599a64a0351a0645b&amp;ref=connortumbleson.com" rel="noreferrer"><span style="white-space: pre-wrap;">Tampa EDC ArcGIS</span></a></figcaption></figure><p>So we have people leaving other Florida counties to come to Hillsborough and basically half a million a year from around the states as well. I feel validated that Tampa is growing by the facts of the numbers and my odd personal experiences.</p><p>Can we continue to expand roads and build to support this growth? Will housing stabilize or do we still look at homes that gained $200,000 value in under a year? Can I drive through town without getting stressed?</p><p>I don&apos;t know what the future holds - at the moment I&apos;m happy to be in Tampa, but some days it drives me up the wall with how busy it is. My little break is my calm weekend park visit to workout - nice and early before the city wakes up.</p>]]></content:encoded></item><item><title><![CDATA[Derek Cardigan 7003]]></title><description><![CDATA[A story of trying to replace my broken Derek Cardigan glasses.]]></description><link>https://connortumbleson.com/2024/02/12/derek-cardigan-7003/</link><guid isPermaLink="false">65c7886521d814543877490c</guid><category><![CDATA[Personal]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 12 Feb 2024 03:30:38 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2024/02/derek.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/02/derek-1.png" class="kg-image" alt="Derek Cardigan 7003" loading="lazy" width="1000" height="700" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/derek-1.png 600w, https://connortumbleson.com/content/images/2024/02/derek-1.png 1000w" sizes="(min-width: 720px) 720px"></figure><img src="https://connortumbleson.com/content/images/2024/02/derek.png" alt="Derek Cardigan 7003"><p>A long time ago I moved from Kansas to Arkansas and somehow lost my glasses in the shuffle on the way to moving into my college dorm. It didn&apos;t mean much because I wore my contacts near 100% of the time.</p><p>Though I learned pretty quickly the college life was a bit hectic and would require a new pair of glasses. I could be asleep at 11pm and get called repeatedly to go let in some fellow floor friends who were locked outside. Doing this frequently with no contacts was painful - I didn&apos;t realize how much my eyesight had collapsed while wearing no corrective lenses. I would have much preferred to roll out of bed and slip on my glasses and walk downstairs.</p><p>So knowing myself refusing to do anything remotely adult like I emailed home asking for my older prescription. I then stumbled upon <code>coastal.com</code> and found these Derek Cardigan 7003 glasses.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/02/coastal.png" class="kg-image" alt="Derek Cardigan 7003" loading="lazy" width="1008" height="858" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/coastal.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/02/coastal.png 1000w, https://connortumbleson.com/content/images/2024/02/coastal.png 1008w" sizes="(min-width: 720px) 720px"></figure><p>I immediately loved them for the odd reason that they had a division symbol and multiplication symbol on the front. So I tried an online order, plugged in my 3 year old contact prescription and these glasses arrived.</p><p>I didn&apos;t realize how cool these glasses were until a few years later when I met this girl at a concert. I never got any contact info from her, but then I heard from a friend that this girl was looking for a tall guy with math glasses and a koala shirt. I don&apos;t know why two random symbols on my glasses were so cool, but I really enjoyed these glasses. It further proved that when a girl trying to remember me called out the &quot;math glasses&quot;.</p><p>A few days ago they slipped off my head, hit the ground and broke into pieces. I thought it would be time to buy a new pair and all would be okay. So I dug up my old email and <code>coastal.com</code> no longer existed, I dug around and found this archived message.</p><blockquote>Dear Coastal community,<br><br>We&apos;re packing up and moving north, which means this is the last time you&apos;ll see us. We&apos;re forever grateful that you&apos;ve trusted us to bring you the contact lenses and glasses that help you #SeeAmazing.<br><br>But don&apos;t worry - there&apos;s more to see! Get to know our friends: visit EyeBuyDirect for glasses and ContactsDirect for contact lenses.<br><br>Thanks for being part of our Coastal community.<br><br>Here&apos;s looking at you, kid.<br><br>Coastal</blockquote><p>So I went off to EyeBuyDirect and searched and searched and could not find them. So I started with some Google searches which fueled my anger at Google and this situation.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/02/google-search.png" class="kg-image" alt="Derek Cardigan 7003" loading="lazy" width="1422" height="881" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/google-search.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/02/google-search.png 1000w, https://connortumbleson.com/content/images/2024/02/google-search.png 1422w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Google search for &quot;Derek Cardigan 7003 glasses&quot;</span></figcaption></figure><p>The first result is the exact product I want, but Coastal has been shutdown since April of 2022. Clicking on that link just redirects to a homepage of <code>clearly.com.au</code> with no sight of those glasses.</p><p>It bugs me that the biggest search engine in the world accepts these misleading redirects that don&apos;t even go the product mentioned. I can understand a business wanting to redirect all traffic when taking over a business, but more than a year later to have product links not pointing to the product isn&apos;t fair. So I search and search on this new Clearly website and stumble upon a frame that looks pretty close to what I want.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/02/coastal-type.png" class="kg-image" alt="Derek Cardigan 7003" loading="lazy" width="1874" height="627" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/coastal-type.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/02/coastal-type.png 1000w, https://connortumbleson.com/content/images/size/w1600/2024/02/coastal-type.png 1600w, https://connortumbleson.com/content/images/2024/02/coastal-type.png 1874w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">middle pair</span></figcaption></figure><p>I&apos;m pretty happy at this point - I&apos;ve found an iteration of my older glasses. They only ship to Australia so I may have to think of something, but then I click on the item.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/02/not-found.png" class="kg-image" alt="Derek Cardigan 7003" loading="lazy" width="1427" height="617" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/not-found.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/02/not-found.png 1000w, https://connortumbleson.com/content/images/2024/02/not-found.png 1427w" sizes="(min-width: 720px) 720px"></figure><p>I feel like I&apos;m being pranked - Google results that show a dead website. Company search results that redirect to a sold out / no longer in production page. Why even bother showing these amazing glasses if they aren&apos;t available anymore.</p><p>So I am mad, but I think not all hope is lost. I head to my local eye doctor and look around at all the glasses they have and not a single pair of glasses look like they have math symbols on them. My criteria is odd - I want black glasses, full frame with math symbols on the front.</p><p>They think I am joking and sadly I am not as they bring glasses that look close to what I am describing. They aren&apos;t in the market of fixing glasses that aren&apos;t one of their official brands so I am out of luck. So I head off to eBay.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/02/ebay.png" class="kg-image" alt="Derek Cardigan 7003" loading="lazy" width="1047" height="710" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/ebay.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/02/ebay.png 1000w, https://connortumbleson.com/content/images/2024/02/ebay.png 1047w" sizes="(min-width: 720px) 720px"></figure><p>I put in a purchase for some parts and will attempt to revive these busted glasses on my own. If that fails - I&apos;ll have to come up with something else. Either way I&apos;ve reinforced a learned lesson - if you like something greatly - buy more than one.</p>]]></content:encoded></item><item><title><![CDATA[The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2]]></title><description><![CDATA[<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/01/photo-1676246240904-7edbf4be89eb-1.jpeg" class="kg-image" alt="a black and white photo of a fly on a wall" loading="lazy" width="2000" height="1260" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/photo-1676246240904-7edbf4be89eb-1.jpeg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/photo-1676246240904-7edbf4be89eb-1.jpeg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/photo-1676246240904-7edbf4be89eb-1.jpeg 1600w, https://connortumbleson.com/content/images/2024/01/photo-1676246240904-7edbf4be89eb-1.jpeg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@tonystoddard?ref=connortumbleson.com"><span style="white-space: pre-wrap;">Tony Stoddard</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>We pick up where we left off in the January 2014 puzzle - this is Part 2.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">If you missed <a href="https://connortumbleson.com/2021/02/15/the-cicada-3301-mystery-puzzle-3-part1/" rel="noreferrer">Puzzle 3 (Part 1) - head here</a>.</div></div><p>We ended Part 1 on an onion after solving a transposition cipher. At this point knowing what</p>]]></description><link>https://connortumbleson.com/2024/02/05/the-cicada-3301-mystery-puzzle-3-solve-part-2/</link><guid isPermaLink="false">65ac381721d8145438774441</guid><category><![CDATA[Cicada 3301]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 05 Feb 2024 03:30:40 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2024/01/photo-1676246240904-7edbf4be89eb.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/01/photo-1676246240904-7edbf4be89eb-1.jpeg" class="kg-image" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" loading="lazy" width="2000" height="1260" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/photo-1676246240904-7edbf4be89eb-1.jpeg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/photo-1676246240904-7edbf4be89eb-1.jpeg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/photo-1676246240904-7edbf4be89eb-1.jpeg 1600w, https://connortumbleson.com/content/images/2024/01/photo-1676246240904-7edbf4be89eb-1.jpeg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@tonystoddard?ref=connortumbleson.com"><span style="white-space: pre-wrap;">Tony Stoddard</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><img src="https://connortumbleson.com/content/images/2024/01/photo-1676246240904-7edbf4be89eb.jpeg" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2"><p>We pick up where we left off in the January 2014 puzzle - this is Part 2.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">If you missed <a href="https://connortumbleson.com/2021/02/15/the-cicada-3301-mystery-puzzle-3-part1/" rel="noreferrer">Puzzle 3 (Part 1) - head here</a>.</div></div><p>We ended Part 1 on an onion after solving a transposition cipher. At this point knowing what we know - the puzzle begins to fracture into various different paths.</p><p>We haven&apos;t really dug into the Liber Primus yet, but as you can probably imagine from the last part or your own research. We are basically discovering pages of a book known as the Liber Primus - this post will dive into the discovery of more of those pages. Due to the size of this post - we may end requiring a few parts to finish this.</p><p>So as we ended the last it was off to another onion (<code>fv7lyucmeozzd5j4.onion</code>) which was a little page that seemed to grow in characters every so often. When the growing stop it resembled the string below at exactly 512 characters.</p><figure class="kg-card kg-code-card"><pre><code class="language-html">&lt;!--1033--&gt;
87de5b7fa26ab85d2256c453e7f5bc3ac7f25ee743297817febd7741ededf07ca0c7e8b1788ea4131441a8f71c63943d8b56aea6a45159e2f59f9a194af23eaabf9de0f3123c041c882d5b7e03e17ac49be67cef29fbc7786e3bda321a176498835f6198ef22e81c30d44281cd217f7a46f58c84dd7b29b941403ecd75c0c735d20266121f875aa8dec28f32fc153b1393e143fc71616945eea3c10d6820bd631cf775cf3c1f27925b4a2da655f783f7616f3359b23cff6fb5cb69bcb745c55dff439f7eb6a4094bd302b65a84360a62f94c8b010250fcc431c190d6ed8cc8a3bfce37dddb24b93f502ad83c5fa21923189d8be7a6127c4105fcf0e5275286f2</code></pre><figcaption><p><a href="http://fv7lyucmeozzd5j4.onion/?ref=connortumbleson.com"><span style="white-space: pre-wrap;">fv7lyucmeozzd5j4.onion</span></a><span style="white-space: pre-wrap;"> - Onion 3</span></p></figcaption></figure><p>Seeing the comment of 1033 reminds of the past puzzles involving a filesystem. Those were normally hints to the files needed to XOR together. In this case though a quick method to utilize this data was not found.</p><p>However - this was quickly ignored as a more interesting discovery was found. Researchers discovered that the Apache status page was enabled and visible to anyone at <code>/server-status</code>.  This was tempting as it appeared to be accidental and leaked the Linode host in use (<code>li676-224.members.linode.com</code>). This was a different host than used in <a href="https://connortumbleson.com/2021/01/25/the-cicada-3301-mystery-puzzle-2/">Puzzle 2</a>, which was <code>li528-4</code>.</p><p>This initially looked like a regular status page showing internal details about the state of the Apache server.</p><figure class="kg-card kg-code-card"><pre><code>Apache Server Status for fv7lyucmeozzd5j4.onion

Server Version: Apache/2.2.22 (Ubuntu)
Server Built: Jul 12 2013 13:37:15

Current Time: Thursday, 09-Jan-2014 03:01:25 UTC
Restart Time: Tuesday, 07-Jan-2014 02:13:02 UTC
Parent Server Generation: 2
Server uptime: 2 days 48 minutes 23 seconds
Total accesses: 548166 - Total Traffic: 6.5 GB
CPU Usage: u64.83 s85.99 cu0 cs0 - .0858% CPU load
3.12 requests/sec - 38.8 kB/second - 12.4 kB/request
6 requests currently being processed, 69 idle workers

_R_______________K___K___.......................................
_____R________________W__.......................................</code></pre><figcaption><p><a href="https://connortumbleson.com/uploads/2024/01/fv7lyucmeozzd5j4.onion.status-page.txt" rel="noreferrer"><span style="white-space: pre-wrap;">full file</span></a></p></figcaption></figure><p>The more this discovery was passed around it became apparent that Cicada 3301 knew this was being accessed as well. An additional visit to the page led to a far more larger page size than prior. It appeared some data was packed in between the page, which had to be quite the interesting <a href="https://httpd.apache.org/docs/2.4/mod/mod_substitute.html?ref=connortumbleson.com">Substitute</a> method for the amount of data injected.</p><figure class="kg-card kg-code-card"><pre><code class="language-html">&lt;dt&gt;5.09 requests/sec - 37.6 kB/second - 7.4 kB/request&lt;/dt&gt;
&lt;dt&gt;10 requests currently being processed, 40 idle workers&lt;/dt&gt;
&lt;/dl&gt;&lt;pre&gt;ffd8ffe000104a46494600010101019001900000ffdb0043000302020202
02030202020303030304060404040404080606050609080a0a090809090a</code></pre><figcaption><p><a href="https://connortumbleson.com/uploads/2024/01/fv7lyucmeozzd5j4.onion.adjusted-status-page.txt" rel="noreferrer"><span style="white-space: pre-wrap;">full file</span></a></p></figcaption></figure><p>Now at this point you should be able to spot the magic of a JPEG - you can see <code>ff d8 ff e0</code> which is the header. So we know there is an image hiding in this status page. No need for any fancy tools - this is a relatively small file, so lets isolate the payload in the middle.</p><figure class="kg-card kg-code-card"><pre><code>ffd8ffe000104a46494600010101019001900000ffdb0043000302020202
02030202020303030304060404040404080606050609080a0a090809090a
0c0f0c0a0b0e0b09090d110d0e0f101011100a0c12131210130f101010ff
db00430103030304030408040408100b090b101010101010101010101010
101010101010101010101010101010101010101010101010101010101010</code></pre><figcaption><p><a href="https://connortumbleson.com/uploads/2024/01/fv7lyucmeozzd5j4.onion.payload.txt" rel="noreferrer"><span style="white-space: pre-wrap;">full file</span></a></p></figcaption></figure><p>So one quick conversion back to binary with xxd and we detect one image with binwalk.</p><pre><code>&#x279C;  xxd -r -p payload payload.bin
&#x279C;  binwalk payload.bin 

DECIMAL       HEXADECIMAL     DESCRIPTION
----------------------------------------------------
0             0x0             JPEG image data, JFIF standard 1.01
</code></pre><p>However, there has to be another image because the ending of the file is <code>e0 ff d8 ff</code>, which as you can tell is the JPEG magic reversed. Thankfully in Part 1 we learned about <code>tac</code> (reverse of cat) so we can easily flip the file if we keep it in the plaintext state. However it won&apos;t be that easy this time because there appears to be some data in between the images.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/01/Screenshot-from-2024-01-24-19-52-12.png" class="kg-image" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" loading="lazy" width="1373" height="366" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/Screenshot-from-2024-01-24-19-52-12.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/Screenshot-from-2024-01-24-19-52-12.png 1000w, https://connortumbleson.com/content/images/2024/01/Screenshot-from-2024-01-24-19-52-12.png 1373w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">ghex view of payload.bin</span></figcaption></figure><p>We can tell the JPEG header doesn&apos;t have the size embedded so we must have the trailer bytes of <code>ff d9</code> which help denote the end of the image. You can even tell after what appears to be a random blob of characters we have <code>d9 ff</code> which is the reversed JPEG trailer. So this binary blob appears to be structured as <code>[jpeg][characters][reversed jpeg]</code>.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/01/jpeg-status.jpg" class="kg-image" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" loading="lazy" width="2000" height="285" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/jpeg-status.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/jpeg-status.jpg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/jpeg-status.jpg 1600w, https://connortumbleson.com/content/images/size/w2400/2024/01/jpeg-status.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>So to make this easier - we can leverage dd to extract a chunk of the file. We know from the above screenshot that the first image ends at offset: <code>0x521e1</code>, so a little quick command to extract that chunk.</p><pre><code>&#x279C; dd if=payload.bin of=slimmed.bin bs=1 skip=$((0x521e1))
336713+0 records in
336713+0 records out
336713 bytes (337 kB, 329 KiB) copied, 1.31176 s, 257 kB/s
</code></pre><p>We keep our block size at 1 to work byte by byte and skip the full size of the initial image. Our file is now just the random characters and reversed JPEG. At this point since the file is already binary - we can&apos;t use tools like rev and tac as they work best on text. Thankfully Perl is pretty good at reversing even binary blobs.</p><pre><code>&#x279C; perl -0777pe &apos;$_=reverse&apos; slimmed.bin &gt; reversed.bin
</code></pre><ul><li>We use <code>0777</code> to read the entire file at once without splitting.</li><li>We use <code>-p</code> to loop each line.</li><li><code>-e</code> just executes the upcoming Perl code.</li><li><code>$_=reverse</code> reverses the argument (the file content) and since no output variable will reverse the argument</li></ul><p>So basically we read the entire <code>slimmed.bin</code> file, reverse its contents and write to <code>reversed.bin</code>.</p><p>So now we have 2 images and a set of 358 characters we extracted from between the images.</p><figure class="kg-card kg-code-card"><pre><code>a02373230202020202833313020202020213433302020202021333130202020202135313a06363330202020202939313020202020203331302020202020323330202020202028313a06323230202020202534323020202020202139302020202025343230202020202632323a083130202020202032333020202020203331302020202029393130202020202636333a01353130202020202133313020202020213433302020202028333130202020202237323</code></pre><figcaption><p><span style="white-space: pre-wrap;">The 358 characters</span></p></figcaption></figure><p>With the two images being:</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/1st_image.jpeg" width="2000" height="3000" loading="lazy" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/1st_image.jpeg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/1st_image.jpeg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/1st_image.jpeg 1600w, https://connortumbleson.com/content/images/2024/01/1st_image.jpeg 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/2nd_image.jpeg" width="2000" height="3000" loading="lazy" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/2nd_image.jpeg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/2nd_image.jpeg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/2nd_image.jpeg 1600w, https://connortumbleson.com/content/images/2024/01/2nd_image.jpeg 2400w" sizes="(min-width: 720px) 720px"></div></div></div></figure><p>At first I thought I made a mistake, but after a few replications I confirmed both images are the same. We have some runes, then a little matrix of numbers/runes. Neither appear to have any outguess data embedded within.</p><p>Our goal now is to decode these runes. Crazily enough these puzzles are connecting as we had a little decoding table in <a href="https://connortumbleson.com/2021/01/25/the-cicada-3301-mystery-puzzle-2/">Puzzle 2</a> known as the Gematria Primus. So we spend a bit of time reversing runes to characters and we start to understand this page:</p><ul><li>&#x16CB;&#x16A9;&#x16D7;&#x16D6; (some) &#x2022;&#x16B9;&#x16C1;&#x16CB;&#x16DE;&#x16A9;&#x16D7; (wisdom)</li><li>&#x16A6;&#x16D6; (the) &#x2022;&#x16C8;&#x16B1;&#x16C1;&#x16D7;&#x16D6;&#x16CB; (primes) &#x2022;&#x16AA;&#x16B1;&#x16D6; (are) &#x2022;&#x16CB;&#x16AA;&#x16B3;&#x16B1;&#x16D6;&#x16DE; (sacred)</li><li>&#x16A6;&#x16D6; (the) &#x2022;&#x16CF;&#x16A9;&#x16CF;&#x16C1;&#x16D6;&#x16BE;&#x16CF; (totient) &#x2022;&#x16A0;&#x16A2;&#x16BE;&#x16B3;&#x16CF;&#x16E1;&#x16BE; (function) &#x2022;&#x16C1;&#x16CB; (is) &#x2022;&#x16CB;&#x16AA;&#x16B3;&#x16B1;&#x16D6;&#x16DE; (sacred)</li><li>&#x16AA;&#x16DA;&#x16DA; (all) &#x2022;&#x16A6;&#x16DD;&#x16CB; (things) &#x2022;&#x16CB;&#x16BB;&#x16A9;&#x16A2;&#x16DA;&#x16DE; (should) &#x2022;&#x16D2;&#x16D6; (be) &#x2022;&#x16D6;&#x16BE;&#x16B3;&#x16B1;&#x16A3;&#x16C8;&#x16CF;&#x16D6;&#x16DE; (encrypted)</li><li>&#x16B3;&#x16BE;&#x16A9;&#x16B9; (know) &#x2022;&#x16A6;&#x16C1;&#x16CB; (this)</li></ul><p>Or in plain English:</p><p>&quot;<em>Some wisdom: The primes are sacred, The totient function is sacred, All things should be encrypted.</em></p><p><em>Know this.</em>&quot;</p><p>So now we have to make sense of this matrix of numbers. Using the Gematria Primus we can take runes to words/numbers.</p><ul><li>Shadows (&#x16CB;&#x16BB;&#x16AA;&#x16DE;&#x16A9;&#x16B9;&#x16CB;): 341</li><li>Aetheral (&#x16AB;&#x16A6;&#x16D6;&#x16B1;&#x16E0;&#x16DA;): 366</li><li>Buffers (&#x16D2;&#x16A2;&#x16A0;&#x16A0;&#x16D6;&#x16B1;&#x16CB;): 199</li><li>Void (&#x16A2;&#x16A9;&#x16C1;&#x16DE;): 130</li><li>Carnal (&#x16B3;&#x16AA;&#x16B1;&#x16BE;&#x16AA;&#x16DA;): 320</li><li>Obscura (&#x16A9;&#x16D2;&#x16CB;&#x16B3;&#x16A2;&#x16B1;&#x16AA;): 245</li><li>Form (&#x16A0;&#x16A9;&#x16B1;&#x16D7;): 91</li><li>Mobius (&#x16D7;&#x16A9;&#x16D2;&#x16C1;&#x16A2;&#x16CB;): 226</li><li>Analog (&#x16AA;&#x16BE;&#x16AA;&#x16DA;&#x16A9;&#x16B7;): 320</li><li>Mournful (&#x16D7;&#x16A9;&#x16A2;&#x16B1;&#x16BE;&#x16A0;&#x16A2;&#x16DA;): 199</li><li>Cabal (&#x16B3;&#x16AA;&#x16D2;&#x16AA;&#x16DA;): 341</li></ul><p>Now we replace runes with numbers and get this matrix.</p><figure class="kg-card kg-code-card"><pre><code>272     138     341     131     151
366     199     130     320     18
226     245     91      245     226
18      320     130     199     366
151     131     341     138     272</code></pre><figcaption><p><span style="white-space: pre-wrap;">5x5 Matrix</span></p></figcaption></figure><p>So it appears we have a 5x5 matrix - one quick Google search on that has &quot;risk matrix&quot; and &quot;magic square&quot;. It&apos;s clearly not a risk matrix and if we add all columns, all rows and the diagonal they all oddly sum to 1033.</p><p>So this is a magic square with all values of course being 1033. At this point we might have to head back to the random set of characters discovered in between the images, because we&apos;ve hit a dead end.</p><p>So knowing this random blob of data was in between two images - we aren&apos;t really sure what direction its intended to be. It appears to be hexadecimal as I don&apos;t see a single character higher than <code>f</code> and the rest is numeric. So before we do anything complex - lets just take it back to binary. Back to the power of xxd.</p><pre><code>&#x279C; cat 358chars | xxd -p -r 
&#xFFFD;#s#&#xFFFD;3C33S&#xFFFD;cc3&#xFFFD;&#xFFFD;3#3&#xFFFD;&#xFFFD;c##SC#&#xFFFD;SC#c##&#xFFFD;&#xFFFD;#33&#xFFFD;&#xFFFD;cc3&#xFFFD;S3C3&#xFFFD;3#s#%

&#x279C; cat 358chars | rev | xxd -p -r
272     138     341     131     151
366     199     130     320     18
226     245     91      245     226
18      320     130     199     366
151     131     341     138     272</code></pre><p>It turns out it did have to be reversed to make human readable text, but sadly appears to be the same exact magic square we just decoded from the images. Maybe something has to do with the totient function we extracted from the hints in the runes? Without a discovery in a short period of time, but before additional research could continue the Apache status page updated.</p><p>It appeared that the embedded data had changed. We were now looking at a page that was just bluntly a dump of data.</p><figure class="kg-card kg-code-card"><pre><code>HTTP/1.1 200 OK
Date: Sat, 11 Jan 2014 22:19:20 GMT
Server: Apache
Last-Modified: Sat, 11 Jan 2014 22:07:12 GMT
ETag: &quot;d3e7-41a795-4efb910854400&quot;
Accept-Ranges: bytes
Content-Length: 4302741
Vary: Accept-Encoding
Content-Type: text/html

&lt;!--3301--&gt;
ffd8ffe000104a46494600010100000100010000ffdb0043000806060706</code></pre><figcaption><p><a href="https://raw.githubusercontent.com/iBotPeaches/cicada_3301/master/infotomb/laqs9.txt?ref=connortumbleson.com" rel="noreferrer"><span style="white-space: pre-wrap;">full file</span></a></p></figcaption></figure><p>If we take this blob of characters back to binary (<code>xxd -p -r</code>) and we find once again a JPEG then a JPEG in reverse.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/01/jpeg-gepg.jpg" class="kg-image" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" loading="lazy" width="2000" height="386" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/jpeg-gepg.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/jpeg-gepg.jpg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/jpeg-gepg.jpg 1600w, https://connortumbleson.com/content/images/2024/01/jpeg-gepg.jpg 2275w" sizes="(min-width: 720px) 720px"></figure><p>Updating our graphic above - it resembles this setup. So lets find the end point and rip out the images. We can probably search for <code>ff d9 d9 ff</code> and find the end points of both images squished together.</p><pre><code>&#x279C; dd if=data.bin of=2.bin bs=1 skip=$((0xD9F57))
1223337+0 records in
1223337+0 records out
1223337 bytes (1.2 MB, 1.2 MiB) copied, 4.67677 s, 262 kB/s
&#x279C; perl -0777pe &apos;$_=reverse&apos; 2.bin &gt; 2.jpg        
&#x279C; dd if=data.bin of=1.jpg bs=1 count=$((0xD9F57))
892759+0 records in
892759+0 records out
892759 bytes (893 kB, 872 KiB) copied, 3.42165 s, 261 kB/s</code></pre><p>So what we did here is first skip the entire first image - then reversed that output to get the reversed JPEG into regular format. Once that was done we just adapted one parameter on dd to extract the first image instead.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/1.jpg" width="2000" height="3000" loading="lazy" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/1.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/1.jpg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/1.jpg 1600w, https://connortumbleson.com/content/images/2024/01/1.jpg 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/2.jpg" width="2000" height="3000" loading="lazy" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/2.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/2.jpg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/2.jpg 1600w, https://connortumbleson.com/content/images/2024/01/2.jpg 2400w" sizes="(min-width: 720px) 720px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Page 3 &amp; 4 from Liber Primus</span></p></figcaption></figure><p>It seems we are getting more and more pages of this book. With more images we always have to check if outguess can detect data - sure enough this time it did.</p><pre><code class="language-`">&#x279C; outguess -r 1.jpg 1.txt
Reading 1.jpg....
Extracting usable bits:   811192 bits
Steg retrieve: seed: 127, len: 31809
&#x279C; outguess -r 2.jpg 2.txt
Reading 2.jpg....
Extracting usable bits:   1164245 bits
Steg retrieve: seed: 38370, len: 7524
&#x279C; file 1.txt
1.txt: PGP signed message
&#x279C; file 2.txt 
2.txt: data
</code></pre><p>The 1st image appears to be another valid PGP message with some data contained within. The 2nd image is a blob of data that presently doesn&apos;t have any known magic header/footer so we will ignore that one for now.</p><p>So lets start with decrypting these runes on the above two pages. If we start with the first image we don&apos;t get anything on first glance that converts easily to English.</p><ul><li><code>&#x16A2;&#x16E0;&#x16DD;&#x16CB;&#x16C7;&#x16A0;&#x16B3; &#x16B1;&#x16C7;&#x16A2;&#x16B7;&#x16C8;&#x16E0;&#x16E0; &#x16A0;&#x16B9;&#x16C9;</code> -&gt; <code>UEA[NG|ING][S|Z]EOF[C|K] REOUGPEAEA FWX</code></li></ul><p>As you can tell - since Gematria Primus can decode a rune to a variety of characters for <code>NG/ING</code> , <code>S/Z</code> and <code>C/K</code> we don&apos;t know exactly what it should be. When we went strictly from runes to English it was pretty obvious what letter it was intended to me in Part 1. So at this point we are probably missing some form of transformation.</p><p>I always like to start with a rotation (ROT) for any type of string that looks vaguely already like text. At this point rotating through every possible rotation results in nothing.</p><div class="kg-card kg-toggle-card" data-kg-toggle-state="close">
            <div class="kg-toggle-heading">
                <h4 class="kg-toggle-heading-text"><span style="white-space: pre-wrap;">ROT 0-26 of &quot;UEA&quot; String</span></h4>
                <button class="kg-toggle-card-icon">
                    <svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                        <path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/>
                    </svg>
                </button>
            </div>
            <div class="kg-toggle-content"><p><b><strong style="white-space: pre-wrap;">ROT-0</strong></b><span style="white-space: pre-wrap;">: UEA[NG|ING][S|Z]EOF[C|K] REOUGPEAEA FWX</span><br><b><strong style="white-space: pre-wrap;">ROT-1</strong></b><span style="white-space: pre-wrap;">: VFB[OH|JOH][T|A]FPG[D|L] SFPVHQFBFB GXY</span><br><b><strong style="white-space: pre-wrap;">ROT-2</strong></b><span style="white-space: pre-wrap;">: WGC[PI|KPI][U|B]GQH[E|M] TGQWIRGCGC HYZ</span><br><b><strong style="white-space: pre-wrap;">ROT-3</strong></b><span style="white-space: pre-wrap;">: XHD[QJ|LQJ][V|C]HRI[F|N] UHRXJSHDHD IZA</span><br><b><strong style="white-space: pre-wrap;">ROT-4</strong></b><span style="white-space: pre-wrap;">: YIE[RK|MRK][W|D]ISJ[G|O] VISYKTIEIE JAB</span><br><b><strong style="white-space: pre-wrap;">ROT-5</strong></b><span style="white-space: pre-wrap;">: ZJF[SL|NSL][X|E]JTK[H|P] WJTZLUJFJF KBC</span><br><b><strong style="white-space: pre-wrap;">ROT-6</strong></b><span style="white-space: pre-wrap;">: AKG[TM|OTM][Y|F]KUL[I|Q] XKUAMVKGKG LCD</span><br><b><strong style="white-space: pre-wrap;">ROT-7</strong></b><span style="white-space: pre-wrap;">: BLH[UN|PUN][Z|G]LVM[J|R] YLVBNWLHLH MDE</span><br><b><strong style="white-space: pre-wrap;">ROT-8</strong></b><span style="white-space: pre-wrap;">: CMI[VO|QVO][A|H]MWN[K|S] ZMWCOXMIMI NEF</span><br><b><strong style="white-space: pre-wrap;">ROT-9</strong></b><span style="white-space: pre-wrap;">: DNJ[WP|RWP][B|I]NXO[L|T] ANXDPYNJNJ OFG</span><br><b><strong style="white-space: pre-wrap;">ROT-10</strong></b><span style="white-space: pre-wrap;">: EOK[XQ|SXQ][C|J]OYP[M|U] BOYEQZOKOK PGH</span><br><b><strong style="white-space: pre-wrap;">ROT-11</strong></b><span style="white-space: pre-wrap;">: FPL[YR|TYR][D|K]PZQ[N|V] CPZFRAPLPL QHI</span><br><b><strong style="white-space: pre-wrap;">ROT-12</strong></b><span style="white-space: pre-wrap;">: GQM[ZS|UZS][E|L]QAR[O|W] DQAGSBQMQM RIJ</span><br><b><strong style="white-space: pre-wrap;">ROT-13</strong></b><span style="white-space: pre-wrap;">: HRN[AT|VAT][F|M]RBS[P|X] ERBHTCRNRN SJK</span><br><b><strong style="white-space: pre-wrap;">ROT-14</strong></b><span style="white-space: pre-wrap;">: ISO[BU|WBU][G|N]SCT[Q|Y] FSCIUDSOSO TKL</span><br><b><strong style="white-space: pre-wrap;">ROT-15</strong></b><span style="white-space: pre-wrap;">: JTP[CV|XCV][H|O]TDU[R|Z] GTDJVETPTP ULM</span><br><b><strong style="white-space: pre-wrap;">ROT-16</strong></b><span style="white-space: pre-wrap;">: KUQ[DW|YDW][I|P]UEV[S|A] HUEKWFUQUQ VMN</span><br><b><strong style="white-space: pre-wrap;">ROT-17</strong></b><span style="white-space: pre-wrap;">: LVR[EX|ZEX][J|Q]VFW[T|B] IVFLXGVRVR WNO</span><br><b><strong style="white-space: pre-wrap;">ROT-18</strong></b><span style="white-space: pre-wrap;">: MWS[FY|AFY][K|R]WGX[U|C] JWGMYHWSWS XOP</span><br><b><strong style="white-space: pre-wrap;">ROT-19</strong></b><span style="white-space: pre-wrap;">: NXT[GZ|BGZ][L|S]XHY[V|D] KXHNZIXTXT YPQ</span><br><b><strong style="white-space: pre-wrap;">ROT-20</strong></b><span style="white-space: pre-wrap;">: OYU[HA|CHA][M|T]YIZ[W|E] LYIOAJYUYU ZQR</span><br><b><strong style="white-space: pre-wrap;">ROT-21</strong></b><span style="white-space: pre-wrap;">: PZV[IB|DIB][N|U]ZJA[X|F] MZJPBKZVZV ARS</span><br><b><strong style="white-space: pre-wrap;">ROT-22</strong></b><span style="white-space: pre-wrap;">: QAW[JC|EJC][O|V]AKB[Y|G] NAKQCLAWAW BST</span><br><b><strong style="white-space: pre-wrap;">ROT-23</strong></b><span style="white-space: pre-wrap;">: RBX[KD|FKD][P|W]BLC[Z|H] OBLRDMBXBX CTU</span><br><b><strong style="white-space: pre-wrap;">ROT-24</strong></b><span style="white-space: pre-wrap;">: SCY[LE|GLE][Q|X]CMD[A|I] PCMSENCYCY DUV</span><br><b><strong style="white-space: pre-wrap;">ROT-25</strong></b><span style="white-space: pre-wrap;">: TDZ[MF|HMF][R|Y]DNE[B|J] QDNTFODZDZ EVW</span></p></div>
        </div><p>So probably not rotation like the first ever Cicada puzzle. The next puzzles used shifting even to the point of having a different shift of each character depending on some key (like we saw in the midi solve). However, we don&apos;t really have a obvious key thus far in this puzzle. We have however had reversed/rotated images quite often.</p><p>We can reverse these strings and nothing makes sense as <a href="https://theblob.org/rot.cgi?text=XWF+AEAEPGUOER+%5DK%7CC%5BFOE%5DZ%7CS%5B%5DGNI%7CGN%5BAEU&amp;ref=connortumbleson.com">proven</a> by another rot cipher on the reversed string, but there is a large difference of rotating a character after translation and prior.</p><p>We should try reversing the Gematria Primus and then try our rotation/shifts.</p><pre><code>&#x279C; php cicada app:translate

 Enter a sentence to translate:
 &gt; &#x16A2;&#x16E0;&#x16DD;&#x16CB;&#x16C7;&#x16A0;&#x16B3; &#x16B1;&#x16C7;&#x16A2;&#x16B7;&#x16C8;&#x16E0;&#x16E0; &#x16A0;&#x16B9;&#x16C9;

 Reverse the translation? (y/n) [n]:
 &gt; y

[IA|IO]FWPTEAD AT[IA|IO]OE[S|Z]FF EA[NG|ING]X</code></pre><p>However, sadly even after reversing the Gematria Primus and shifting the string in every possible way - no go. At this point we must have a key - we just don&apos;t know what it is. That would open us up to many different types of ciphers much like the Vigen&#xE8;re cipher used in the first puzzle.</p><p>The problem we face is our string is in runes - not text. We can&apos;t assume that our translation from runes to text is the right one. We know from the book codes that jump around to a variety of different characters - our code may not be as easy as straight forward or reverse.</p><p>We should build a script that takes a runic word and uses it to shift characters. Remember in the very first puzzle we shifted each letter increasing throughout the key wrapping around when done. The problem is we are either blind and missing the key to attempt shifting or we are meant to brute force it.</p><p>Lets collect all the words used in some recent Cicada things and start to build a word list. To start I&apos;ve extracted the <a href="https://github.com/iBotPeaches/cicada_3301/blob/master/wordlists/instar_emergence.txt?ref=connortumbleson.com">Instar Emergence</a> poem from the song, then one of the books (<a href="https://github.com/iBotPeaches/cicada_3301/blob/master/wordlists/voice_of_devil.txt?ref=connortumbleson.com">Voice of Devil</a>) from a previous puzzle.</p><p>Now lets run this through all the words we extracted and attempt a translation on the first rune line (<code>&#x16A2;&#x16E0;&#x16DD;&#x16CB;&#x16C7;&#x16A0;&#x16B3; &#x16B1;&#x16C7;&#x16A2;&#x16B7;&#x16C8;&#x16E0;&#x16E0; &#x16A0;&#x16B9;&#x16C9;</code>) we see above.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/02/bruteforce.png" class="kg-image" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" loading="lazy" width="1075" height="803" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/bruteforce.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/02/bruteforce.png 1000w, https://connortumbleson.com/content/images/2024/02/bruteforce.png 1075w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://github.com/iBotPeaches/cicada_3301/pull/33?ref=connortumbleson.com" rel="noreferrer"><span style="white-space: pre-wrap;">app:bruteforce-vigenere</span></a><span style="white-space: pre-wrap;"> (GitHub)</span></figcaption></figure><p>In the first output of this brute-force we see something interesting - towards the bottom <code>divinity</code> looks to spell something in English. So guess we got a hit from the song used in an earlier puzzle. It reads as <code>WELCOME WELCOME PIL</code> which appears to be the start of a valid sentence. It seems we&apos;ve found the key, even if brute-forcing felt a bit sour. Maybe we missed something with the magic square that resulted in &quot;divinity&quot;.</p><p>So lets start decoding this line by line.</p><ul><li><code>&#x16A2;&#x16E0;&#x16DD;&#x16CB;&#x16C7;&#x16A0;&#x16B3; &#x16B1;&#x16C7;&#x16A2;&#x16B7;&#x16C8;&#x16E0;&#x16E0; &#x16A0;&#x16B9;&#x16C9;</code> -&gt; <code>WEL[C|K]OME WEL[C|K]OME PIL</code></li><li><code>&#x16CF;&#x16B3;&#x16DA;&#x16E0; &#x16A3;&#x16D7; &#x16E0;&#x16C7; &#x16CF;&#x16B3;&#x16BE;&#x16AB; &#x16DD;&#x16D7;&#x16E1;</code> -&gt; <code>OEAME BN EO[S|Z] OEAH[S|Z] EONJ</code></li></ul><p>We&apos;ve already missed something - the 2nd line doesn&apos;t appear to be valid. However, I broke the lines based visually on the book above. Maybe we need to break to a newline on a specific rune (2 dots, 4 dots, etc).</p><pre><code>&#x16A2;&#x16E0;&#x16DD;&#x16CB;&#x16C7;&#x16A0;&#x16B3; &#x16B1;&#x16C7;&#x16A2;&#x16B7;&#x16C8;&#x16E0;&#x16E0; &#x16A0;&#x16B9;&#x16C9;&#x16CF;&#x16B3;&#x16DA;&#x16E0; &#x16A3;&#x16D7; &#x16E0;&#x16C7; &#x16CF;&#x16B3;&#x16BE;&#x16AB; &#x16DD;&#x16D7;&#x16E1;&#x16E1;&#x16D7;&#x16D7;&#x16B9; &#x16AB;&#x16C8;&#x16DE;&#x16DD;&#x16E1;&#x16B1; &#x16A9;&#x16E0; &#x16E1;&#x16D7;&#x16C1; &#x16A0;&#x16A0; &#x16D6;&#x16A2;&#x16DD; &#x16C7;&#x16A2;&#x16AB;
WEL[C|K]OME WEL[C|K]OME PILGRIM TO THE GREAT JOURNEY TOWARD THE END OG HFJ OLN</code></pre><p>That looks to work much better, but we oddly fail decoding somewhere around the 62nd character. We don&apos;t have any permutations left with the spacing so time for some research on the cipher. A few Google searches and we discover that a ciphertext can contain a manual reset that occurs at seemingly random points in the string.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/02/bugged-62.png" class="kg-image" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" loading="lazy" width="1319" height="497" srcset="https://connortumbleson.com/content/images/size/w600/2024/02/bugged-62.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/02/bugged-62.png 1000w, https://connortumbleson.com/content/images/2024/02/bugged-62.png 1319w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">debugging tool</span></figcaption></figure><p>So if we set a break point on the character that looks bugged - we see something interesting. Our shifted character becomes (<code>G</code>) which is invalid, but the original character prior to shift was (<code>F</code>) which seems correct. However, if we make an exception for <code>F</code> the decryption falls apart badly.</p><ul><li><code>WEL[C|K]OFA B[S|Z]WAEEOEM FY[IA|IO]MJI[IA|IO]</code></li></ul><p>As you can see - this time since we made an exception for <code>F</code> it crashed way earlier. Now we know its the 62nd character by the time we&apos;ve converted out of runes, but runes can decrypt to multiple characters. Therefore instead I think its safer for a test to use the runic index (<code>59</code>) for this test instead of the output character number.</p><ul><li><code>WEL[C|K]OME WEL[C|K]OME PILGRIM TO THE GREAT JOURNEY TOWARD THE END OF ALL TH[NG|ING][S|Z]</code></li></ul><p>Sure enough that appeared to work. We can make sense of the string in its entirety. Sadly this appears to be a time consuming task, as we paste the entire string into our decoder and we only get a bit further until the string falls apart.</p><pre><code>WEL[C|K]OME WEL[C|K]OME PILGRIM TO THE GREAT JOURNEY TOWARD THE END OF ALL TH[NG|ING][S|Z] IT I[S|Z] NOT AN EA[S|Z]Y TRIP BUT MMEA</code></pre><p>It appears we might have more than one index to skip our decoding. Each time the string looks to fall apart - we will add that runic index to our list. The 2nd time it appeared to be index (<code>95</code>). When we are done setting break points and developing a list of indexes we get all the runic indexes to skip and string of:</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">These indexes are based on the spacing of the runes in this <a href="https://github.com/iBotPeaches/cicada_3301/blob/master/liber_primus/markdown/03.md?ref=connortumbleson.com" rel="noreferrer">file</a>.</div></div><ul><li>59, 95, 108, 170, 204, 205, 312</li></ul><pre><code>WEL[C|K]OME WEL[C|K]OME PILGRIM TO THE GREAT JOURNEY TOWARD THE END OF ALL TH[NG|ING][S|Z] IT I[S|Z] NOT AN EA[S|Z]Y TRIP BUT FOR THO[S|Z]E WHO FIND THEIR WAY HERE IT I[S|Z] A NE[C|K]E[S|Z][S|Z]ARY ONE ALO[NG|ING] THE WAY YOU WILL FIND AN END TO ALL [S|Z]TRUGGLE AND [S|Z]UFFER[NG|ING] YOUR INNO[C|K]EN[C|K]E YOUR ILLU[S|Z][IA|IO]N[S|Z] YOUR [C|K]ERTAINTY AND YOUR REALITY ULTIMATELY YOU WILL DI[S|Z][C|K]OUER AN END TO [S|Z]ELF</code></pre><p>We don&apos;t really need to run this through our permutation code because its pretty clear what its supposed to say.</p><blockquote>Welcome<br>Welcome pilgrim to the great journey towards the end of all things.<br>It is not an easy trip, but for those who find their way here it is a necessary one.<br>Along the way you will find an end to all the struggle and suffering.<br>Your innocence, your illusions, your certainty, and your reality.<br>Ultimately you will discover an end to self.</blockquote><p>Now remember back in Part 1 it called out - <code>DO NOT EDIT OR CHANGE THIS BOOK</code>, which we did here. When I wrote the brute-force code - it crashed immediately because we had no translation for the letter V. I just treated it as the same rune as letter U. So I am seriously doubting the only way to obtain the key <code>divinity</code> was brute-force - we must be missing something.</p><p>Onward to the 2nd page above - lets hope that its the same key and cipher we just discovered. Sadly in one quick test of the first line you can see below it didn&apos;t.</p><ul><li><code>&#x16D7;&#x16A3; &#x16A3;&#x16C7; &#x16AB;&#x16C9;&#x16B1;&#x16C4;&#x16CB;&#x16D6; &#x16D6;&#x16B9;&#x16BE; &#x16DE;&#x16C4;&#x16A2;&#x16CB;&#x16C9;&#x16A3;&#x16CF;</code> -&gt; <code>AET AETH TRBX[NG|ING]H BYF PAR[NG|ING]RAEG</code></li></ul><p>However, the 4th page starts with the 4 dot runic symbol. It appears like a book to just be a continuation of the last page. We should try and add these runic symbols at the end of page 3 - perhaps the shift continues as-is into page 4.</p><ul><li><code>&#x16D7;&#x16A3; &#x16A3;&#x16C7; &#x16AB;&#x16C9;&#x16B1;&#x16C4;&#x16CB;&#x16D6; &#x16D6;&#x16B9;&#x16BE; &#x16DE;&#x16C4;&#x16A2;&#x16CB;&#x16C9;&#x16A3;&#x16CF;</code> -&gt; <code>IT I[S|Z] THROUGH THI[S|Z] PILGRIM</code></li></ul><p>This appeared to be the solution. Page 3 and 4 continue (perhaps even more pages) on the same shift of <code>divinity</code> with presumably more indexes to skip. So lets start with combining all the runes in one solid line and go back to the slog of running through this decryption and manually flagging indexes to skip when the translation appears to break.</p><pre><code>&#x16A2;&#x16E0;&#x16DD;&#x16CB;&#x16C7;&#x16A0;&#x16B3; &#x16B1;&#x16C7;&#x16A2;&#x16B7;&#x16C8;&#x16E0;&#x16E0; &#x16A0;&#x16B9;&#x16C9;&#x16CF;&#x16B3;&#x16DA;&#x16E0; &#x16A3;&#x16D7; &#x16E0;&#x16C7; &#x16CF;&#x16B3;&#x16BE;&#x16AB; &#x16DD;&#x16D7;&#x16E1;&#x16E1;&#x16D7;&#x16D7;&#x16B9; &#x16AB;&#x16C8;&#x16DE;&#x16DD;&#x16E1;&#x16B1; &#x16A9;&#x16E0; &#x16E1;&#x16D7;&#x16C1; &#x16A0;&#x16A0; &#x16D6;&#x16A2;&#x16DD; &#x16C7;&#x16A2;&#x16AB; &#x16A3;&#x16C8; &#x16B1;&#x16AB; &#x16C1;&#x16C8;&#x16AB; &#x16B3;&#x16AB; &#x16AB;&#x16BE;&#x16B9; &#x16D2;&#x16C9;&#x16D7;&#x16DE; &#x16B1;&#x16E1;&#x16C1; &#x16A0;&#x16C8;&#x16B3; &#x16C7;&#x16C7;&#x16AB;&#x16B3; &#x16B1;&#x16A6;&#x16C8; &#x16A0;&#x16C4;&#x16D7;&#x16A9; &#x16C7;&#x16B3;&#x16B9;&#x16E1; &#x16D2;&#x16AB;&#x16B9; &#x16D2;&#x16E0;&#x16DA;&#x16CB; &#x16B1;&#x16A3; &#x16C4;&#x16AB; &#x16B1; &#x16D7;&#x16B3;&#x16A6;&#x16C7;&#x16AB;&#x16CF;&#x16B3;&#x16C8;&#x16B9; &#x16D7;&#x16B7;&#x16C7; &#x16B3;&#x16DD;&#x16C8;&#x16A2; &#x16C7;&#x16B3; &#x16B1;&#x16D6;&#x16B9; &#x16E1;&#x16C8;&#x16C1; &#x16D2;&#x16A3;&#x16D2;&#x16C9; &#x16A0;&#x16DA;&#x16C1;&#x16B1; &#x16B1;&#x16D7; &#x16B3;&#x16B7;&#x16D2; &#x16A3;&#x16B1; &#x16B3;&#x16A0;&#x16A2; &#x16A6;&#x16C8;&#x16E1;&#x16C4;&#x16B9;&#x16CF;&#x16A0;&#x16E0; &#x16C4;&#x16B7;&#x16D2; &#x16AB;&#x16A6;&#x16A0;&#x16A0;&#x16E0;&#x16C8;&#x16A6; &#x16C8;&#x16A0;&#x16AA;&#x16C9; &#x16C4;&#x16D7;&#x16D6;&#x16C8;&#x16DD;&#x16CB;&#x16A9;&#x16CB;&#x16D7; &#x16B9;&#x16C7;&#x16C4;&#x16DA; &#x16B9;&#x16C9;&#x16A2;&#x16A6;&#x16AB;&#x16B9;&#x16D7;&#x16A6; &#x16DE;&#x16A3;&#x16C4;&#x16B3; &#x16CB;&#x16E1;&#x16C9;&#x16A9;&#x16DD;&#x16B1;&#x16D7;&#x16D2;&#x16B9; &#x16B1;&#x16D7;&#x16C1; &#x16DE;&#x16A3;&#x16C4;&#x16B3; &#x16C9;&#x16BB;&#x16A2;&#x16A3;&#x16C8;&#x16DA; &#x16C4;&#x16DD;&#x16A3;&#x16D7;&#x16A0;&#x16C4;&#x16C8;&#x16C7;&#x16A2;&#x16E1; &#x16B9;&#x16C7;&#x16C4; &#x16DE;&#x16B9;&#x16C9;&#x16A2; &#x16AA;&#x16DA;&#x16AA;&#x16CB;&#x16D7;&#x16E1;&#x16C7;&#x16C9; &#x16AB;&#x16D7; &#x16E1;&#x16D7;&#x16C1; &#x16C8;&#x16A3; &#x16AB;&#x16D7;&#x16A2;&#x16A0; &#x16D7;&#x16A3; &#x16A3;&#x16C7; &#x16AB;&#x16C9;&#x16B1;&#x16C4;&#x16CB;&#x16D6; &#x16D6;&#x16B9;&#x16BE; &#x16DE;&#x16C4;&#x16A2;&#x16CB;&#x16C9;&#x16A3;&#x16CF;&#x16D6;&#x16CF;&#x16D7; &#x16C7;&#x16B1;&#x16A3; &#x16DE;&#x16CB; &#x16BE;&#x16D6;&#x16AB;&#x16DE;&#x16E1; &#x16C8;&#x16D2;&#x16A2;&#x16BE;&#x16E0;&#x16DD;&#x16C4;&#x16E1;&#x16AB; &#x16C4;&#x16B7;&#x16D2; &#x16C8;&#x16A6;&#x16C9; &#x16C8;&#x16BE;&#x16B9;&#x16B9;&#x16C1;&#x16DA;&#x16D7;&#x16AB; &#x16DA;&#x16C8;&#x16D2;&#x16A2;&#x16A9;&#x16E0;&#x16E1; &#x16B1;&#x16E1;&#x16E0;&#x16A0; &#x16B1;&#x16B1;&#x16C7;&#x16C4;&#x16D7; &#x16B1;&#x16D7;&#x16C1; &#x16DE;&#x16A3;&#x16C4; &#x16BB;&#x16DA;&#x16A0;&#x16A2; &#x16C4;&#x16A2;&#x16E1;&#x16DA;&#x16A6;&#x16E0; &#x16C7;&#x16C4;&#x16A9;&#x16C7;&#x16B1;&#x16B1;&#x16D7; &#x16A2;&#x16D7;&#x16CB;&#x16B3; &#x16E0;&#x16C7; &#x16DA;&#x16C1;&#x16AB;&#x16AB;&#x16B3;&#x16DA; &#x16B9;&#x16C1; &#x16DA;&#x16CF; &#x16C8;&#x16D6;&#x16A2;&#x16C8; &#x16E0;&#x16E1;&#x16C8;&#x16A6;&#x16CF;&#x16D2; &#x16CF;&#x16D7;&#x16D6; &#x16A2;&#x16DA;&#x16A9;&#x16DA;&#x16D6; &#x16C7;&#x16C4;&#x16C8; &#x16A2;&#x16E0; &#x16DA;&#x16B3;&#x16B7; &#x16E0;&#x16B7;&#x16CB;&#x16E1;&#x16CF;&#x16D7; &#x16D2;&#x16D7;&#x16B1;&#x16A6;&#x16A0;&#x16C8; &#x16B9;&#x16B1;&#x16C4; &#x16B1;&#x16C9;&#x16B3; &#x16DD; &#x16C4;&#x16E0;&#x16DF; &#x16C4;&#x16D6;&#x16A3;&#x16D7; &#x16DE;&#x16A3;&#x16C4;&#x16B3;&#x16AB;&#x16E1;&#x16A2;&#x16A0; &#x16C8;&#x16A0;&#x16AA; &#x16B3;&#x16B3;&#x16E0; &#x16B1; &#x16A2;&#x16C4;&#x16B1; &#x16AA;&#x16D7;&#x16D2;&#x16C8; &#x16B7;&#x16C8;&#x16D2;&#x16A2;&#x16BE;&#x16E0;&#x16DD;&#x16A0; &#x16BE;&#x16C9;&#x16D6; &#x16A3;&#x16B7;&#x16C1;&#x16E0;&#x16DD;&#x16A2;&#x16D7;&#x16CF;&#x16B3;&#x16B7;&#x16E0;&#x16E0; &#x16C4;&#x16AB; &#x16D2;&#x16C8;&#x16B9;&#x16DE; &#x16A0;&#x16A3;&#x16C9; &#x16AB;&#x16A2;&#x16A0; &#x16C7;&#x16C4;&#x16C8; &#x16C9;&#x16DA;&#x16A6;&#x16E0;&#x16AA; &#x16DA;&#x16A6; &#x16B3;&#x16A3;&#x16A2;&#x16E1; &#x16B3;&#x16D6; &#x16DA;&#x16AB;&#x16C7;&#x16C1;&#x16C9;&#x16A6;&#x16CB;&#x16AB;&#x16BB;&#x16AB; &#x16A6;&#x16A3;&#x16A0;&#x16DA;&#x16B3;&#x16D6;&#x16B1; &#x16C8;&#x16A0;&#x16AA;&#x16C9; &#x16B1;&#x16D2;&#x16D6; &#x16AB;&#x16B3;&#x16D2;&#x16A0;</code></pre><p>This time we expand our indexes to skip shifting of the following:</p><ul><li>59, 95, 108, 170, 204, 205, 312, 523, 551, 578, 638</li></ul><p>Which now generates the additional block of:</p><pre><code>IT I[S|Z] THROUGH THI[S|Z] PILGRIMAGE THAT WE [S|Z]HAPE OUR[S|Z]ELUE[S|Z] AND OUR REALITIE[S|Z] JOURNEY DEEP WITHIN AND YOU WILL ARRIUE OUT[S|Z]IDE LI[C|K]E THE IN[S|Z]TAR IT I[S|Z] ONLY THROUGH GO[NG|ING] WITHIN THAT WE MAY EMERGE WID[S|Z]OM YOU ARE A BE[NG|ING] UNTO YOUR[S|Z]ELF YOU ARE A LAW UNTO YOUR[S|Z]ELF EA[C|K]H INTELLIGEN[C|K]E I[S|Z] HOLY FOR ALL THAT LIUE[S|Z] I[S|Z] HOLY AN IN[S|Z]TRU[C|K]T[IA|IO]N [C|K]OMMAND YOUR OWN [S|Z]ELF</code></pre><p>Or cleaned up into:</p><blockquote>It is through this pilgrimage that we shape ourselves and our realities<br>Journey deep within and you will arrive outside<br>Like the Instar it is only through going within that we may emerge.<br><br>Wisdom<br>You are a being onto yourself<br>You are a law onto yourself<br>Each intelligence is holy<br>For all that lives is holy<br>An instruction: Command your own self</blockquote><p>It was nice for this page to call out the Instar Emergence which helps solidify our key (<code>divinity</code>) - remember this key came from that song:</p><figure class="kg-card kg-code-card"><pre><code>The Instar Emergence

Parable 1,595,277,641 
Like the instar, tunneling to the surface
We must shed our own circumferences;
Find the divinity within and emerged</code></pre><figcaption><p><a href="https://connortumbleson.com/2021/01/25/the-cicada-3301-mystery-puzzle-2/" rel="noreferrer"><span style="white-space: pre-wrap;">Puzzle 2</span></a></p></figcaption></figure><p>However saying all of that - we finally understand these two pages and haven&apos;t appeared to discover anything to progress this puzzle forward. So lets jump back to the data embedded in the images themselves. The 1st page (Page 3 of Liber Primus) had a PGP message contained within the payload. </p><p>If we examine that payload - we get a message and payload.</p><figure class="kg-card kg-code-card"><pre><code>-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Let the text guide you.

Good luck.

3301

ffd8ffe000104a46494600010101019001900000ffdb0043000302020202
// snipped</code></pre><figcaption><p><a href="https://github.com/iBotPeaches/cicada_3301/blob/master/messages/2014/let-the-text-guide-you.asc?ref=connortumbleson.com" rel="noreferrer"><span style="white-space: pre-wrap;">full file (GitHub)</span></a></p></figcaption></figure><p>So we pull that snippet of hex out of the signed message and proceed to run our basic test - convert to binary, run binwalk.</p><pre><code>&#x279C; xxd -r -p payload payload.bin
&#x279C; binwalk payload.bin 

DECIMAL       HEXADECIMAL     DESCRIPTION
----------------------------------------------------
0             0x0             JPEG image data, JFIF standard 1.01</code></pre><p>Sure enough we have an image. Once extracted it becomes:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/02/rune-onion.png" class="kg-image" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" loading="lazy" width="587" height="109"><figcaption><span style="white-space: pre-wrap;">Page 4 Liber Primus outguess data</span></figcaption></figure><p>Now we have a runic short string - lets get this into text and run it through our translation code.</p><pre><code>&#x16A6;&#x16D7;&#x16DE;&#x16C7;&#x16A0;&#x16D7;&#x16AA;&#x16B1;5&#x16A2;&#x16AB;&#x16DD;&#x16B1;&#x16DD;3 &#x16E0;&#x16D7;&#x16C7;&#x16A0;&#x16E1;</code></pre><p>Unfortunately in the following tests - all failed.</p><ul><li>Pure translation</li><li>Pure reversed translation</li><li>Vigenere cipher with <code>divinity</code> key.</li><li>Vigenere reversed cipher with <code>divinity</code> key.</li><li>Brute force with existing word lists.</li></ul><p>The last few pages decoded though had some very interesting Cicada 3301 words. Lets load those pages into our word lists. This is a useless endeavor as we are presumably based on the string size looking for <code>{random}.onion</code> so we can&apos;t really tell whats right or wrong unless we see &quot;onion&quot; at end.</p><p>However, the hint is &quot;<em>let the text guide you</em>&quot; - does that mean the runic text we just translated? What if the key is the entire decoded text? It couldn&apos;t possibly be that because the ciphertext isn&apos;t that long and the Vigenere cipher can&apos;t leverage a key that is larger than the decrypted text.</p><p>So lets start with just the first few words like - <code>welcomewelcomepilgrimtothegreat</code>. This fails miserably, but we duplicated <code>welcome</code> and included red words.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/02/Screenshot-from-2024-02-04-15-07-05.png" class="kg-image" alt="The Cicada 3301 Mystery (Puzzle 3 Solve) - Part 2" loading="lazy" width="371" height="164"></figure><p>There is only one red word on this page, so perhaps we skip it. Lets try using <code>welcomepilgrimtothegreat</code>.</p><pre><code>&#x279C; php cicada app:vigenere

 Enter a sentence to translate:
 &gt; &#x16A6;&#x16D7;&#x16DE;&#x16C7;&#x16A0;&#x16D7;&#x16AA;&#x16B1;5&#x16A2;&#x16AB;&#x16DD;&#x16B1;&#x16DD;3 &#x16E0;&#x16D7;&#x16C7;&#x16A0;&#x16E1;

 Enter the key.:
 &gt; welcomepilgrimtothegreat

Translation: AUOWYFGL5L[C|K][S|Z]FJ3 NON[IA|IO]N</code></pre><p>This looks very promising, we can see <code>ONION</code> at the end of the string. We probably don&apos;t need a key that long, but it worked. Lets run our permutation code and toss out any that don&apos;t result in <code>.onion</code>.</p><pre><code>AUOWYFGL5LCSFJ3N ONION
AUOWYFGL5LCZFJ3N ONION
AUOWYFGL5LKSFJ3N ONION
AUOWYFGL5LKZFJ3N ONION</code></pre><p>With only 4 chances this won&apos;t be hard. However, none of them worked. What interests me in this string though is we have both <code>U</code> and <code>F</code>, both of which have acted weirdly throughout this puzzle.</p><ul><li><code>U</code> is what we mapped <code>V</code> towards in our word list code.</li><li><code>F</code> is what normally caused the decoding to skip a shift.</li></ul><p>So lets go again and do a ton more permutations on this until the domain is valid. We will swap <code>[U/V]</code> for another set of permutations. Sure enough it was the <code>U/V</code> switch as one of those domains resolved correctly.</p><ul><li><code>&#x16A6;&#x16D7;&#x16DE;&#x16C7;&#x16A0;&#x16D7;&#x16AA;&#x16B1;5&#x16A2;&#x16AB;&#x16DD;&#x16B1;&#x16DD;3 &#x16E0;&#x16D7;&#x16C7;&#x16A0;&#x16E1;</code> -&gt; <code>avowyfgl5lkzfj3n.onion</code></li></ul><p>We finally had a new onion, but we will discuss the 4th onion (and more) in Part 3 later on.</p><hr><ul><li><a href="https://connortumbleson.com/2019/09/30/the-cicada-3301-mystery/">Puzzle 1</a> (2012)</li><li><a href="https://connortumbleson.com/2021/04/12/the-cicada-3301-mystery-puzzle-1-extra/" rel="noreferrer">Puzzle 1 - 2nd Chance</a> (2012)</li><li><a href="https://connortumbleson.com/2021/01/25/the-cicada-3301-mystery-puzzle-2/">Puzzle 2</a> (2013)</li><li><a href="https://connortumbleson.com/2021/02/15/the-cicada-3301-mystery-puzzle-3-part1/" rel="noreferrer">Puzzle 3 - Part 1</a> (2014)</li><li>Puzzle 3 - Part 2 (2014) - You are here.</li><li>Puzzle 3 - Part 3 (2014) - Coming Soon.</li></ul>]]></content:encoded></item><item><title><![CDATA[AI & Cicada 3301]]></title><description><![CDATA[In 2024 we take a look at the Cicada puzzle again - this time with the lens of AI.]]></description><link>https://connortumbleson.com/2024/01/29/ai-cicada-3301/</link><guid isPermaLink="false">65b5947521d81454387745fa</guid><category><![CDATA[Cicada 3301]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 29 Jan 2024 03:30:07 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2024/01/83cf996e-ace5-4c2f-a602-b1610689bd4e.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/01/83cf996e-ace5-4c2f-a602-b1610689bd4e-1.png" class="kg-image" alt="AI &amp; Cicada 3301" loading="lazy" width="1792" height="1024" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/83cf996e-ace5-4c2f-a602-b1610689bd4e-1.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/83cf996e-ace5-4c2f-a602-b1610689bd4e-1.png 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/83cf996e-ace5-4c2f-a602-b1610689bd4e-1.png 1600w, https://connortumbleson.com/content/images/2024/01/83cf996e-ace5-4c2f-a602-b1610689bd4e-1.png 1792w" sizes="(min-width: 720px) 720px"></figure><img src="https://connortumbleson.com/content/images/2024/01/83cf996e-ace5-4c2f-a602-b1610689bd4e.png" alt="AI &amp; Cicada 3301"><p>A few weeks ago I got the urge to work on some <a href="https://connortumbleson.com/tag/cicada-3301/" rel="noreferrer">Cicada 3301</a> things, but the test of time has caused a good deal of research and sources to vanish. The 2014 puzzle remains unsolved, but every once in awhile a YouTube video, podcast or news article attracts some old/new faces back to the puzzle.</p><p>I&apos;ve been reworking the puzzles one by one - slowly getting to the point that I&apos;m in unsolved territory. I find solving previously solved puzzles, but forcing myself to just use the source material and attempt solves myself are the most rewarding. Lots of guides jump rather quickly or go from one step to another with no description on why.</p><p>When you work to solve them without just following an older guide - you understand the puzzles far better. So I&apos;ve started working on the puzzles again, but wanted to leverage the type of technology available in this day in age.</p><p>So I decided to build my own tools for understanding the Liber Primus as well as leveraging AI models to help me in this journey. This post is describing some of that success.</p><hr><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-text">While I wrote this post - a good deal of the graphics and quotes were generated from OpenAI GPT4 between December 2023 and January 2024. This was an experiment to see how AI could help Cicada 3301 research and not an attempt to move towards AI for future blog content generation.</div></div><p>At first I wanted to refresh my AI prompt handling and start small with the magic square available in the 2014 puzzle.</p><div class="kg-card kg-toggle-card" data-kg-toggle-state="close">
            <div class="kg-toggle-heading">
                <h4 class="kg-toggle-heading-text"><span style="white-space: pre-wrap;">AI Prompt: Magic Square</span></h4>
                <button class="kg-toggle-card-icon">
                    <svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                        <path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/>
                    </svg>
                </button>
            </div>
            <div class="kg-toggle-content"><p><span style="white-space: pre-wrap;">272 138 341 131 151</span><br><span style="white-space: pre-wrap;">366 199 130 320 18</span><br><span style="white-space: pre-wrap;">226 245 91 245 226</span><br><span style="white-space: pre-wrap;">18 320 130 199 366</span><br><span style="white-space: pre-wrap;">151 131 341 138 272</span><br><br><span style="white-space: pre-wrap;">Can you determine anything from these numbers? What makes them important?</span></p></div>
        </div><p>A simple warm up and it excelled perfectly on 1st try.</p><blockquote>The numbers you&apos;ve presented form a 5x5 grid. This arrangement and the specific numbers could imply several things, such as being part of a puzzle, a mathematical problem, or a coded message. Let&apos;s analyze a few possibilities:</blockquote><blockquote><strong>1) Magic Square:</strong> A magic square is a grid where the sum of numbers in each row, column, and sometimes diagonals is the same. We can check if this grid forms a magic square.</blockquote><blockquote><strong>2) Pattern or Sequence:</strong> There might be a numerical pattern or sequence within the grid, such as arithmetic or geometric sequences, or some other mathematical relationship between the numbers.</blockquote><blockquote><strong>Encoded Message:</strong> It could be a form of coded message where numbers represent letters or other symbols, commonly used in cryptography.</blockquote><blockquote>Let&apos;s first check if this is a magic square by summing the rows, columns, and diagonals. If the sums are equal, it&apos;s a magic square. If not, we&apos;ll consider other possibilities. I&apos;ll calculate the sums now.</blockquote><blockquote>The sums of the rows, columns, and both diagonals in your grid are all equal to 1033. <strong>This indicates that the grid is a magic square</strong>. A magic square is a square grid of numbers where the sum of the numbers in each row, column, and both main diagonals is the same. This particular property makes your grid of numbers significant and interesting from a mathematical perspective. Magic squares have been studied for centuries and are often associated with mathematical puzzles and recreational mathematics.</blockquote><p>Of course I knew this was a magic square before asking, but I was wondering if OpenAI could deliver with one simple prompt. So I went onward to see how well it could recap what Cicada 3301 even is.</p><div class="kg-card kg-toggle-card" data-kg-toggle-state="close">
            <div class="kg-toggle-heading">
                <h4 class="kg-toggle-heading-text"><span style="white-space: pre-wrap;">AI Prompt: What is Cicada 3301</span></h4>
                <button class="kg-toggle-card-icon">
                    <svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                        <path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/>
                    </svg>
                </button>
            </div>
            <div class="kg-toggle-content"><p><span style="white-space: pre-wrap;">What is Cicada 3301?</span></p></div>
        </div><blockquote>Cicada 3301 is a name given to an enigmatic organization that, on three occasions between 2012 and 2014, posted a series of complex puzzles and alternate reality games online, ostensibly to recruit highly intelligent individuals. The puzzles utilized a wide range of knowledge areas including cryptography, stenography, data security, and internet anonymity.</blockquote><blockquote>The first puzzle appeared on January 4, 2012, on a message board, inviting participants to find a hidden message within an image. This led to a series of other challenges, involving code-breaking, book references, hidden websites, and physical clues placed in various locations around the globe. The puzzles often led to more questions than answers, with many participants collaborating online to try to solve them.</blockquote><blockquote>The true purpose and the organization behind Cicada 3301 remain shrouded in mystery. Speculation about its nature ranges from it being a recruitment tool for a spy agency, to a private think tank, to a sophisticated alternate reality game created simply for the challenge. The organization itself stated that its goal was to find &quot;intelligent individuals&quot; and that it was not connected to any commercial interests, but these claims have not been verified.</blockquote><blockquote>Despite extensive interest and investigation, the identities of the creators or the participants who successfully completed the puzzles have not been publicly revealed, nor has the nature of the organization been definitively established. This has added to the allure and enduring mystery of Cicada 3301.</blockquote><p>So at this point I wanted to work on its skills given a page of the Liber Primus. While it knew the book was runic in nature - it suffered badly at attempting OCR based transcriptions. So I started working on a little <a href="https://github.com/iBotPeaches/cicada_3301?ref=connortumbleson.com" rel="noreferrer">open source project</a> to help automate my prompt building.</p><p>So I started with at first copying runes (in their Unicode component).</p><div class="kg-card kg-toggle-card" data-kg-toggle-state="close">
            <div class="kg-toggle-heading">
                <h4 class="kg-toggle-heading-text"><span style="white-space: pre-wrap;">AI Prompt: Translate Runes</span></h4>
                <button class="kg-toggle-card-icon">
                    <svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                        <path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/>
                    </svg>
                </button>
            </div>
            <div class="kg-toggle-content"><p><span style="white-space: pre-wrap;">&#x16CB;&#x16A9;&#x16D7;&#x16D6;&#x2022;&#x16B9;&#x16C1;&#x16CB;&#x16DE;&#x16A9;&#x16D7;</span><br><span style="white-space: pre-wrap;">&#x16A6;&#x16D6;&#x2022;&#x16C8;&#x16B1;&#x16C1;&#x16D7;&#x16D6;&#x16CB;&#x2022;&#x16AA;&#x16B1;&#x16D6;&#x2022;&#x16CB;&#x16AA;&#x16B3;&#x16B1;&#x16D6;&#x16DE;</span><br><span style="white-space: pre-wrap;">&#x16A6;&#x16D6;&#x2022;&#x16CF;&#x16A9;&#x16CF;&#x16C1;&#x16D6;&#x16BE;&#x16CF;&#x2022;&#x16A0;&#x16A2;&#x16BE;&#x16B3;&#x16CF;&#x16E1;&#x16BE;&#x2022;&#x16C1;&#x16CB;&#x2022;&#x16CB;&#x16AA;&#x16B3;&#x16B1;&#x16D6;&#x16DE;</span><br><span style="white-space: pre-wrap;">&#x16AA;&#x16DA;&#x16DA;&#x2022;&#x16A6;&#x16DD;&#x16CB;&#x2022;&#x16CB;&#x16BB;&#x16A9;&#x16A2;&#x16DA;&#x16DE;&#x2022;&#x16D2;&#x16D6;&#x2022;&#x16D6;&#x16BE;&#x16B3;&#x16B1;&#x16A3;&#x16C8;&#x16CF;&#x16D6;&#x16DE;</span><br><br><span style="white-space: pre-wrap;">&#x16B3;&#x16BE;&#x16A9;&#x16B9;&#x2022;&#x16A6;&#x16C1;&#x16CB; </span><br><br><span style="white-space: pre-wrap;">what does this say?</span></p></div>
        </div><blockquote>The text you&apos;ve provided is written in the Elder Futhark runic alphabet, which was used in ancient Germanic languages before the adoption of the Latin alphabet. Here&apos;s the transliteration and translation of the text:</blockquote><blockquote>&#x16CB;&#x16A9;&#x16D7;&#x16D6; (some) &#x2022;&#x16B9;&#x16C1;&#x16CB;&#x16DE;&#x16A9;&#x16D7; (wisdom)</blockquote><blockquote>&#x16A6;&#x16D6; (the) &#x2022;&#x16C8;&#x16B1;&#x16C1;&#x16D7;&#x16D6;&#x16CB; (primes) &#x2022;&#x16AA;&#x16B1;&#x16D6; (are) &#x2022;&#x16CB;&#x16AA;&#x16B3;&#x16B1;&#x16D6;&#x16DE; (sacred)</blockquote><blockquote>&#x16A6;&#x16D6; (the) &#x2022;&#x16CF;&#x16A9;&#x16CF;&#x16C1;&#x16D6;&#x16BE;&#x16CF; (totient) &#x2022;&#x16A0;&#x16A2;&#x16BE;&#x16B3;&#x16CF;&#x16E1;&#x16BE; (function) &#x2022;&#x16C1;&#x16CB; (is) &#x2022;&#x16CB;&#x16AA;&#x16B3;&#x16B1;&#x16D6;&#x16DE; (sacred)</blockquote><blockquote>&#x16AA;&#x16DA;&#x16DA; (all) &#x2022;&#x16A6;&#x16DD;&#x16CB; (things) &#x2022;&#x16CB;&#x16BB;&#x16A9;&#x16A2;&#x16DA;&#x16DE; (should) &#x2022;&#x16D2;&#x16D6; (be) &#x2022;&#x16D6;&#x16BE;&#x16B3;&#x16B1;&#x16A3;&#x16C8;&#x16CF;&#x16D6;&#x16DE; (encrypted)</blockquote><blockquote>&#x16B3;&#x16BE;&#x16A9;&#x16B9; (know) &#x2022;&#x16A6;&#x16C1;&#x16CB; (this)</blockquote><blockquote>In modern English, this can be translated as:</blockquote><blockquote>&quot;Some wisdom: The primes are sacred, The totient function is sacred, All things should be encrypted.</blockquote><blockquote>Know this.&quot;</blockquote><blockquote>This message seems to be referencing mathematical concepts like prime numbers and the Euler&apos;s totient function, both of which are fundamental in number theory and cryptography. The emphasis on encryption suggests a theme of data security or cryptographic wisdom.</blockquote><p>I was quite amazed by this, but the more I thought about it the less impressed I became. I gave the AI the Unicode components of the runes - that meant it probably had the entire Unicode character library catalogued. At that point it was probably a simple lookup table to turn runes to letters and spelling it out.</p><p>It would be more crazy if I could just give the AI the image of a page and see how it handled. This did not work in any shape in form in a few hours of prompt engineering.</p><p>I started with an image like so</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/01/line.png" class="kg-image" alt="AI &amp; Cicada 3301" loading="lazy" width="354" height="143"></figure><p>It started off just failing to OCR.</p><blockquote>It appears that the OCR process did not return any text, which can happen if the characters are not recognized or are outside the expected character set for the OCR engine.</blockquote><p>So I provided the rune set (U+16A0..U+16FF) in play and AI converted it to black and white and still failed.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/01/line_blackwhite.png" class="kg-image" alt="AI &amp; Cicada 3301" loading="lazy" width="354" height="143"></figure><blockquote>Given that the runes fall within the Unicode range U+16A0 to U+16FF, a different approach would be to use a rune recognition tool or software specifically designed for this purpose, or to manually map the image against a chart of rune characters within that Unicode block.</blockquote><blockquote>As my capabilities are based on general OCR technology, I&apos;m unable to directly transcribe these runes. However, if you have a reference for the runes, I could assist.</blockquote><p>So I started working on a little <a href="https://github.com/iBotPeaches/cicada_3301/blob/master/tool/app/Commands/BuildPrompt.php?ref=connortumbleson.com">extension</a> to my Cicada repository to formulate prompts to aid these discussions. It worked well with output like so:</p><pre><code>As I give you images - please return the transcription in a short reply. I&apos;m basically looking for the
unicode runes that are represented in the image. Please keep the spacing as I have it in the image, which may be
represented by dots between runes - consider those spaces.
&#x16A0; - F
&#x16A2; - U
&#x16A6; - TH
// ...</code></pre><p>However, even doing that - it was wrong.</p><blockquote>The transcription of the runes from the provided image is as follows:</blockquote><blockquote>&#x16D6;&#x16D7;&#x16A2;&#x16B1;&#x16DE;-&#x16C8;&#x16B1;&#x16C1;&#x16D7;&#x16A2;&#x16CB;-&#x16C8;&#x16BE;&#x16D6;&#x16A2;&#x16D7;&#x16D6;&#x16B1;&#x16A9;&#x16CF;&#x16C7;&#x16DD;&#x16B3;&#x16D6;&#x16B9;&#x16BE;&#x16D7;&#x16AB;&#x16B3;&#x16DA;&#x16DA;&#x16B9;&#x16D7;-&#x16BE;&#x16B9;&#x16D7;-&#x16B9;&#x16A6;&#x16B3;.</blockquote><p>There was only 7 runes in that, but it generated way more. As I pushed the machine to refine the results - it ended with giving up. Perhaps trying to hammer OCR behavior into AI without a solid amount of training isn&apos;t worth it.</p><p>It seems that the runes box size (size each character takes up) is wildly different for each runic character. I&apos;m not well versed in the OCR process or tools, but it seems <a href="https://github.com/dude123124144/Liber-Primus-Runes-OCR?ref=connortumbleson.com">one author</a> has been spending time on just that - refining an OCR process to review the pages.</p><p>So as I spent more time with GPT4 - I realized I wasn&apos;t really gaining anything in regards to progressing with Cicada research. However, it did excel massively in helping me remember the exact parameters to utilize when working with Perl and dd.</p><p>So while a bit of training and effort may prove to have a helpful Cicada 3301 AI helper - at the moment it only knows what is a quite search away.</p>]]></content:encoded></item><item><title><![CDATA[Crowd Funding Products]]></title><description><![CDATA[Crowd funding projects is hit or miss.]]></description><link>https://connortumbleson.com/2024/01/22/crowd-funding-products/</link><guid isPermaLink="false">65a41364bbf8300d2a5b7ecc</guid><category><![CDATA[Random]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 22 Jan 2024 03:30:24 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2024/01/photo-1556761175-5973dc0f32e7.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/01/photo-1556761175-5973dc0f32e7-1.jpeg" class="kg-image" alt="Crowd Funding Products" loading="lazy" width="2000" height="1125" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/photo-1556761175-5973dc0f32e7-1.jpeg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/photo-1556761175-5973dc0f32e7-1.jpeg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/photo-1556761175-5973dc0f32e7-1.jpeg 1600w, https://connortumbleson.com/content/images/2024/01/photo-1556761175-5973dc0f32e7-1.jpeg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@austindistel?ref=connortumbleson.com"><span style="white-space: pre-wrap;">Austin Distel</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><img src="https://connortumbleson.com/content/images/2024/01/photo-1556761175-5973dc0f32e7.jpeg" alt="Crowd Funding Products"><p>A long time ago in my years of college the popularity of funding projects was pretty large. Perhaps it was the websites and &quot;scene&quot; I hung out in, but I started my funding with the Pebble watch.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/01/pebble.png" class="kg-image" alt="Crowd Funding Products" loading="lazy" width="1259" height="673" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/pebble.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/pebble.png 1000w, https://connortumbleson.com/content/images/2024/01/pebble.png 1259w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://www.kickstarter.com/projects/getpebble/pebble-e-paper-watch-for-iphone-and-android/description?ref=connortumbleson.com" rel="noreferrer"><span style="white-space: pre-wrap;">Pebble Watch - Kickstarter</span></a></figcaption></figure><p>I watched the video and description of this product and was blown away - remember this is 2011/2012 at this point. The Apple Watch and Android Wear were still a few years out, maybe they even reacted to the release of this product.</p><p>Watching a video of a nerd explaining some technology and how they just needed a bit of crowd-funding to turn their proof of concept into a real product convinced me. I funded the project and followed along with each update. They kept us in the loop, provided explanations for changes or delays and about a year or more later - I got one in the mail.</p><p>I wired it up with my Android device and it was the nerd tool I wanted. At this point though more than a year had passed since I funded this and technology felt a bit dated with the fast moving &quot;smart&quot; device technology.</p><p>Sure I had a cool toy, but then I saw at CES that year that Pebble was launching a new designed Pebble called &quot;Pebble Steel&quot;. It was probably all the changes they wanted to make during the Kickstarter campaign, but couldn&apos;t due to causing shipping delays.</p><p>At that moment I felt a bit odd. Roughly by the time I got the item I paid for - the 2nd iteration was already announced a month out. Sure this is true for all products ever, but buying something and getting it a year or more later felt odd. So I ignored the Pebble Steel and just kept using my original Pebble.</p><p>At one point my Pebble broke - forgot exactly how, but it wouldn&apos;t turn on despite getting power. Going from never wearing a watch to wearing one - when it broke I felt no need to obtain another.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/01/pebble-campaigns.png" class="kg-image" alt="Crowd Funding Products" loading="lazy" width="1251" height="938" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/pebble-campaigns.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/pebble-campaigns.png 1000w, https://connortumbleson.com/content/images/2024/01/pebble-campaigns.png 1251w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Projects created by Pebble Technology</span></figcaption></figure><p>I watched from afar as Pebble launched two more extremely successful campaigns this time netting 20 million dollars instead of ~13. It was insane how much success these guys had with crowd-funding, but I stayed away. What happened next I&apos;m not truly positive how it all went down.</p><p>In short:</p><ul><li>Pebble filed for insolvency.</li><li>Fitbit acquired Pebble assets and intellectual property.</li><li>Fitbit somehow did not ingest debts.</li><li>All Pebble 2 shipments were cancelled and Kickstarter refunded.</li></ul><p>It was crazy and I didn&apos;t understand how a company with a few people somehow burned through millions of millions of dollars and collapsed. Turns out I didn&apos;t have the full story as between VC investors and fast booming of the company - a few decisions and desire to compete with the rising Apple/Google probably led to the demise.</p><p>So I felt a bit validated not supporting anything after the original Pebble Kickstarter, but then I stumbled upon the <a href="https://www.indiegogo.com/projects/canary-the-first-smart-home-security-device-for-everyone?ref=connortumbleson.com#/">Canary Indiegogo</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/01/canary.png" class="kg-image" alt="Crowd Funding Products" loading="lazy" width="806" height="640" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/canary.png 600w, https://connortumbleson.com/content/images/2024/01/canary.png 806w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://www.indiegogo.com/projects/canary-the-first-smart-home-security-device-for-everyone?ref=connortumbleson.com#/" rel="noreferrer"><span style="white-space: pre-wrap;">Canary - Indiegogo</span></a></figcaption></figure><p>As quick as I had promised to avoid crowd-funding, I folded and funded the Canary at $199 for a security system. My life was at the point of many computers and Xboxes and leaving home in the odd part of Arkansas I wanted some peace of mind. Probably was the place I lived and the unfortunate neighbors below, but when I came home to police at my complex a few times I realized I wanted to up the security in my apartment.</p><p>I was attracted to the idea that this worked with my smartphone and had no contracts or requirements to build onto the apartment. So in August of 2013 I pledged the product with an estimated delivery of May 2014, but I didn&apos;t get it until January of 2015. At that point I honestly forgot about it and I had moved addresses.</p><p>Either way though I loaded it up and enjoyed having a view back home no matter where I went. It tended to alert on the fan moving and sunlight entering the place so it got annoying getting alerts often, but other than that worked as expected.</p><p>What sadly happened is every few years a feature that was previously free was moved onto the premium plans and competitors were released. You could buy Google cameras now (which I did) or even brand-less cameras that just worked on your internal network. Others were far more angry than I was calling the crowd-funding a bait/switch, but I realized that all the logic they were doing with video feeds for free couldn&apos;t last forever. Ultimately unless you are Google and can lose money on a product to make money on others - they needed recurring revenue to pay for costs and didn&apos;t get it.</p><p>However, much like the Pebble waiting more than 18 months for a product you paid for is just not my cup of tea. By the time I got the product the Google Nest product line was booming and Ubiquiti looked excellent if I had a bit more money to spend. Not to mention learning month after month the product you funded get slightly changed and tweaked and delayed was a common pattern.</p><p>So I stopped supporting Canary and basically stopped supporting crowd-funding until March of 2023 when I stumbled upon The Flux Keyboard.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/01/flux.png" class="kg-image" alt="Crowd Funding Products" loading="lazy" width="1304" height="638" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/flux.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/flux.png 1000w, https://connortumbleson.com/content/images/2024/01/flux.png 1304w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://www.kickstarter.com/projects/fluxkeyboard/flux-keyboard-the-keyboard-reinvented?ref=connortumbleson.com" rel="noreferrer"><span style="white-space: pre-wrap;">Flux Keyboard - Kickstarter</span></a></figcaption></figure><p>I&apos;m not sure what enticed me to pledge this, but seeing how I put zero effort into my keyboards and others in my position are quite addicted to their design/type/feel I saw something that looked cool in my eyes.</p><p>However, much like has been the pattern for other projects we are currently in the phase of delays and delays. They were originally slated to ship in November of 2023, which became December 2023, then January 2024, then February, then March and now April 2024. Not only has time been extended, but the product continues to have changes that make it less and less what was promised.</p><p>Folks are upset that there are no videos and lack of progress. While monthly updates occur they are on the last day of the month and tend to carry sad news with no rich media. I&apos;ll admit I&apos;m worried that it&apos;ll be another gimmick that serves no real purpose in daily usage by the time it shows up. If running by my luck with my previous two crowdfunding projects it&apos;ll probably arrive in late 2024.</p><p>A short video showing some pre-production units and discussing the challenges would go a long way for this company. Nothing like the start of a 6 month delay with nothing but text and a few rendered images as the reason for the delay.</p><hr><p>I promised to not crowdfund things after the Pebble and Canary, but I folded for the Flux Keyboard. I&apos;ll learn quite soon whether to reinforce that thought to avoid crowd-funding or I&apos;ll own a cool keyboard and find something else to pledge.</p>]]></content:encoded></item><item><title><![CDATA[Apktool v2.9.3 Released]]></title><description><![CDATA[A follow up hot-fix has been released on the v2.9.x release to fix a path traversal fix isolated to the Windows platform.]]></description><link>https://connortumbleson.com/2024/01/20/apktool-v2-9-3-released/</link><guid isPermaLink="false">65abb52d21d814543877435f</guid><category><![CDATA[Apktool]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Sat, 20 Jan 2024 12:20:09 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2024/01/apktool_293.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/01/apktool_293-1.png" class="kg-image" alt="Apktool v2.9.3 Released" loading="lazy" width="1480" height="803" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/apktool_293-1.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/apktool_293-1.png 1000w, https://connortumbleson.com/content/images/2024/01/apktool_293-1.png 1480w" sizes="(min-width: 720px) 720px"></figure><img src="https://connortumbleson.com/content/images/2024/01/apktool_293.png" alt="Apktool v2.9.3 Released"><p>Apktool v2.9.3 has been released! This release is a hot-fix on top of the previous v2.9.2 release for a related security fix.</p><p>Discovered by <a href="https://github.com/Cl0udG0d?ref=connortumbleson.com">Cl0udG0d</a> the previous path traversal fix was not hardened when running against Windows. It was learned that Windows will handle both path separators (<code>/</code> and <code>\</code>) which v2.9.2 had previously isolated to the intended OS. Now cleansing of resource names will include both path separators no matter the OS.</p><p>Apktool has had a few CVEs over the last decade, but the last one was the most public for sure. I attribute that to the rise of automated detection logic which flagged systems and tools to update their version of Apktool. This meant lots of folks asked for patches to various old versions. Apktool hasn&apos;t really taken care in supporting older versions, but will take a more serious effort now.</p><p>v2.10.x will be the next large feature release, but a branch v2.9.x exists for security/urgent fixes. We will try and support the last release or two until it doesn&apos;t seem worthwhile.</p><p><strong>Sponsors</strong></p><p>I launched <a href="https://github.com/sponsors/iBotPeaches?ref=connortumbleson.com" rel="noreferrer">GitHub Sponsors</a> to help provide another alternative for folks showing appreciation. I want to remind folks of two companies that continue to hold a monthly donation for the project.</p><ul><li><a href="https://www.emergetools.com/?ref=connortumbleson.com" rel="noreferrer">Emerge Tools</a> came online to sponsor the tool.</li><li><a href="https://sourcetoad.com/?ref=connortumbleson.com" rel="noreferrer">Sourcetoad</a> (self employer) additionally joined to sponsor (as well as a few other projects).</li></ul><hr><p><strong>This release had 3 commits by 1 person</strong></p><ul><li>Connor Tumbleson (iBotPeaches) - 3 commits</li></ul><hr><h1 id="changes-since-292">Changes since 2.9.2</h1><ul><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3492?ref=connortumbleson.com" rel="noopener noreferrer">#3492</a>] Fix #GHSA-vgwr-4w3p-xmjv (Arbitrary file writes on Windows). (Thanks Cl0udG0d)</li></ul><h2 id="notes">Notes</h2><ul><li>The v2.9.x releases have moved to aapt2 being the default. If you&apos;d like to return to the previous behavior, please use <code>--use-aapt1</code> during build stage.</li></ul><h2 id="download">Download</h2><div class="kg-card kg-button-card kg-align-left"><a href="https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.3.jar?ref=connortumbleson.com" class="kg-btn kg-btn-accent">Download Apktool 2.9.3</a></div><ul>
<li><a href="https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.3.jar?ref=connortumbleson.com">Apktool 2.9.3</a>
<ul>
<li><code>e28e4b4a413a252617d92b657a33c947</code> (md5)</li>
<li><code>7956eb04194300ce0d0a84ad18771eebc94b89fb8d1ddcce8ea4c056818646f4</code> (sha256)</li>
<li>Rename to <code>apktool.jar</code> and follow the <a href="https://apktool.org/docs/install?ref=connortumbleson.com">Instruction Guide</a> if you need help.</li>
</ul>
</li>
<li><a href="https://apktool.org/blog/apktool-2.9.3?ref=connortumbleson.com">2.9.3 Doc Site Post</a></li>
</ul>
<h2 id="links">Links</h2><ul><li><a href="https://apktool.org/?ref=connortumbleson.com">Project Site</a></li><li><a href="https://github.com/iBotPeaches/Apktool?ref=connortumbleson.com">GitHub</a></li><li><a href="https://github.com/iBotPeaches/Apktool/issues?ref=connortumbleson.com">Bug Tracker</a></li><li><a href="https://forum.xda-developers.com/showthread.php?t=1755243&amp;ref=connortumbleson.com">XDA Thread</a></li><li><a href="https://github.com/sponsors/iBotPeaches?ref=connortumbleson.com" rel="noreferrer">GitHub Sponsors</a></li><li><a href="https://www.buymeacoffee.com/iBotPeaches?ref=connortumbleson.com">Buy me a <s>Coffee</s> Beer</a></li></ul>]]></content:encoded></item><item><title><![CDATA[Exploring Trails]]></title><description><![CDATA[I visit parks around Florida and try to visit parks whenever I'm traveling - the end result is some of these photos.]]></description><link>https://connortumbleson.com/2024/01/15/exploring-parks/</link><guid isPermaLink="false">65a3cbbabbf8300d2a5b7e15</guid><category><![CDATA[Personal]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 15 Jan 2024 03:30:01 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2024/01/intro.jpg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/01/intro-1.jpg" class="kg-image" alt="Exploring Trails" loading="lazy" width="1280" height="964" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/intro-1.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/intro-1.jpg 1000w, https://connortumbleson.com/content/images/2024/01/intro-1.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Snead Island</span></figcaption></figure><img src="https://connortumbleson.com/content/images/2024/01/intro.jpg" alt="Exploring Trails"><p>Every so often I visit a park and what I&apos;m looking for is no people around so I can capture a shot of the path/trail you walk. I realized after a few years that I haven&apos;t really done anything with these Android quality photos, so I&apos;ve collected them all.</p><p>Something about the human produced pathway in between encroaching nature is just a perfect photo to take in my eyes.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/weedon_2.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/weedon_2.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/weedon_2.jpg 1000w, https://connortumbleson.com/content/images/2024/01/weedon_2.jpg 1280w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/weedon_1.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/weedon_1.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/weedon_1.jpg 1000w, https://connortumbleson.com/content/images/2024/01/weedon_1.jpg 1280w" sizes="(min-width: 720px) 720px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Weedon Island - St. Petersburg, FL</span></p></figcaption></figure><p>Weedon Island is located on the far north-east side of St. Petersburg and is an enormous park. The trails range from complete dirt extremely wide trails to regular boardwalk style paths. A cool free admission park that comes in around 3,200 acres large.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/brooker_11.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/brooker_11.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/brooker_11.jpg 1000w, https://connortumbleson.com/content/images/2024/01/brooker_11.jpg 1280w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/brooker_1.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/brooker_1.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/brooker_1.jpg 1000w, https://connortumbleson.com/content/images/2024/01/brooker_1.jpg 1280w" sizes="(min-width: 720px) 720px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Brooker Creek - Tarpon Springs, FL</span></p></figcaption></figure><p>Brooker Creek is a far more rural park also free clocking in around 8,700 acres of preserves. These trails depending on how far you go decay further and further into what nature wants. In the summer months this park is brutal with immense amounts of mosquitos and lack of shade when you hit the Blackwater Cutoff. For most visitors they will stay on the Ed Center Trail which is mostly a boardwalk.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/irb_4.jpg" width="1280" height="960" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/irb_4.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/irb_4.jpg 1000w, https://connortumbleson.com/content/images/2024/01/irb_4.jpg 1280w" sizes="(min-width: 1200px) 1200px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">IRB Nature Preserve - Indian Rocks Beach, FL</span></p></figcaption></figure><p>In the heart of Indian Rocks Beach lies the Indian Rocks Beach Nature Preserve which has a playground, but also a really elegant boardwalk that intertwines around the mangroves. You&apos;ll encounter plenty of birds and have a great view of the ocean/beach - the park is free to visit, but chances are the few parking spots will be taken. You might end up paying a price to park in the highly condense/busy area.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/lake_rogers_5.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/lake_rogers_5.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/lake_rogers_5.jpg 1000w, https://connortumbleson.com/content/images/2024/01/lake_rogers_5.jpg 1280w" sizes="(min-width: 1200px) 1200px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Lake Rogers Conservation Park - Odessa, FL</span></p></figcaption></figure><p>An enormous park that I&apos;ve blogged about <a href="https://connortumbleson.com/2016/03/03/ingress-a-morning-hike/">specifically</a> before. This park has a variety of trails that circle around Lake Rogers itself. You&apos;ll pay $2 (or have a park pass) on a honor system to visit this park. The payment makes sense when you realize there are water stations around the park that are kept filled, cool and full of temporary cups. This park like others ranges between plowed and just a mowed chunk of nature.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/citrus_park_6.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/citrus_park_6.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/citrus_park_6.jpg 1000w, https://connortumbleson.com/content/images/2024/01/citrus_park_6.jpg 1280w" sizes="(min-width: 1200px) 1200px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Citrus Park bridge between Publix/neighborhood.</span></p></figcaption></figure><p>This isn&apos;t even a park, but it felt out of place when I lived in Citrus Park. Here is this little elegant boardwalk as a bridge over a river. I ended up <a href="https://connortumbleson.com/2019/04/22/fallen-shopping-carts/">blogging</a> about this bridge/trail as I found tons of shopping carts just dumped in the river alongside it. How I found this trail was pretty funny - I was drinking at the local Ballyhoo&apos;s Grill and walked home intoxicated. I thought there had to be a shortcut and went exploring - sure enough found this little trail that went to the Publix which was basically next to my apartment.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/bradenton_river_walk_7.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/bradenton_river_walk_7.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/bradenton_river_walk_7.jpg 1000w, https://connortumbleson.com/content/images/2024/01/bradenton_river_walk_7.jpg 1280w" sizes="(min-width: 1200px) 1200px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Bradenton Riverwalk - Bradenton, FL</span></p></figcaption></figure><p>The riverwalk in Bradenton is much like any other with an elegant boardwalk that sits on the river and many miles in length. You can take this path from the skate parks all the way to the fancy restaurants on the pier. When it cuts under the highway it creates this shot you see above where the trail has a very short ceiling. Anytime I find myself in Bradenton I like to walk this trail for the Ingress benefit.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/john_b_sr_8.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/john_b_sr_8.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/john_b_sr_8.jpg 1000w, https://connortumbleson.com/content/images/2024/01/john_b_sr_8.jpg 1280w" sizes="(min-width: 1200px) 1200px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">John B. Sargeant Conservation Park - Thonotosassa, FL</span></p></figcaption></figure><p>John B. Sargeant is another $2 entry park that boasts a boardwalk that surrounds a swamp normally supporting a gator or two. The parking lot is the coolest one I&apos;ve ever seen though having the lattice like concrete structure. The park is quite small though for someone just walking around - it really shines if you are using a picnic table or going onto the water.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/blowing_rock_9.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/blowing_rock_9.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/blowing_rock_9.jpg 1000w, https://connortumbleson.com/content/images/2024/01/blowing_rock_9.jpg 1280w" sizes="(min-width: 1200px) 1200px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Glen Burney Trail - Blowing Rock, NC</span></p></figcaption></figure><p>Prior to attending my sisters graduation it was time to explore the city and I stumbled upon this little trail. It wasn&apos;t relaxing by any stretch - after probably a solid 1000ft downhill I realized I had to turn around and go right back up the large elevation I had just declined. Either way the historic aspect was sweet - stumbled upon something called &quot;The Ruins&quot; which was the first modern sewage treatment system designed in the early 1900s.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/beech_mountain_10.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/beech_mountain_10.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/beech_mountain_10.jpg 1000w, https://connortumbleson.com/content/images/2024/01/beech_mountain_10.jpg 1280w" sizes="(min-width: 1200px) 1200px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Elk Knob State Park - Todd, NC</span></p></figcaption></figure><p>On that same trip I stumbled upon an Ingress portal on top of a mountain that was being used by the enemy for a large field. Seeing how I was in the area with a rental car I took off on a little journey to visit this. I arrived quite late in the day to someone saying it would close before I could get back down. Thankfully I said I would move quick and that was good enough to let me climb said trail. Made it to the top, took some photos and played Ingress and booked it back down.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/cypress_spray_12.jpg" width="1280" height="1707" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/cypress_spray_12.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/cypress_spray_12.jpg 1000w, https://connortumbleson.com/content/images/2024/01/cypress_spray_12.jpg 1280w" sizes="(min-width: 1200px) 1200px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Cypress Forest Spray Park - Oldsmar, FL</span></p></figcaption></figure><p>This park I found by accident exploring a trail full of Ingress portals - as you walk around this business park on a trail you end up at a recreation center. That center and park is the start point of a trail that curls all the way around to an electrical substation. So I&apos;m not quite sure of the purpose of this trail - its only a few miles and runs into a highly gated and monitored electrical structure. Either way - the boardwalk is wide and keeps the nature at bay.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/willderness_park_13.jpg" width="1280" height="960" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/willderness_park_13.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/willderness_park_13.jpg 1000w, https://connortumbleson.com/content/images/2024/01/willderness_park_13.jpg 1280w" sizes="(min-width: 1200px) 1200px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Wilderness Park - Thonotosassa, FL</span></p></figcaption></figure><p>One day my regular park I workout at was closed instead giving out sandbags at the entrance for an upcoming hurricane. That storm was days out and I still wanted to workout so I went up the road and ran into this park. This park was basically a natural environment with a few intersecting trails. Each trail hits a point where you have like 6 different directions to go which can lead to some immense confusion. First time at a park I felt lost, but I just opened Google Maps and redirected myself back towards my car.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2024/01/snead_14.jpg" width="1280" height="964" loading="lazy" alt="Exploring Trails" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/snead_14.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/snead_14.jpg 1000w, https://connortumbleson.com/content/images/2024/01/snead_14.jpg 1280w" sizes="(min-width: 1200px) 1200px"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">Emerson Point Preserve - Palmetto, FL</span></p></figcaption></figure><p>This is another free park in the tiny bit of land that separates St. Petersburg from Bradenton. This is a more historical park heavy with trails that tells the story about the mound civilizations that lived there. Brutal when hot as only a small chunk of these trails are within the cover of trees. A great park though that had water, hiking, observation towers and much more.</p><hr><p>All in all - a few years of visiting parks and trails.</p><p></p>]]></content:encoded></item><item><title><![CDATA[We are all guests]]></title><description><![CDATA[We are all guests in this civilization - whether for digital software or utilities.]]></description><link>https://connortumbleson.com/2024/01/08/we-are-all-guests/</link><guid isPermaLink="false">659aba57bbf8300d2a5b7d00</guid><category><![CDATA[Personal]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 08 Jan 2024 03:30:34 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2024/01/photo-1632067694887-097be1c5c5d4-1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2024/01/photo-1632067694887-097be1c5c5d4.jpeg" class="kg-image" alt="We are all guests" loading="lazy" width="2000" height="1333" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/photo-1632067694887-097be1c5c5d4.jpeg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/photo-1632067694887-097be1c5c5d4.jpeg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/photo-1632067694887-097be1c5c5d4.jpeg 1600w, https://connortumbleson.com/content/images/2024/01/photo-1632067694887-097be1c5c5d4.jpeg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@introspectivedsgn?ref=connortumbleson.com"><span style="white-space: pre-wrap;">Erik Mclean</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><img src="https://connortumbleson.com/content/images/2024/01/photo-1632067694887-097be1c5c5d4-1.jpeg" alt="We are all guests"><p>A few days ago I saw someone online begging for anyone to help as their Google account of 10+ years was suspended for an unknown reason. Imagine yourself in that situation where your primary email account disappears and you are left trying to figure out how to recover an account that may have 100s of accounts associated with said email.</p><p>I have a related experience that occurred roughly ~12 years ago on Xbox Live which I <a href="https://connortumbleson.com/2013/10/12/life-of-a-banned-xbox-live-consumer/">blogged</a> about with a bit less elegance than I have today. You are a guest on Xbox Live and your account is a privilege when you look at the perspective of accessing the service from Microsoft. Before I joined doing security for the good - I messed around on Xbox Live doing cheats/mods for the bad. Of course I thought I was being smart separating my cheat life from legit life, but something caught up to me at one point.</p><p>I got suspended till year 9999 and a hardware ban on all consoles I had used, which due to going to college ended up being my brother&apos;s Xbox, my Xbox and my roommate&apos;s Xbox. This effectively turned these consoles into useless machines that could only do offline content and were blocked from Xbox Live.</p><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-text">The account banned permanently was &quot;Bio Toxic Peach&quot;.</div></div><p>This was a big wake up call to someone who didn&apos;t yet have a full time job as all the DLC and digital games obtained were no longer available. I lost access to games I purchased because they were &quot;technically&quot; licensed to me. On that same regard even games I had physical copies required another purchase as those dumb EA games contained an &quot;online code&quot; which had to be used to register in order to play online.</p><p>What I didn&apos;t realize is that my ban was more towards my Microsoft account instead of isolated to my Xbox account. I lost my Dreamspark license, my Skydrive and my email account. I spent months and months attempting to get that account working and it was worthless. I could do password resets and recovery, but anytime I signed in I would get some cryptic error.</p><p>At one point I escalated my case further and further with Microsoft and got the shortest response ever - &quot;<em>The suspension will stand as issued.</em>&quot;. Of course at this point in my life I was trying to pass classes and the family listening to me complain about this vendetta with Microsoft showed my priorities were out of wack. I just couldn&apos;t fathom why my Xbox ban continued onward to all services associated with that Microsoft account.</p><p>If we look at today&apos;s world - a good deal of dependencies we have are on licensed/borrowed time. Imagine losing one of the following:</p><ul><li>Google Account</li><li>1Password Account</li><li>GitHub Account</li><li>Linode Account</li></ul><p>Of course these services you can live without, but imagine building a solid chunk of your life on said service for it to disappear. If I lost my GitHub account, which I&apos;ve been using for 15 years to house my programming creations - I&apos;d probably lose a solid chance of getting interviews during a job hunt.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/01/electric.jpg" class="kg-image" alt="We are all guests" loading="lazy" width="2000" height="1506" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/electric.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/electric.jpg 1000w, https://connortumbleson.com/content/images/size/w1600/2024/01/electric.jpg 1600w, https://connortumbleson.com/content/images/size/w2400/2024/01/electric.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>If you move into the physical world - my electric company sent me a very legal looking letter asking for my signature for permission to build equipment in my yard (as part of a easement) to support moving overhead wires underground. I ignored it because there isn&apos;t a single overhead power line in my entire cul-de-sac, so I imagine it was just a mistake.</p><p>Months went by and I got a call from said electric company asking me if I received the letter and what was withholding my approval to calm any concerns I had. I had no concerns except the fact that why should I have to give permission to a chunk of my tiny yard for a reason that doesn&apos;t apply to me. I told the person on the call to bring a representative out to my house - show me the overhead lines they are talking about and I&apos;ll sign it in front of them.</p><p>No one ever showed up and its been at least a year now. I started thinking though if you go to war against your electric company - whose to say they won&apos;t find some cryptic reason to no longer service you. Thankfully since they are a public utility that&apos;s not probably something that can occur.</p><p>I say that because something odd happened with my local town of Temple Terrace. When I moved in I was trying to figure out how to get trash/debris/recycle service - in short its confusing. Some even require a specific type of trashcan in order to be picked up, so it explains why my pickup was ignored. So right when you move into a place - I had a lot of trash. Moving things, reworking things, cleaning things and I struggled to get working trash pickup.</p><p>Once that finally was resolved - Temple Terrace comes by to leave me a note that I&apos;ll be fined if I don&apos;t fix my &quot;algae driveway&quot; which I thought was laughable. My driveway looked identical, if not better, than all my neighbors. Yet I&apos;m called out to do some cleaning. I thought it was the classic behavior of - if you treat a company badly they&apos;ll work to make your life a bit stressful.</p><p>It just kept me thinking - we are just guests for most services in this world and a few missteps can turn you into a malicious guest in the eyes of the company/service. Continue in the negative light and you might end up without an account, which may be quite a disaster.</p>]]></content:encoded></item><item><title><![CDATA[Apktool v2.9.2 Released]]></title><description><![CDATA[Apktool v2.9.2 has been released with a security fix.]]></description><link>https://connortumbleson.com/2024/01/05/apktool-v2-9-2-released/</link><guid isPermaLink="false">6597ea37bbf8300d2a5b7bd3</guid><category><![CDATA[Apktool]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Fri, 05 Jan 2024 12:22:07 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2024/01/292.png" medium="image"/><content:encoded><![CDATA[<img src="https://connortumbleson.com/content/images/2024/01/292.png" alt="Apktool v2.9.2 Released"><p></p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2024/01/292-1.png" class="kg-image" alt="Apktool v2.9.2 Released" loading="lazy" width="1480" height="803" srcset="https://connortumbleson.com/content/images/size/w600/2024/01/292-1.png 600w, https://connortumbleson.com/content/images/size/w1000/2024/01/292-1.png 1000w, https://connortumbleson.com/content/images/2024/01/292-1.png 1480w" sizes="(min-width: 720px) 720px"></figure><p>Apktool v2.9.2 has been released! This release is a hot-fix on top of the previous v2.9.1 release for 1 security fix.</p><p>Discovered by Yusuf at Denuvo Apktool would infer file names from the respective resource names, which if made malicious would result in a file being written outside of the directory in which Apktool was operating (ie path traversal). This can be read in more detail at the issue report: <a href="https://github.com/iBotPeaches/Apktool/security/advisories/GHSA-2hqv-2xv4-5h5w?ref=connortumbleson.com">CVE-2024-21633 (GHSA-2hqv-2xv4-5h5w)</a></p><p><strong>Sponsors</strong></p><p>I launched <a href="https://github.com/sponsors/iBotPeaches?ref=connortumbleson.com" rel="noreferrer">GitHub Sponsors</a> to help provide another alternative for folks showing appreciation. I want to remind folks of two companies that continue to hold a monthly donation for the project.</p><ul><li><a href="https://www.emergetools.com/?ref=connortumbleson.com" rel="noreferrer">Emerge Tools</a> came online to sponsor the tool.</li><li><a href="https://sourcetoad.com/?ref=connortumbleson.com" rel="noreferrer">Sourcetoad</a> (self employer) additionally joined to sponsor (as well as a few other projects).</li></ul><hr><p><strong>This release had 3 commits by 1 person</strong></p><ul><li>Connor Tumbleson (iBotPeaches) - 3 commits</li></ul><hr><h1 id="changes-since-291">Changes since 2.9.1</h1><ul><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3484?ref=connortumbleson.com" rel="noopener noreferrer">#3484</a>] Fix <a href="https://github.com/iBotPeaches/Apktool/security/advisories/GHSA-2hqv-2xv4-5h5w?ref=connortumbleson.com" rel="noreferrer">#GHSA-2hqv-2xv4-5h5w</a> (Arbitrary file writes). (Thanks 0x33c0unt)</li></ul><h2 id="notes">Notes</h2><ul><li>The v2.9.x releases have moved to aapt2 being the default. If you&apos;d like to return to the previous behavior, please use <code>--use-aapt1</code> during build stage.</li></ul><h2 id="download">Download</h2><div class="kg-card kg-button-card kg-align-left"><a href="https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.2.jar?ref=connortumbleson.com" class="kg-btn kg-btn-accent">Download Apktool 2.9.2</a></div><ul>
<li><a href="https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.2.jar?ref=connortumbleson.com">Apktool 2.9.2</a>
<ul>
<li><code>352f85721fa95847f03a10fa7ea78322</code> (md5)</li>
<li><code>831f0ffc97b6f20f511d6183cbf6785464d341aacb0fb7e6f22ef0c7b228911a</code> (sha256)</li>
<li>Rename to <code>apktool.jar</code> and follow the <a href="https://apktool.org/docs/install?ref=connortumbleson.com">Instruction Guide</a> if you need help.</li>
</ul>
</li>
<li><a href="https://apktool.org/blog/apktool-2.9.2?ref=connortumbleson.com">2.9.2 Doc Site Post</a></li>
</ul>
<h2 id="links">Links</h2><ul><li><a href="https://apktool.org/?ref=connortumbleson.com">Project Site</a></li><li><a href="https://github.com/iBotPeaches/Apktool?ref=connortumbleson.com">GitHub</a></li><li><a href="https://github.com/iBotPeaches/Apktool/issues?ref=connortumbleson.com">Bug Tracker</a></li><li><a href="https://forum.xda-developers.com/showthread.php?t=1755243&amp;ref=connortumbleson.com">XDA Thread</a></li><li><a href="https://github.com/sponsors/iBotPeaches?ref=connortumbleson.com" rel="noreferrer">GitHub Sponsors</a></li><li><a href="https://www.buymeacoffee.com/iBotPeaches?ref=connortumbleson.com">Buy me a <s>Coffee</s> Beer</a></li></ul>]]></content:encoded></item><item><title><![CDATA[A Year of Blogging (2023)]]></title><description><![CDATA[<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/PXL_20231209_121006650-2.jpg" class="kg-image" alt="a screenshot of a computer" loading="lazy" width="2000" height="1333" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/PXL_20231209_121006650-2.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/PXL_20231209_121006650-2.jpg 1000w, https://connortumbleson.com/content/images/size/w1600/2023/12/PXL_20231209_121006650-2.jpg 1600w, https://connortumbleson.com/content/images/2023/12/PXL_20231209_121006650-2.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@kajtek?ref=connortumbleson.com"><span style="white-space: pre-wrap;">Kajetan Sumila</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>As 2018 ended, I had successfully blogged every week for the <a href="https://connortumbleson.com/2018/12/30/a-year-of-blogging/">entire year</a>. This was a new years resolution that I&apos;ve somehow kept for now five years and counting.</p><p>So lets recap my favorite posts from 2023.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/avacado.jpg" class="kg-image" alt loading="lazy" width="1000" height="750" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/avacado.jpg 600w, https://connortumbleson.com/content/images/2023/12/avacado.jpg 1000w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://connortumbleson.com/2023/01/09/evolution-of-food-taste/" rel="noreferrer"><span style="white-space: pre-wrap;">Evolution of Food Taste</span></a></figcaption></figure><p>This post</p>]]></description><link>https://connortumbleson.com/2024/01/01/a-year-of-blogging-2023/</link><guid isPermaLink="false">658eaf26bbf8300d2a5b7aa5</guid><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 01 Jan 2024 03:30:08 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2023/12/PXL_20231209_121006650-3.jpg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/PXL_20231209_121006650-2.jpg" class="kg-image" alt="A Year of Blogging (2023)" loading="lazy" width="2000" height="1333" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/PXL_20231209_121006650-2.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/PXL_20231209_121006650-2.jpg 1000w, https://connortumbleson.com/content/images/size/w1600/2023/12/PXL_20231209_121006650-2.jpg 1600w, https://connortumbleson.com/content/images/2023/12/PXL_20231209_121006650-2.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@kajtek?ref=connortumbleson.com"><span style="white-space: pre-wrap;">Kajetan Sumila</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><img src="https://connortumbleson.com/content/images/2023/12/PXL_20231209_121006650-3.jpg" alt="A Year of Blogging (2023)"><p>As 2018 ended, I had successfully blogged every week for the <a href="https://connortumbleson.com/2018/12/30/a-year-of-blogging/">entire year</a>. This was a new years resolution that I&apos;ve somehow kept for now five years and counting.</p><p>So lets recap my favorite posts from 2023.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/avacado.jpg" class="kg-image" alt="A Year of Blogging (2023)" loading="lazy" width="1000" height="750" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/avacado.jpg 600w, https://connortumbleson.com/content/images/2023/12/avacado.jpg 1000w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://connortumbleson.com/2023/01/09/evolution-of-food-taste/" rel="noreferrer"><span style="white-space: pre-wrap;">Evolution of Food Taste</span></a></figcaption></figure><p>This post was a fun deep dive into how my food taste has changed over the last twenty years and comparing the fast food, meal kits and good ole fashioned home cooked meals. Pictured above was a creation of guacamole using only limes and avocados from my backyard.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/photo-1583334506779-8f63fae3d11d.jpeg" class="kg-image" alt="A Year of Blogging (2023)" loading="lazy" width="1000" height="668" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/photo-1583334506779-8f63fae3d11d.jpeg 600w, https://connortumbleson.com/content/images/2023/12/photo-1583334506779-8f63fae3d11d.jpeg 1000w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://connortumbleson.com/2023/01/16/callous/" rel="noreferrer"><span style="white-space: pre-wrap;">Callous Tampa</span></a></figcaption></figure><p>Feeling as people are getting more aggressive in day to day life I take a single recorded dash cam experience to review how I feel people have changed in the past few years. Perhaps it was COVID-19 or maybe its just how the world has evolved to &quot;eat or get eaten&quot; mentality.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/hacked-results-1.png" class="kg-image" alt="A Year of Blogging (2023)" loading="lazy" width="1036" height="644" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/hacked-results-1.png 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/hacked-results-1.png 1000w, https://connortumbleson.com/content/images/2023/12/hacked-results-1.png 1036w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://connortumbleson.com/2023/01/23/dangling-domain-abuse/" rel="noreferrer"><span style="white-space: pre-wrap;">Dangling Domain Abuse</span></a></figcaption></figure><p>Little did I know how quick attackers could react when releasing an IP into the world. I deleted an old server which left a dangling DNS record to an IP I no longer controlled. The new owner of this IP quickly determined that fact - validated their ownership of a domain the didn&apos;t own and proceeded to submit millions of SEO spam to Google. It cost damage to this domain (<code>connortumbleson.com</code>) and took a few days to unwind how the attack occurred.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/weather-station-1.jpg" class="kg-image" alt="A Year of Blogging (2023)" loading="lazy" width="1000" height="753" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/weather-station-1.jpg 600w, https://connortumbleson.com/content/images/2023/12/weather-station-1.jpg 1000w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://connortumbleson.com/2023/02/13/personal-weather-station/" rel="noreferrer"><span style="white-space: pre-wrap;">Personal Weather Station</span></a></figcaption></figure><p>A short obsession with weather led me to finding and purchasing my own little personal weather station. Wiring up the stream of data to a local service (Prometheus/Grafana) is where the challenge remains. I can&apos;t stream straight from the station to Prometheus without a little intermediate service and those options range from paid, abandoned or build my own.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/power-tower-crane-1.png" class="kg-image" alt="A Year of Blogging (2023)" loading="lazy" width="787" height="489" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/power-tower-crane-1.png 600w, https://connortumbleson.com/content/images/2023/12/power-tower-crane-1.png 787w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://connortumbleson.com/2023/05/08/lost-treasure-knex/" rel="noreferrer"><span style="white-space: pre-wrap;">Lost Treasure: K&apos;NEX</span></a></figcaption></figure><p>After doing blog posts about old events I lived through (ice storm, flood, etc) I realized that there is a large population that likes reading 1st hand experience from an event. It is relatable and folks research these events to remember them. On that same vein old children&apos;s toys seem to fit that bill. I started diving into a variety of toys I really enjoyed and K&apos;NEX was one of them. I was the kid that preferred K&apos;NEX to LEGOs.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/tools-required-1.jpg" class="kg-image" alt="A Year of Blogging (2023)" loading="lazy" width="1000" height="753" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/tools-required-1.jpg 600w, https://connortumbleson.com/content/images/2023/12/tools-required-1.jpg 1000w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://connortumbleson.com/2023/05/01/camera-in-the-attic/" rel="noreferrer"><span style="white-space: pre-wrap;">Camera in the Attic</span></a></figcaption></figure><p>Documenting build outs of this home has been always a fun interest - from building out the home-lab to adding some random camera in the attic. I wish this post could show how many wires I&apos;ve now fit into one little wall passage into my attic. This was the 5th cable and now I&apos;ll probably have to figure out an alternative to fit any more additions. Either way its still funny to look back and say - &quot;<em>I&apos;ve got a camera in my attic</em>&quot;.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/the-fp-1.png" class="kg-image" alt="A Year of Blogging (2023)" loading="lazy" width="1748" height="730" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/the-fp-1.png 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/the-fp-1.png 1000w, https://connortumbleson.com/content/images/size/w1600/2023/12/the-fp-1.png 1600w, https://connortumbleson.com/content/images/2023/12/the-fp-1.png 1748w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://connortumbleson.com/2023/06/05/the-fp-movies/" rel="noreferrer"><span style="white-space: pre-wrap;">The FP Movies</span></a></figcaption></figure><p>What started as a &quot;bad movie&quot; night with friends we ended up picking the first movie of a series of incredibly odd movies. I pushed through and watched the remaining three movies on my own and produced this large multi-thousand line recap of the movies. These movies are what happens when you take a talented individual with his childhood idea and end up producing a few films which are odd, but a good form of entertainment.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/overview-map-1.png" class="kg-image" alt="A Year of Blogging (2023)" loading="lazy" width="948" height="740" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/overview-map-1.png 600w, https://connortumbleson.com/content/images/2023/12/overview-map-1.png 948w" sizes="(min-width: 720px) 720px"><figcaption><a href="https://connortumbleson.com/2023/09/11/c-135-tampa-bypass-canal/" rel="noreferrer"><span style="white-space: pre-wrap;">C-135 Tampa Bypass Canal</span></a></figcaption></figure><p>Confused as I drove by a huge river that was always without boats and full of caution/warning signs. I was curious why this existed and soon found out it was built to take huge amounts of water during flood/hurricane instead of it funneling through the city. A huge task completed a long time ago with the forethought to protect the growing city - I look back at that and think that&apos;s amazing. I struggle in present terms to know a comparable enhancement at that scale in the Tampa area.</p><hr><p>2024 is just a few hours away and I&apos;ll still be here blogging weekly. Thanks for reading and here is to another year.</p>]]></content:encoded></item><item><title><![CDATA[Too much Car Safety]]></title><description><![CDATA[Car Safety Systems keep growing in features, but are they becoming a danger to themselves?]]></description><link>https://connortumbleson.com/2023/12/25/too-much-car-safety/</link><guid isPermaLink="false">6586c3c9bbf8300d2a5b79bd</guid><category><![CDATA[Personal]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 25 Dec 2023 03:30:23 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2023/12/PXL_20231209_121006650.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://connortumbleson.com/content/images/2023/12/PXL_20231209_121006650.jpg" alt="Too much Car Safety"><p></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/PXL_20231209_121006650-1.jpg" class="kg-image" alt="Too much Car Safety" loading="lazy" width="2000" height="1333" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/PXL_20231209_121006650-1.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/PXL_20231209_121006650-1.jpg 1000w, https://connortumbleson.com/content/images/size/w1600/2023/12/PXL_20231209_121006650-1.jpg 1600w, https://connortumbleson.com/content/images/2023/12/PXL_20231209_121006650-1.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@joetography?ref=connortumbleson.com"><span style="white-space: pre-wrap;">Joe Dudeck</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>A few weeks ago I got a new 2023 Hyundai Sonata which replaced my 2019 Hyundai Sonata, which had previously replaced my 2008 Hyundai Sonata. I quickly realized that features in modern cars have caught up in terms of things they deem as safety enhancements, but I&apos;m trying to figure out how to disable most of them.</p><p><strong>Lane Monitoring</strong></p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2023/12/lane-keeping.png" class="kg-image" alt="Too much Car Safety" loading="lazy" width="386" height="370"></figure><p>At first this feature sounded pretty cool - help me stay in my lane. However, in one month time I don&apos;t think I&apos;ve once felt like it helped me and instead only annoyed me. Trying to drive around the pothole filled roads and duck/dodge into a specific driving pattern? Good luck - the car will guide you back to the center of the lane.</p><p>The first time it happened I thought the car was taking over control, then I learned you either let it happen and guide you back or you double down on the change against its additional constraint on the wheel and it&apos;ll back off.</p><p>So I started learning how it acts, but boy you hit this specific area in Tampa where a school zone lines intersect with the road and the car hates this. It freaks out every single time I drive over it with a little warning nudge and chime - it thinks I&apos;m going out of my lane, but I&apos;m not. I actually become in a split second a danger to the road as my car is trying to guide me into a lane that doesn&apos;t exist, but it learns before that second is over and gives up.</p><p>Once I&apos;m on the highway there are many flyover exits in Tampa that are huge single car lanes - you could easily make it two lanes, but instead its just one large lane. The Hyundai hates this - it thinks hugging the right side of this massive lane is drifting and pulls me back. Sorry I&apos;m just letting my car handle this turn naturally without abrupt changes to the circular angle I&apos;m turning at.</p><p>I&apos;ve figured out how to disable this, maybe this technology in smarter in the full self driving models.</p><p><strong>Collision Detection</strong></p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2023/12/colilsion.png" class="kg-image" alt="Too much Car Safety" loading="lazy" width="279" height="326"></figure><p>This feature seems great on paper and I haven&apos;t tested if it will actually inject brake pushes automatically, but it turns the dash red and emits a loud warning tone when this occurs.</p><p>This has happened a few times when I feel I&apos;m in zero danger of actually colliding with anyone or anything. It seems to interject when my speed is approaching an object that is not moving at the pace expected to prevent a collision. It gets really mad when you are coasting when cars ahead brake. Yes you can hit your brakes immediately and join the line of cars, but I&apos;m safely far enough back I can coast this slowdown. With regenerative braking I get quite a slowdown by simply letting off the gas. It&apos;s a bit more elegant than this constant accelerate and stop traffic people seem addicted towards doing.</p><p>The car hates this - it emits the loudest tone and red warning symbols of collision warning. Tap the brakes a bit and its happy and quiet even if the coasting would have accomplished the same thing in a bit less space. This means my brake lights go on - the people behind me react to that and so on and so on. Even if I could have simply let off the gas and coasted and accelerated a few seconds later. I might have just caused a ghost pocket of braking when it could have been avoided.</p><p><strong>Turn Warning</strong></p><p>Sitting in a lane you put on your turn signal, this is the yellow blinking turn lane, so you can go when the traffic is clear. You inch into the intersection seeing a gap approaching in the cars and your car goes off with beeps and tones. It thinks you are about to turn into a wall of cars and its warning you. The first time this occurred I thought I was doing something dangerous and/or danger was near to me. It calmed down and I did my left turn and went about my day.</p><p>Should I have stayed out of the intersection? Probably according to the law as I believe you shouldn&apos;t enter the intersection until you are clear to exit it, but with how Tampa drivers act you gotta take the chances you have otherwise you aren&apos;t going anywhere.</p><p>So I&apos;ll keep this one on - I should stay out of intersection until I&apos;m clear to make my entire left turn. People behind me may hate it, but my car won&apos;t go crazy with that choice.</p><p><strong>Seat-belt Warning</strong></p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2023/12/seatbelt.png" class="kg-image" alt="Too much Car Safety" loading="lazy" width="699" height="727" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/seatbelt.png 600w, https://connortumbleson.com/content/images/2023/12/seatbelt.png 699w"></figure><p>This one has only happened once, but boy put me into a few seconds of unsafe driving. Just driving along and the dog moves from the backseat to sitting in passenger seat which then sets off the weight detection of that seat. Now its non-stop beep which is beyond annoying, then the dog jumps back to the back seat and it still goes off. It takes a solid 30-45 seconds until it detects no heavy bodied animal/person is no longer sitting there.</p><p>He jumps back into the front seat and it goes off again - this time I&apos;m trying to pull the seat-belt over and plug it in while interstate driving just so the tone can stop. This is a red illuminated dash icon and very loud beep that overpowers even the music playing. Meanwhile this 60-80 pound dog is just not helping at all in this situation as I try to plug in a seat-belt under his mess of fur.</p><hr><p>It seems most of these features all have a possibility of great benefits at the increased cost of a slight increase in overall danger and increased annoyance.</p>]]></content:encoded></item><item><title><![CDATA[It's Relative]]></title><description><![CDATA[Its all relative at the end of it.]]></description><link>https://connortumbleson.com/2023/12/18/its-relative/</link><guid isPermaLink="false">6573a38dbbf8300d2a5b7721</guid><category><![CDATA[Personal]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 18 Dec 2023 03:30:09 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2023/12/photo-1620599931220-30aee29b7e55.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/photo-1620599931220-30aee29b7e55-1.jpeg" class="kg-image" alt="It&apos;s Relative" loading="lazy" width="2000" height="1333" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/photo-1620599931220-30aee29b7e55-1.jpeg 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/photo-1620599931220-30aee29b7e55-1.jpeg 1000w, https://connortumbleson.com/content/images/size/w1600/2023/12/photo-1620599931220-30aee29b7e55-1.jpeg 1600w, https://connortumbleson.com/content/images/2023/12/photo-1620599931220-30aee29b7e55-1.jpeg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@tolga__?ref=connortumbleson.com"><span style="white-space: pre-wrap;">Tolga Ulkan</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><img src="https://connortumbleson.com/content/images/2023/12/photo-1620599931220-30aee29b7e55.jpeg" alt="It&apos;s Relative"><p>A few weeks ago my 2019 Hyundai Sonata seized again on the way home from trivia - this time I was pretty lucky to abruptly coast/stop in a turn lane. This at least kept me out of blocking traffic even if multiple times someone pulled in behind me and honked at me. I don&apos;t understand what people think a stopped car with hazards on means and what honking will accomplish.</p><p>The long and short of that is I ended up with a new 2023 Hyundai Sonata and sold the busted car back to the dealership before this type of incident escalated even further. Losing power breaking and steering isn&apos;t exactly the easiest thing to control so I&apos;d been so far lucky to not cause any accidents.</p><p>The next day I&apos;m having a conversation with a friend and they mention some some unlucky event that occurred for them. Childish of me looking back at it used that chance to mention some unlucky events that happened to me instead. It seemed like I was trying to 1-up a sucky situation by comparing the events together.</p><p>On the extreme side I once was complaining that it was raining while I was trying to grill. This got me a response of - &quot;<em>At least you have a grill</em>&quot; which was an odd thing I felt like for someone to say. I ended up discovering a workaround so I could continue grilling without water cooling down my cook.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/umbrella.png" class="kg-image" alt="It&apos;s Relative" loading="lazy" width="693" height="525" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/umbrella.png 600w, https://connortumbleson.com/content/images/2023/12/umbrella.png 693w"><figcaption><span style="white-space: pre-wrap;">grilling in rain technique.</span></figcaption></figure><p>So I researched what that is described as, because it has to be something. I stumbled upon the fallacy of relative privation.</p><blockquote>The fallacy of relative privation rejects an argument by stating the existence of a more important problem. The existence of such a worse issue, the fallacy insists, thereby makes the initial argument irrelevant. This fallacy is also known as the appeal to worse problems or &#x201C;not as bad as&#x201D;.<br>[<a href="https://academy4sc.org/video/fallacy-of-relative-privation-all-problems-are-relative/?ref=connortumbleson.com">source</a>]</blockquote><p>It felt like I found the fallacy that explained this situation if I stretched the explanation to fit this specific example. During that research though it became interesting to me discovering how some researchers say &quot;everything is relative&quot;.</p><p>It started to click immediately with me especially when discussing the weather in Florida. For the natives who have only lived here the summers are insanely humid and hot - that is true also for newly moved Floridians. The difference being after spending years and years in the brutal cold with snow - you start to appreciate the heat only because you&apos;ve really experienced cold.</p><p>Probably why our learning starts so slow at birth - with no previous experiences to relate knowledge with we must learn things one by one to develop a bank of relationships. Probably makes sense why schools hit such a wide variety of topics in order to develop the brain with a solid set of related things to reflect back on.</p><p>I guess that is what makes us human - since if we all collectively had some combined singular experience we&apos;d all perceive things the same. It&apos;s that we all experience things differently and thus relate to things differently that makes us human.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Impersonating Projects]]></title><description><![CDATA[A site is built using my GitHub and my projects to entice people to buy a service. When you pay - you'll be blocked and money gone.]]></description><link>https://connortumbleson.com/2023/12/11/project-impersonation/</link><guid isPermaLink="false">65746221bbf8300d2a5b774e</guid><category><![CDATA[Personal]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 11 Dec 2023 03:30:48 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2023/12/blurred-exe.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2023/12/blurred-exe-1.png" class="kg-image" alt="Impersonating Projects" loading="lazy" width="1758" height="924" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/blurred-exe-1.png 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/blurred-exe-1.png 1000w, https://connortumbleson.com/content/images/size/w1600/2023/12/blurred-exe-1.png 1600w, https://connortumbleson.com/content/images/2023/12/blurred-exe-1.png 1758w" sizes="(min-width: 720px) 720px"></figure><img src="https://connortumbleson.com/content/images/2023/12/blurred-exe.png" alt="Impersonating Projects"><p>A few days ago I got an odd message sent to me - someone was curious if I was the owner behind <em><u><code>exedecompiler[.]com</code></u></em>. I of course was not and was curious why I was being asked.</p><p>Turns out this individual was trying to chase down the owner of this site as they were communicating with them and ended up getting scammed out of $500. They sent some snippets of the chat conversation and it looked pretty suspicious.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2023/12/1.png" width="382" height="640" loading="lazy" alt="Impersonating Projects"></div><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2023/12/2.png" width="389" height="640" loading="lazy" alt="Impersonating Projects"></div><div class="kg-gallery-image"><img src="https://connortumbleson.com/content/images/2023/12/3.png" width="391" height="640" loading="lazy" alt="Impersonating Projects"></div></div></div></figure><p>Maybe at my age and time on the Internet - I&apos;ve learned that you rarely, if ever, trust a business transaction on Telegram with a cryptocurrency as the payment. So an expensive lesson learned for this individual.</p><p>Shortly after the payment was confirmed - the telegram account blocked the individual as well as clearing the chat. For some reason he had some various photos saved from this exchange which ended up being the photos you see above.</p><p>So how did this site point back to me?</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/archive-exedecompiler.png" class="kg-image" alt="Impersonating Projects" loading="lazy" width="1901" height="977" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/archive-exedecompiler.png 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/archive-exedecompiler.png 1000w, https://connortumbleson.com/content/images/size/w1600/2023/12/archive-exedecompiler.png 1600w, https://connortumbleson.com/content/images/2023/12/archive-exedecompiler.png 1901w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Wayback Machine - &quot;exedecompiler[.]com&quot;</span></figcaption></figure><p>As you scrolled down the site - it listed four projects as &quot;Recent Work&quot;.</p><ul><li>Apktool</li><li>Leaf</li><li>Halo Depot</li><li>Panda Love</li></ul><p>These are projects I&apos;ve either created from scratch or been maintaining on my GitHub. The descriptions were copies of the GitHub repositories with honestly zero effort in adapting it to fit the website design. As you can tell some of the description is literally the setup guide for one project.</p><p>I was furious yet again - this time a site was selling a service for $50 for disassembly of <code>.apk</code> and <code>.exe</code> files and using my username/projects as the portfolio. This was now the 2nd time myself/my-work was being impersonated - the <a href="https://connortumbleson.com/2022/09/19/someone-is-pretending-to-be-me/">first being this odd interview tale</a>.</p><p>Ignoring the obvious fact this is impersonating my accomplishments and successful projects - this is an odd business model because both of those services have free open-source tools to accomplish said task.</p><ul><li><a href="https://apktool.org/?ref=connortumbleson.com">Apktool</a> (<code>.apk</code>)- $0</li><li><a href="https://github.com/icsharpcode/ILSpy?ref=connortumbleson.com">ILSpy</a> (<code>.exe</code>) - $0</li></ul><p>So once again I decided to message the perpetrator behind this scheme.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2023/12/msg-the-thief.png" class="kg-image" alt="Impersonating Projects" loading="lazy" width="823" height="1036" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/msg-the-thief.png 600w, https://connortumbleson.com/content/images/2023/12/msg-the-thief.png 823w" sizes="(min-width: 720px) 720px"></figure><p>It seemed pretty obvious that my profile wasn&apos;t &quot;random&quot; when it came to this site. You don&apos;t build a scam site marketing reverse engineering services then happen by chance to come upon an author (me) who maintains the most popular <code>.apk</code> disassembler.</p><p>As I am trying to balance submitting abuse reports to the domain (Namecheap), host (Cloudflare) and Messaging (Telegram) I realize my chat with this individual is now over - I am also blocked and the chat history is cleared.</p><p>I don&apos;t really like Telegram&apos;s ability to do that, which I guess is why many flock to it for illicit business. I just happen to use it heavily for Ingress.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2023/12/Screenshot-2023-12-08-at-9.24.39-AM.png" class="kg-image" alt="Impersonating Projects" loading="lazy" width="835" height="419" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/Screenshot-2023-12-08-at-9.24.39-AM.png 600w, https://connortumbleson.com/content/images/2023/12/Screenshot-2023-12-08-at-9.24.39-AM.png 835w" sizes="(min-width: 720px) 720px"></figure><p>In my last screenshot I had with this individual I was trying to get a refund for an individual scammed. This was never going to work, but I was surprised to find this individual claim a &quot;<em>business gone wrong</em>&quot; instead of a scam.</p><p>Is this site really trying to do something legit? I seriously doubt it, because as I write this post - the site has changed again.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2023/12/more-sites.png" class="kg-image" alt="Impersonating Projects" loading="lazy" width="2000" height="1088" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/more-sites.png 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/more-sites.png 1000w, https://connortumbleson.com/content/images/size/w1600/2023/12/more-sites.png 1600w, https://connortumbleson.com/content/images/2023/12/more-sites.png 2394w" sizes="(min-width: 720px) 720px"></figure><p>My four projects are gone - now we find another collection of random projects I&apos;m 100% confident are NOT built by this individual. This time the scammer has learned and is no longer hyperlinking these projects so its a bit more difficult to track down the original owner of them.</p><p>They must be upset as the prices have changed from $50 to $100. Maybe one of my abuse reports will end this scam - who knows.</p><p>Each time I get wind of one of these situations - I wonder how many go unnoticed. </p>]]></content:encoded></item><item><title><![CDATA[Apktool v2.9.1 Released]]></title><description><![CDATA[Apktool v2.9.1 has been released with bug fixes on top of the large v2.9.x release.]]></description><link>https://connortumbleson.com/2023/12/06/apktool-v2-9-1-released/</link><guid isPermaLink="false">656fb269ff949c0afb5e7db1</guid><category><![CDATA[Apktool]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Wed, 06 Dec 2023 11:52:01 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2023/12/apktool_291-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://connortumbleson.com/content/images/2023/12/apktool_291-1.png" alt="Apktool v2.9.1 Released"><p></p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2023/12/apktool_291.png" class="kg-image" alt="Apktool v2.9.1 Released" loading="lazy" width="1480" height="803" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/apktool_291.png 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/apktool_291.png 1000w, https://connortumbleson.com/content/images/2023/12/apktool_291.png 1480w" sizes="(min-width: 720px) 720px"></figure><p>Apktool v2.9.1 has been released! This release is a fast follow with bug fixes from the quite large <a href="https://connortumbleson.com/2023/10/08/apktool-v2-9-0-released/">v2.9.0 release</a>. Overall - very happy with only 1 regression from the huge amount of changes we did during the v2.9.0 release. I did remove the docker images recently added in v2.9.0 as those haven&apos;t quite stabilized at the level I expect. I&apos;ve got a bit more to learn with docker with all the file system requirements Apktool has - then that will return.</p><p>Dependabot has become quite a life saver and keeps dependencies up to date whether its the CI pipeline or child dependencies.</p><p>This release continues the battle against Apktool&apos;s challenge of building applications on build tools that are almost always newer than the source application was built from. This led to changes for references, null values and stripping duplicate attribute properties.</p><p>It also has a quick patch for supporting disassembly of the new Android 14 QBR2 beta applications.</p><p><strong>Sponsors</strong></p><p>I launched <a href="https://github.com/sponsors/iBotPeaches?ref=connortumbleson.com" rel="noreferrer">GitHub Sponsors</a> to help provide another alternative for folks showing appreciation. I want to remind folks of two companies that continue to hold a monthly donation for the project.</p><ul><li><a href="https://www.emergetools.com/?ref=connortumbleson.com" rel="noreferrer">Emerge Tools</a> came online to sponsor the tool.</li><li><a href="https://sourcetoad.com/?ref=connortumbleson.com" rel="noreferrer">Sourcetoad</a> (self employer) additionally joined to sponsor (as well as a few other projects).</li></ul><hr><p><strong>This release had 38 commits by 4 people and 1 robot</strong></p><ul><li>Connor Tumbleson (iBotPeaches) - 27 commits</li><li>Dependabot (BOT) - 8 commits</li><li>ArjunaKumarMohanta - 1 commit</li><li>Andrew Szeto - 1 commit</li><li>Josh Miers - 1 commit</li></ul><hr><h1 id="changes-since-290">Changes since 2.9.0</h1><ul><li>[<a href="https://github.com/iBotPeaches/Apktool/issues/3362?ref=connortumbleson.com" rel="noopener noreferrer">#3362</a>] Add support for building on Java 21.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/issues/3425?ref=connortumbleson.com" rel="noopener noreferrer">#3425</a>] Add test for <code>isAccessibilityTool</code>.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/issues/3428?ref=connortumbleson.com" rel="noopener noreferrer">#3428</a>] Add support for Android QBR2.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3399?ref=connortumbleson.com" rel="noopener noreferrer">#3399</a>] Fix regression with api-level not passing to baksmali. (Thanks JoshMiers-FS)</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3378?ref=connortumbleson.com" rel="noopener noreferrer">#3378</a>] Fix issue with docker building closed prs.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/issues/3400?ref=connortumbleson.com" rel="noopener noreferrer">#3400</a>] Fix issue with duplicated attribute names in styles.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/issues/3416?ref=connortumbleson.com" rel="noopener noreferrer">#3416</a>] Fix issue with writing null value resources.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/issues/3421?ref=connortumbleson.com" rel="noopener noreferrer">#3421</a>] Fix issue with aapt2 falling on private resources.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/issues/3427?ref=connortumbleson.com" rel="noopener noreferrer">#3427</a>] Fix issue with treating warnings as errors in aapt2.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/issues/3377?ref=connortumbleson.com" rel="noopener noreferrer">#3377</a>] Remove Docker published package.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3376?ref=connortumbleson.com" rel="noopener noreferrer">#3376</a>] Upgrade Gradle to <code>8.4</code>. (Thanks ArjunaKumarMohanta)</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3412?ref=connortumbleson.com" rel="noopener noreferrer">#3414</a>, <a href="https://github.com/iBotPeaches/Apktool/pull/3453?ref=connortumbleson.com" rel="noopener noreferrer">#3453</a>] Upgrade <code>commons-io</code> to <code>2.15.1</code>.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3413?ref=connortumbleson.com" rel="noopener noreferrer">#3413</a>] Upgrade <code>commons-cli</code> to <code>1.6.0</code>.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3443?ref=connortumbleson.com" rel="noopener noreferrer">#3443</a>] Upgrade <code>commons-lang3</code> to <code>3.14.0</code>.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3414?ref=connortumbleson.com" rel="noopener noreferrer">#3414</a>] Upgrade <code>commons-text</code> to <code>1.11.0</code>.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3454?ref=connortumbleson.com" rel="noopener noreferrer">#3454</a>] Upgrade <code>actions/setup-java</code> to <code>4</code>.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3384?ref=connortumbleson.com" rel="noopener noreferrer">#3384</a>] Upgrade <code>docker/build-push-action</code> to <code>v5</code>.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3445?ref=connortumbleson.com" rel="noopener noreferrer">#3445</a>] Upgrade <code>gradle/gradle-build-action</code> to <code>2.10.0</code>.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3386?ref=connortumbleson.com" rel="noopener noreferrer">#3386</a>] Upgrade <code>docker/setup-buildx-action</code> to <code>v3</code>.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3385?ref=connortumbleson.com" rel="noopener noreferrer">#3385</a>] Upgrade <code>docker/login-action</code> to <code>v3</code>.</li><li>[<a href="https://github.com/iBotPeaches/Apktool/pull/3444?ref=connortumbleson.com" rel="noopener noreferrer">#3444</a>] Upgrade <code>proguard/gradle</code> to <code>7.4.1</code>.</li></ul><h2 id="notes">Notes</h2><ul><li>The v2.9.x releases have moved to aapt2 being the default. If you&apos;d like to return to the previous behavior, please use <code>--use-aapt1</code> during build stage.</li></ul><h2 id="download">Download</h2><div class="kg-card kg-button-card kg-align-left"><a href="https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.1.jar?ref=connortumbleson.com" class="kg-btn kg-btn-accent">Download Apktool 2.9.1</a></div><ul>
<li><a href="https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.1.jar?ref=connortumbleson.com">Apktool 2.9.1</a>
<ul>
<li><code>40705d4cf2fd3b4f605872e993f0d4a3</code> (md5)</li>
<li><code>de7ce8aa109acb649e7f69cfe91030ffc20dbcc46edd8abbf6c2d1e36cfccd7b</code> (sha256)</li>
<li>Rename to <code>apktool.jar</code> and follow the <a href="https://apktool.org/docs/install?ref=connortumbleson.com">Instruction Guide</a> if you need help.</li>
</ul>
</li>
<li><a href="https://apktool.org/blog/apktool-2.9.1?ref=connortumbleson.com">2.9.1 Doc Site Post</a></li>
</ul>
<h2 id="links">Links</h2><ul><li><a href="https://apktool.org/?ref=connortumbleson.com">Project Site</a></li><li><a href="https://github.com/iBotPeaches/Apktool?ref=connortumbleson.com">GitHub</a></li><li><a href="https://github.com/iBotPeaches/Apktool/issues?ref=connortumbleson.com">Bug Tracker</a></li><li><a href="https://forum.xda-developers.com/showthread.php?t=1755243&amp;ref=connortumbleson.com">XDA Thread</a></li><li><a href="https://github.com/sponsors/iBotPeaches?ref=connortumbleson.com" rel="noreferrer">GitHub Sponsors</a></li><li><a href="https://www.buymeacoffee.com/iBotPeaches?ref=connortumbleson.com">Buy me a <s>Coffee</s> Beer</a></li></ul>]]></content:encoded></item><item><title><![CDATA[A Lost Friend]]></title><description><![CDATA[Like what I'm sure happened for others - the pandemic and world events led to losing a friend.]]></description><link>https://connortumbleson.com/2023/12/04/a-lost-friend/</link><guid isPermaLink="false">65686fe8ff949c0afb5e7c82</guid><category><![CDATA[Personal]]></category><dc:creator><![CDATA[Connor Tumbleson]]></dc:creator><pubDate>Mon, 04 Dec 2023 03:30:30 GMT</pubDate><media:content url="https://connortumbleson.com/content/images/2023/11/photo-1626351545208-28c9080106ba-1.jpg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1460687521562-9eead9abe9e8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fG1pc3Npbmd8ZW58MHx8fHwxNzAxMzQ2MDczfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" class="kg-image" alt="A Lost Friend" loading="lazy" width="5760" height="3840" srcset="https://images.unsplash.com/photo-1460687521562-9eead9abe9e8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fG1pc3Npbmd8ZW58MHx8fHwxNzAxMzQ2MDczfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1460687521562-9eead9abe9e8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fG1pc3Npbmd8ZW58MHx8fHwxNzAxMzQ2MDczfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1460687521562-9eead9abe9e8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fG1pc3Npbmd8ZW58MHx8fHwxNzAxMzQ2MDczfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1460687521562-9eead9abe9e8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fG1pc3Npbmd8ZW58MHx8fHwxNzAxMzQ2MDczfDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@alxznder?ref=connortumbleson.com"><span style="white-space: pre-wrap;">Alexander Lam</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><img src="https://connortumbleson.com/content/images/2023/11/photo-1626351545208-28c9080106ba-1.jpg" alt="A Lost Friend"><p>If we roll the clock back to January 2020 - we have a <a href="https://connortumbleson.com/2020/01/27/lets-talk-epidemics/">blog post</a> I wrote related to Epidemics about the start of the Wuhan outbreak. I ended that post with this line:</p><blockquote>There is even rumor as of writing this post that the 3rd confirmed case in USA has been identified.</blockquote><p>Little did I know while writing that what would later happen, because as you know we had way more than 3 confirmed cases. What I couldn&apos;t predict would happen is how this event of COVID-19 sparked so many events that resulted in losing an individual as a friend.</p><p>In group chats the first event that started debates among friends was the rise of wearing a mask.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/11/masks.png" class="kg-image" alt="A Lost Friend" loading="lazy" width="1008" height="756" srcset="https://connortumbleson.com/content/images/size/w600/2023/11/masks.png 600w, https://connortumbleson.com/content/images/size/w1000/2023/11/masks.png 1000w, https://connortumbleson.com/content/images/2023/11/masks.png 1008w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">masks on masks</span></figcaption></figure><p>This led to what I would describe as a heated argument amongst a group of random friends. There was this one friend in specific that couldn&apos;t believe he was being forced to wear a mask and frequently ignored the request. This boiled down to being American, but spawned so many debates in our chat. I&apos;m sure these discussions were prevalent in thousands of chats around the world.</p><p>Our group was getting divided - those who wouldn&apos;t mind putting some cloth on their face to protect the safety of others and thus who felt it was a violation of their rights and disgusting to breath their own exhale. At this point though we were still all friends even if discussions got heated at times.</p><p>Boy though - it was getting old fast. It seemed for this one individual that he was turning to avoiding business at any place that refused him service for refusal of wearing a mask. When that occurred - it was straight to the group chat to release that rant of that business and start all the discussions up again. Personally, I was convinced this friend was just going door to door in order to find places that would react to his disobedience, because it seemed like this guy shopped a lot.</p><p>This is when we lost someone in the group chat - this I believe occurred when arguments got heated.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/11/photo-1626351545208-28c9080106ba.jpg" class="kg-image" alt="A Lost Friend" loading="lazy" width="2000" height="1333" srcset="https://connortumbleson.com/content/images/size/w600/2023/11/photo-1626351545208-28c9080106ba.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2023/11/photo-1626351545208-28c9080106ba.jpg 1000w, https://connortumbleson.com/content/images/size/w1600/2023/11/photo-1626351545208-28c9080106ba.jpg 1600w, https://connortumbleson.com/content/images/2023/11/photo-1626351545208-28c9080106ba.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@towfiqu999999?ref=connortumbleson.com"><span style="white-space: pre-wrap;">Towfiqu barbhuiya</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>I couldn&apos;t have predicted that this would have further accelerated to extreme drama when the COVID-19 vaccine was available. When December 2020 hit our friend group again had folks posting and discussing the different brands of vaccination. This was more a discussion of the shot, the feeling and recovery and everything in between.</p><p>I&apos;m sure you can tell where this is going - that one friend was livid that anyone would subject themselves to an alleged rushed, controlling and poisonous cocktail. This is what basically broke the chat because like all arguments they all get back to politics at some point. It seemed someone found a trigger point with some discussion item for this individual. It seemed this awoke a beast within him - it went into realms that I thought were legitimately jokes.</p><p>We were now in discussions about mind control, 5G towers and Bill Gates sponsoring vaccine development. I&apos;m fairly sure that a good chunk of this group muted this chat somewhere around this point as the responders of these discussions basically became the same three people.</p><p>For the most part - the chat died after this event and stayed dead. When I peeked back at some point - there was only 4 of us left. My guess is the others read up on the chat when they had time and didn&apos;t like what they saw and left.</p><p>I stayed in the chat because much like on Twitter if I unfollowed everyone I disagree with, then my feed becomes a never ending circle of things I want to see and agree with. I need to see some things I don&apos;t agree with to keep me on edge from falling into an algorithm trap of a warped perception. Now of course typing that staying in a group chat vs following someone on a social media site seem completely different.</p><figure class="kg-card kg-image-card"><img src="https://connortumbleson.com/content/images/2023/12/covid.PNG" class="kg-image" alt="A Lost Friend" loading="lazy" width="928" height="335" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/covid.PNG 600w, https://connortumbleson.com/content/images/2023/12/covid.PNG 928w" sizes="(min-width: 720px) 720px"></figure><p>As months passed - it was clear this group of random engineers chatting was dead, but we still interacted a bit on GitHub/Twitter when paths crossed. Since COVID-19 gave us a lot of time at home - we were programming a lot.</p><p>One morning I jumped onto GitHub and saw a comment from this same individual asking a very odd question on a repository. This was some repository about visualizing police brutality in response to the George Floyd death. I don&apos;t even feel comfortable posting what was said, but the comment was intended to evoke a response about the situation and had nothing to do with the project.</p><p>I was pretty upset reading this because in my head I was trying to figure out if this friend/individual had his beliefs warped in the short period of a pandemic or had actually believed these things himself since forever.</p><p>This is where I realized I had to do something, but out of selfishness. It turns out this individual had not stopped growing into this realm of just pure hate, racism and misinformation. They were not afraid of posting it everywhere now from images, responses and more. It seemed this individual just wanted to argue with people on the Internet and I realized my affiliation was public with this individual.</p><p>I looked at some of my recent follows and interactions on Twitter and I didn&apos;t like what I saw. It seemed association with a friend had caught up to me.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://connortumbleson.com/content/images/2023/12/photo-1644648479153-2a3dbee76212.jpg" class="kg-image" alt="A Lost Friend" loading="lazy" width="2000" height="1125" srcset="https://connortumbleson.com/content/images/size/w600/2023/12/photo-1644648479153-2a3dbee76212.jpg 600w, https://connortumbleson.com/content/images/size/w1000/2023/12/photo-1644648479153-2a3dbee76212.jpg 1000w, https://connortumbleson.com/content/images/size/w1600/2023/12/photo-1644648479153-2a3dbee76212.jpg 1600w, https://connortumbleson.com/content/images/2023/12/photo-1644648479153-2a3dbee76212.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo by </span><a href="https://unsplash.com/@aresbuddhi?ref=connortumbleson.com"><span style="white-space: pre-wrap;">BUDDHI Kumar SHRESTHA</span></a><span style="white-space: pre-wrap;"> / </span><a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"><span style="white-space: pre-wrap;">Unsplash</span></a></figcaption></figure><p>So I messaged him and asked him what was going on. That was a terrible idea. There was a loud rejection for everything I asked: I&apos;m being brainwashed, I get my news from fake sources, I&apos;m turning into every possible bad word. Even when I broke questions down to their absolute basic form he doubled down or even tripled down to some very morally/ethically wrong points. I couldn&apos;t even have a good adult conversation about differing opinions without getting tilted.</p><p>For a brief moment I wondered if some of it could be true. Could I inadvertently be getting my news/research/ideas from warped sources? That only lasted for a few microseconds when I realized we were talking about simple ethical and moral issues at the end of it.</p><p>So I started with a friend I thought I knew - we built some great projects together. Now this individual is blocked on every platform and my association has been broken. So I lost a friend and I&apos;m guessing this story isn&apos;t unique to me, but this draft has been sitting for years - so time to finish it.</p><p></p>]]></content:encoded></item></channel></rss>