<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cursor on MarkJacobsen.net</title><link>https://markjacobsen.net/tags/cursor/</link><description>Recent content in Cursor on MarkJacobsen.net</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 10 Jul 2026 20:51:04 +0000</lastBuildDate><atom:link href="https://markjacobsen.net/tags/cursor/index.xml" rel="self" type="application/rss+xml"/><item><title>Reverse Engineer a Browser Extension</title><link>https://markjacobsen.net/2026/07/reverse-engineer-a-browser-extension/</link><pubDate>Fri, 10 Jul 2026 20:51:04 +0000</pubDate><guid>https://markjacobsen.net/2026/07/reverse-engineer-a-browser-extension/</guid><description>&lt;p&gt;Ever need to reverse engineer how a browser extension is doing what it&amp;rsquo;s doing? Well, with a little help from Cursor I was able to do just that. The use case here was determining how the extension was parsing pages (i.e. what it was looking for and how it got what to look for), and then how it was invoking the thing it does (in this case making a HTTP call with info it found on a page).&lt;/p&gt;
&lt;p&gt;Fortunately the prompt was stupid simple:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;download the extension for [urlToChromeExtension] into [folder]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cursor downloaded the .crx file, unpacked it into a .zip, then extracted the zip to a folder. Amazing!&lt;/p&gt;
&lt;p&gt;From there it was simply a matter asking questions about the unpacked code.&lt;/p&gt;</description></item></channel></rss>