{"id":7753,"date":"2022-01-01T18:27:34","date_gmt":"2022-01-01T13:27:34","guid":{"rendered":"https:\/\/ahmadawais.com\/?p=7753"},"modified":"2022-01-31T19:59:32","modified_gmt":"2022-01-31T14:59:32","slug":"wordle-solved-reverse-engineering-and-hacking-wordle","status":"publish","type":"post","link":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/","title":{"rendered":"Wordle Solved: Reverse Engineering and Hacking Wordle"},"content":{"rendered":"<p>It&#8217;s 1st January 2022 \u2014 while enjoying vacations from work, I kept hearing about this word puzzle called <a href=\"https:\/\/www.powerlanguage.co.uk\/wordle\/\">Wordle<\/a> \u2014 and figured I&#8217;d learn how it works. It&#8217;s gone from dozens of players to hundreds of thousands in a few months, created by Josh Wardle \u2014 a software engineer in Brooklyn for his partner. <em>This post has no spoilers.<\/em><\/p>\n<\/section>\n<div class=\"postcontents full\">\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7754 size-full\" src=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled.jpg\" alt=\"Wordle\" width=\"2560\" height=\"1600\" srcset=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled.jpg 2560w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled-300x188.jpg 300w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled-1024x640.jpg 1024w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-768x480.jpg 768w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled-1536x960.jpg 1536w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled-2048x1280.jpg 2048w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled-1680x1050.jpg 1680w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled-860x538.jpg 860w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled-680x425.jpg 680w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled-400x250.jpg 400w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-scaled-50x31.jpg 50w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<\/div>\n<section class=\"postcontents wrapper\">\n<h2 id=\"reverse-engineering-wordle\">Reverse Engineering Wordle<a href=\"#reverse-engineering-wordle\" class=\"heading-link\">#<\/a><\/h2>\n<p>While I did enjoy playing it for a day or two \u2014 soon after, I started to wonder if I could create a CLI to solve this game for me. You know I love creating CLIs, <em>right<\/em>?<\/p>\n<blockquote><p>If you&#8217;re new here, then you need to know that I&#8217;m a <strong>big fan of automation<\/strong>. I have <a href=\"https:\/\/github.com\/AhmadAwais\">created hundreds of free and open-source CLIs<\/a>, even a <a href=\"https:\/\/github.com\/ahmadawais\/create-node-cli\"><strong>CLI to create CLIs<\/strong><\/a>, and a 10-hour long course with <a href=\"https:\/\/nodecli.com\/?utm_source=ahmadawais.com&amp;utm_medium=referral&amp;utm_campaign=Wordle%20Solved%3A%20Reverse%20Engineering%20and%20Hacking%20Wordle\">22 projects<\/a> and 100 videos \u2014 where I <a href=\"https:\/\/ahmadawais.com\/courses\/\">teach<\/a> how to bend JavaScript to your will, separating yourself from 99% of humankind, and building any kind of automation software. It&#8217;s called <strong><a href=\"https:\/\/nodecli.com\/?utm_source=ahmadawais.com&amp;utm_medium=referral&amp;utm_campaign=Wordle%20Solved%3A%20Reverse%20Engineering%20and%20Hacking%20Wordle\">NodeCLI.com<\/a><\/strong>.<\/p><\/blockquote>\n<h2 id=\"looking-under-the-hood\">Looking under the hood<a href=\"#looking-under-the-hood\" class=\"heading-link\">#<\/a><\/h2>\n<p>As any web developer could imagine \u2014 I started by inspecting the source code. I figured there must be some API endpoint with a database of words. Messing around with the Network tab, I found nothing.<\/p>\n<h3 id=\"the-aha-moment\">The AHA moment<a href=\"#the-aha-moment\" class=\"heading-link\">#<\/a><\/h3>\n<p>For a while, I was like, meh \u00af\\_(\u30c4)_\/\u00af looks like we&#8217;re going down the rabbit hole, ain&#8217;t we. But you know, before I do that, let&#8217;s check if there&#8217;s something stored in the localStorage. I found the entire game state with the <code>solution<\/code> key inside there, to my surprise. \ud83e\udd73<\/p>\n<\/section>\n<div class=\"postcontents full\">\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7757\" src=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution.jpg\" alt=\"Wordle Solution\" width=\"1355\" height=\"909\" srcset=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution.jpg 1355w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-300x201.jpg 300w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-1024x687.jpg 1024w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-768x515.jpg 768w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-860x577.jpg 860w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-680x456.jpg 680w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-400x268.jpg 400w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-50x34.jpg 50w\" sizes=\"auto, (max-width: 1355px) 100vw, 1355px\" \/><\/p>\n<\/div>\n<section class=\"postcontents wrapper\">\n<h3 id=\"the-omg-wtfbbq-moment\">The OMG.WTF?BBQ! moment<a href=\"#the-omg-wtfbbq-moment\" class=\"heading-link\">#<\/a><\/h3>\n<p>No network requests. Game&#8217;s solution in localStorage.<\/p>\n<p>Something tells me there&#8217;s more to the story here. Let&#8217;s search for the word <code>REBUS<\/code> (the wordle solution today 2022-01-01). Nops didn&#8217;t find anything.<\/p>\n<p>Let&#8217;s look for the JavaScript files. And there it was, a huge array of words defined as a variable <code>La<\/code> that Wordle uses in combination with dates to give us so much more pain (fun?!) during the pandemic.<\/p>\n<pre class=\"lang:javascript\">var La = [\"cigar\", \"rebut\", \"\u2026 2,315 more words\"]<\/pre>\n<\/section>\n<div class=\"postcontents full\">\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7758\" src=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-list.jpg\" alt=\"Wordle Solution List\" width=\"1199\" height=\"632\" srcset=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-list.jpg 1199w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-list-300x158.jpg 300w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-list-1024x540.jpg 1024w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-list-768x405.jpg 768w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-list-860x453.jpg 860w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-list-680x358.jpg 680w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-list-400x211.jpg 400w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solution-list-50x26.jpg 50w\" sizes=\"auto, (max-width: 1199px) 100vw, 1199px\" \/><\/p>\n<\/div>\n<section class=\"postcontents wrapper\">\n<h3 id=\"figuring-out-the-algorithm\">Figuring out the algorithm<a href=\"#figuring-out-the-algorithm\" class=\"heading-link\">#<\/a><\/h3>\n<p>At this point, I knew I had discovered today&#8217;s solution and the entire list of words. All I needed to do was reverse engineer the minified JavaScript file to figure out how one of the words gets picked.<\/p>\n<p>Skimming through over 15,625 lines of code, I found a function called <code>Da<\/code>.<\/p>\n<pre class=\"lang:javascript\">function Da(e) {\r\n\tvar a, s = Ga(e);\r\n\treturn (a = s % La.length), La[a];\r\n}<\/pre>\n<p>This function calls another function <code>Ga<\/code> to find an index which is then used to find a single word from a gigantic list of words defined as <code>La<\/code>.<\/p>\n<p>Funny enough, right after this function is the <code>Ga<\/code> function:<\/p>\n<pre class=\"lang:javascript\">function Ga(e) {\r\n    return Na(Ha, e);\r\n}<\/pre>\n<p>OMG, yet another function call in here called <code>Na<\/code> and another variable <code>Ha<\/code>. Upon searching, I found the <code>Ha<\/code> variable. This looks like a date in 2021. Maybe this is when the Wordle game was launched?! The day zero.<\/p>\n<pre class=\"lang:javascript\">var Ha = new Date(2021, 5, 19, 0, 0, 0, 0);<\/pre>\n<p>Oh, such fun, much luck \u2014 right below <code>Ha<\/code> I found the <code>Na<\/code> function:<\/p>\n<pre class=\"lang:javascript\">function Na(e, a) {\r\n    var s = new Date(e),\r\n        t = new Date(a).setHours(0, 0, 0, 0) - s.setHours(0, 0, 0, 0);\r\n    return Math.round(t \/ 864e5);\r\n}<\/pre>\n<p><strong>THIS. IS. IT.<\/strong> Evidently, this function finds the number of days between two dates and then rounds it off to an integer value for finding a word on that index from the <code>La<\/code> words list.<\/p>\n<p>And finally, the mysterious input <code>e<\/code> in all of these functions was today&#8217;s date. This bugger was a bit hard to find.<\/p>\n<pre class=\"lang:javascript\">(e.today = new Date());<\/pre>\n<p>And just like that, I was able to reverse engineer the following code, which picks up the words for yesterday, today, and tomorrow even.<\/p>\n<pre class=\"lang:javascript\">function convertDateToIndex(e, a) {\r\n\tlet s = new Date(e),\r\n\t\tt = new Date(a).setHours(0, 0, 0, 0) - s.setHours(0, 0, 0, 0);\r\n\treturn Math.floor(t \/ 864e5);\r\n}\r\n\r\nlet baseDate = new Date(2021, 5, 19, 0, 0, 0, 0);\r\n\r\nfunction getIndex(todaysDate) {\r\n\treturn convertDateToIndex(baseDate, todaysDate);\r\n}\r\n\r\nfunction getSolution(today) {\r\n\tlet a,\r\n\t\ts = getIndex(today);\r\n\treturn (a = s % wordleWords.length), wordleWords[a];\r\n}\r\n\r\nlet today = new Date();\r\nlet yesterday = new Date().setDate(today.getDate() - 1);\r\nlet tomorrow = new Date().setDate(today.getDate() + 1);<\/pre>\n<\/section>\n<div class=\"postcontents full\">\n<h2 id=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7768\" src=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais.jpg\" alt=\"Wordle Solved Ahmad Awais\" width=\"1280\" height=\"800\" srcset=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais.jpg 1280w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais-300x188.jpg 300w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais-1024x640.jpg 1024w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais-768x480.jpg 768w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais-860x538.jpg 860w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais-680x425.jpg 680w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais-400x250.jpg 400w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais-50x31.jpg 50w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais-600x375.jpg 600w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><a href=\"#\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<section class=\"postcontents wrapper\">\n<h2 id=\"wordle-solved-javascript-bookmarklet\">Wordle Solved JavaScript Bookmarklet<a href=\"#wordle-solved-javascript-bookmarklet\" class=\"heading-link\">#<\/a><\/h2>\n<p>Create and install this bookmarklet to help solve Wordle.<\/p>\n<p>Make a new bookmark in your browser (right-click on the <a href=\"https:\/\/support.google.com\/chrome\/answer\/95745?hl=en\" rel=\"nofollow\">bookmarks bar<\/a> and click <code>Add Page...<\/code>)<\/p>\n<ul dir=\"auto\">\n<li>For the <code>Name<\/code> you might put &#8220;Wordle Solved&#8221;.<\/li>\n<li>Copy the code block below, paste this into the <code>URL<\/code> of a new bookmark.<\/li>\n<\/ul>\n<pre class=\"lang:javascript\">javascript:alert(\"Wordle Solved: \"+JSON.parse(window.localStorage.getItem(\"gameState\")).solution.toUpperCase())<\/pre>\n<p>Navigate to <a href=\"https:\/\/www.powerlanguage.co.uk\/wordle\/\">Wordle<\/a> and click the bookmarklet. Voila!<\/p>\n<h2 dir=\"auto\" dir=\"auto\" id=\"wordle-solved-chrome-extension\"><a href=\"https:\/\/github.com\/ahmadawais\/wordle-solved\/\">Wordle-solved<\/a> Chrome Extension<a href=\"#wordle-solved-chrome-extension\" class=\"heading-link\">#<\/a><\/h2>\n<p>Looking for a more fancy solution, with the words listed for yesterday, today, and tomorrow \u2014 well, it&#8217;s your lucky day. I built a Chrome extension called <strong><a href=\"https:\/\/github.com\/ahmadawais\/wordle-solved\/\">wordle-solved<\/a><\/strong>. I love those animations. <em>Yay!<\/em><\/p>\n<p><a href=\"https:\/\/github.com\/ahmadawais\/wordle-solved\/\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"554\" class=\"alignnone size-full wp-image-7761\" src=\"https:\/\/raw.githubusercontent.com\/ahmadawais\/wordle-solved\/main\/.github\/wordle-solved-chrome-extension.gif\" alt=\"Wordle Solved Chrome Extension\" \/><\/a><\/p>\n<ul dir=\"auto\">\n<li>\ud83d\udce6 Chrome extension that solves Wordle puzzles for you<\/li>\n<li>\ud83e\udd2f Automatic prediction of the upcoming word tomorrow<\/li>\n<\/ul>\n<p>You can read the instructions in the <a href=\"https:\/\/github.com\/ahmadawais\/wordle-solved\/\">GitHub readme file<\/a> or below:<\/p>\n<ol dir=\"auto\">\n<li><a href=\"https:\/\/raw.githubusercontent.com\/ahmadawais\/wordle-solved\/main\/wordle-solved-ahmadawais.zip\" rel=\"nofollow\">Click here to Download<\/a> the unpacked Chrome extension<\/li>\n<li>Open Chrome and open this URL <code>chrome:\/\/extensions<\/code><\/li>\n<li>Enable <code>Developer mode<\/code> (top-right corner)<\/li>\n<li>Click on the <kbd>Load unpacked<\/kbd> button (top-left corner)<\/li>\n<li>Select the unzipped extension folder from Step 1 \u2014 All done!<\/li>\n<li>Click the <code>W<\/code> icon of <code>Wordle Solved<\/code> extension to check the guess. You may also find today&#8217;s guess already filled (<strong>SPOILER<\/strong>)<\/li>\n<\/ol>\n<h2 id=\"wordle-solved-cli-coz-why-not\"><a href=\"https:\/\/github.com\/ahmadawais\/wordle-solved-cli\">wordle-solved-cli<\/a> Coz why not?!<a href=\"#wordle-solved-cli-coz-why-not\" class=\"heading-link\">#<\/a><\/h2>\n<p>I didn&#8217;t stop there, hehe \u2014 went ahead and built a CLI using <a href=\"https:\/\/github.com\/AhmadAwais\/create-node-cli\">create-node-cli<\/a>, which tries to mimic the same UI in the terminal for all y&#8217;all terminal junkies like me. Install it globally <code>npm i -g wordle-solved-cli<\/code> and then run <code>wordle<\/code> anywhere. Woohoo! \ud83e\udd73<\/p>\n<p><a href=\"https:\/\/github.com\/ahmadawais\/wordle-solved-cli\/\"><img decoding=\"async\" class=\"alignnone size-full wp-image-7761\" src=\"https:\/\/raw.githubusercontent.com\/ahmadawais\/wordle-solved-cli\/main\/.github\/wordle-solved-cli.gif\" alt=\"Wordle Solved CLI\" \/><\/a><\/p>\n<p>Okay, I guess this is enough over-engineering for one day. Have fun solving Wordle with these tiny little automation tools. Use your code for good. I&#8217;d love to have you learn automation with me via <a href=\"https:\/\/nodecli.com\/?utm_source=ahmadawais.com&amp;utm_medium=referral&amp;utm_campaign=Wordle%20Solved%3A%20Reverse%20Engineering%20and%20Hacking%20Wordle\">NodeCLI.com<\/a>.<\/p>\n<p>P.S. SPOILERS in the tools but not in the post. Please do NOT spoil the fun of this fantastic game for anyone.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The story of how Awais reverse-engineered the famous Wordle game and built not one, not two, but three small tools to help developers and non-developers solve Wordle.<\/p>\n","protected":false},"author":2,"featured_media":7768,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7753","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-life"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Wordle Solved: Reverse Engineering and Hacking Wordle<\/title>\n<meta name=\"description\" content=\"The story of how Awais reverse-engineered the famous Wordle game and built not one, not two, but three small tools to help developers and non-developers solve Wordle.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wordle Solved: Reverse Engineering and Hacking Wordle\" \/>\n<meta property=\"og:description\" content=\"The story of how Awais reverse-engineered the famous Wordle game and built not one, not two, but three small tools to help developers and non-developers solve Wordle.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/\" \/>\n<meta property=\"og:site_name\" content=\"Ahmad Awais\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/AhmadAwais\" \/>\n<meta property=\"article:author\" content=\"https:\/\/facebook.com\/AhmadAwais\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-01T13:27:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-31T14:59:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ahmad Awais\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MrAhmadAwais\" \/>\n<meta name=\"twitter:site\" content=\"@MrAhmadAwais\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ahmad Awais\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/\"},\"author\":{\"name\":\"Ahmad Awais\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\"},\"headline\":\"Wordle Solved: Reverse Engineering and Hacking Wordle\",\"datePublished\":\"2022-01-01T13:27:34+00:00\",\"dateModified\":\"2022-01-31T14:59:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/\"},\"wordCount\":859,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\"},\"image\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/wordle-solved-ahmad-awais.jpg\",\"articleSection\":[\"Life\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/\",\"name\":\"Wordle Solved: Reverse Engineering and Hacking Wordle\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/wordle-solved-ahmad-awais.jpg\",\"datePublished\":\"2022-01-01T13:27:34+00:00\",\"dateModified\":\"2022-01-31T14:59:32+00:00\",\"description\":\"The story of how Awais reverse-engineered the famous Wordle game and built not one, not two, but three small tools to help developers and non-developers solve Wordle.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/wordle-solved-ahmad-awais.jpg\",\"contentUrl\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/wordle-solved-ahmad-awais.jpg\",\"width\":1280,\"height\":800,\"caption\":\"Wordle Solved Ahmad Awais\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wordle-solved-reverse-engineering-and-hacking-wordle\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ahmadawais.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wordle Solved: Reverse Engineering and Hacking Wordle\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#website\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/\",\"name\":\"Ahmad Awais\",\"description\":\"Founder &amp; CEO of CommandCode.ai f\\\/k\\\/a Langbase | Google Developers Advisory Board (gDAB) founding member\",\"publisher\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ahmadawais.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\",\"name\":\"Ahmad Awais\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\",\"contentUrl\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\",\"width\":2299,\"height\":1705,\"caption\":\"Ahmad Awais\"},\"logo\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\"},\"description\":\"Founder & CEO of \u2318 Command Code coding agent with taste. Founded Langbase.com, AI cloud to build, deploy, and scale AI agents with tools & memory \u00b7 Creator of Command.new. \\\"Awais is an awesome example for developers\\\" \u2014 Satya Nadella, CEO of Microsoft. NASA Mars Ingenuity Helicopter mission code contributor 8th GitHub Stars Award recipient with 5x GitHub Stars Award (Listed as GitHub's #1 JavaScript trending developer). Google Developers Expert Web DevRel. Ex VP Eng (DevTools & DevRel) Rapid \u00b7 Google Developers Advisory Board (gDAB) founding member \u00b7 AI\\\/ML\\\/DevTools Angel Investor (Replit, Resend, Daytona, Gumroad and you?) \u276f AI\\\/ML Advisory Board San Francisco, DevNetwork. Award-winning Open Source Engineering leader authored hundreds of open-source dev-tools and software libraries used by millions of developers, including Shades of Purple code theme and corona-cli. Linux Foundation (Node.js Committee Lead), OpenAPI Business Governing Board. Taught 108K+ developers via NodeCLI.com and VSCode.pro course. 274 million views, blogging for 24 yrs. \u276f Read more about Ahmad Awais or come say hi on \ud835\udd4f @MrAhmadAwais.\",\"sameAs\":[\"https:\\\/\\\/AhmadAwais.com\\\/\",\"https:\\\/\\\/facebook.com\\\/AhmadAwais\",\"https:\\\/\\\/instagram.com\\\/MrAhmadAwais\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/MrAhmadAwais\\\/\",\"https:\\\/\\\/x.com\\\/MrAhmadAwais\",\"https:\\\/\\\/youtube.com\\\/AhmadAwais\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wordle Solved: Reverse Engineering and Hacking Wordle","description":"The story of how Awais reverse-engineered the famous Wordle game and built not one, not two, but three small tools to help developers and non-developers solve Wordle.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/","og_locale":"en_US","og_type":"article","og_title":"Wordle Solved: Reverse Engineering and Hacking Wordle","og_description":"The story of how Awais reverse-engineered the famous Wordle game and built not one, not two, but three small tools to help developers and non-developers solve Wordle.","og_url":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/","og_site_name":"Ahmad Awais","article_publisher":"https:\/\/facebook.com\/AhmadAwais","article_author":"https:\/\/facebook.com\/AhmadAwais","article_published_time":"2022-01-01T13:27:34+00:00","article_modified_time":"2022-01-31T14:59:32+00:00","og_image":[{"width":1280,"height":800,"url":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais.jpg","type":"image\/jpeg"}],"author":"Ahmad Awais","twitter_card":"summary_large_image","twitter_creator":"@MrAhmadAwais","twitter_site":"@MrAhmadAwais","twitter_misc":{"Written by":"Ahmad Awais","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/#article","isPartOf":{"@id":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/"},"author":{"name":"Ahmad Awais","@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b"},"headline":"Wordle Solved: Reverse Engineering and Hacking Wordle","datePublished":"2022-01-01T13:27:34+00:00","dateModified":"2022-01-31T14:59:32+00:00","mainEntityOfPage":{"@id":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/"},"wordCount":859,"commentCount":0,"publisher":{"@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b"},"image":{"@id":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/#primaryimage"},"thumbnailUrl":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais.jpg","articleSection":["Life"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/","url":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/","name":"Wordle Solved: Reverse Engineering and Hacking Wordle","isPartOf":{"@id":"https:\/\/ahmadawais.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/#primaryimage"},"image":{"@id":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/#primaryimage"},"thumbnailUrl":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais.jpg","datePublished":"2022-01-01T13:27:34+00:00","dateModified":"2022-01-31T14:59:32+00:00","description":"The story of how Awais reverse-engineered the famous Wordle game and built not one, not two, but three small tools to help developers and non-developers solve Wordle.","breadcrumb":{"@id":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/#primaryimage","url":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais.jpg","contentUrl":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais.jpg","width":1280,"height":800,"caption":"Wordle Solved Ahmad Awais"},{"@type":"BreadcrumbList","@id":"https:\/\/ahmadawais.com\/wordle-solved-reverse-engineering-and-hacking-wordle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ahmadawais.com\/"},{"@type":"ListItem","position":2,"name":"Wordle Solved: Reverse Engineering and Hacking Wordle"}]},{"@type":"WebSite","@id":"https:\/\/ahmadawais.com\/#website","url":"https:\/\/ahmadawais.com\/","name":"Ahmad Awais","description":"Founder &amp; CEO of CommandCode.ai f\/k\/a Langbase | Google Developers Advisory Board (gDAB) founding member","publisher":{"@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ahmadawais.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b","name":"Ahmad Awais","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg","url":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg","contentUrl":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg","width":2299,"height":1705,"caption":"Ahmad Awais"},"logo":{"@id":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg"},"description":"Founder & CEO of \u2318 Command Code coding agent with taste. Founded Langbase.com, AI cloud to build, deploy, and scale AI agents with tools & memory \u00b7 Creator of Command.new. \"Awais is an awesome example for developers\" \u2014 Satya Nadella, CEO of Microsoft. NASA Mars Ingenuity Helicopter mission code contributor 8th GitHub Stars Award recipient with 5x GitHub Stars Award (Listed as GitHub's #1 JavaScript trending developer). Google Developers Expert Web DevRel. Ex VP Eng (DevTools & DevRel) Rapid \u00b7 Google Developers Advisory Board (gDAB) founding member \u00b7 AI\/ML\/DevTools Angel Investor (Replit, Resend, Daytona, Gumroad and you?) \u276f AI\/ML Advisory Board San Francisco, DevNetwork. Award-winning Open Source Engineering leader authored hundreds of open-source dev-tools and software libraries used by millions of developers, including Shades of Purple code theme and corona-cli. Linux Foundation (Node.js Committee Lead), OpenAPI Business Governing Board. Taught 108K+ developers via NodeCLI.com and VSCode.pro course. 274 million views, blogging for 24 yrs. \u276f Read more about Ahmad Awais or come say hi on \ud835\udd4f @MrAhmadAwais.","sameAs":["https:\/\/AhmadAwais.com\/","https:\/\/facebook.com\/AhmadAwais","https:\/\/instagram.com\/MrAhmadAwais\/","https:\/\/www.linkedin.com\/in\/MrAhmadAwais\/","https:\/\/x.com\/MrAhmadAwais","https:\/\/youtube.com\/AhmadAwais"]}]}},"jetpack_featured_media_url":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2022\/01\/wordle-solved-ahmad-awais.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts\/7753","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/comments?post=7753"}],"version-history":[{"count":5,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts\/7753\/revisions"}],"predecessor-version":[{"id":7769,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts\/7753\/revisions\/7769"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/media\/7768"}],"wp:attachment":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/media?parent=7753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/categories?post=7753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/tags?post=7753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}