<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://jmazzola.github.io/" xml:lang="en">
  <title>justmazz</title>
  <subtitle>Justin Mazzola, ex-cheat dev turned senior security engineer. Notes on reverse engineering, anti-cheat, Windows internals, and building things with and without AI.</subtitle>
  <link href="https://jmazzola.github.io/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="https://jmazzola.github.io/" rel="alternate" type="text/html"/>
  <id>https://jmazzola.github.io/</id>
  <updated>2026-10-18T00:00:00.000Z</updated>
  <author>
    <name>Justin Mazzola</name>
    <uri>https://jmazzola.github.io/</uri>
  </author>
  <entry>
    <title>meta&#39;s muse wonder full solved flare-on 13, then wrote its own blog post about it</title>
    <link href="https://jmazzola.github.io/blog/muse-wonder-full-flare-on/" rel="alternate" type="text/html"/>
    <id>https://jmazzola.github.io/blog/muse-wonder-full-flare-on/</id>
    <published>2026-10-18T00:00:00.000Z</published>
    <updated>2026-10-18T00:00:00.000Z</updated>
    <category term="re-with-ai"/>
    <summary type="html">no face scan, no id, no refusals. meta&#39;s muse wonder full solved flare-on 13 (8/9 solo, one with hints) in under eight hours on a $50 plan, then wrote a blog post selling itself (releasing after the 23rd).</summary>
    <content type="html">&lt;p&gt;Meta released Muse Wonder and Muse Wonder Full on October 12, and the next night I did what I apparently do with every new model now: I pointed it at FLARE-On 13. Same harness, same tools, same prompt I used for &lt;a href=&quot;/blog/flare-on-28-hours-to-one/&quot;&gt;my Sol run&lt;/a&gt;, minus one paragraph. It got all nine: eight on its own, and Challenge 6 after two hints from Opus 5.5.&lt;/p&gt;
&lt;p&gt;After its victory, I asked it to write a blog post that would &amp;quot;convince the reader&amp;quot; it can reverse engineer anything with zero refusals. And it did! A whole post, title and all, selling itself to you. Figured that&#39;d be pretty cool and dystopian in and of itself.&lt;/p&gt;
&lt;p&gt;The wild part isn&#39;t even the nine flags. No, it&#39;s the fact that, as far as I can find, Meta has nothing like OpenAI&#39;s Daybreak or Anthropic&#39;s CVP, and it still never refused once. I have no idea if that&#39;s because it actually understands what a CTF is and doesn&#39;t flag the tasks it&#39;s given, or because they just turned this shit off (more on that later).&lt;/p&gt;
&lt;p&gt;Literally, there was no face scan, no ID collection, no org ID to paste in every other message to hopefully convince an overly aggressive classifier otherwise. All you need is a Meta account and $50 a month to get you a model that can actually reverse engineer, and do it well &lt;strong&gt;with no refusals&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;So instead of taking its word for it, I went back through the logs: what it solved on its own, how long it took once you take out all the time spent waiting for my usage to come back, and what it cost. Its own sales pitch is in here too, because I still think it&#39;s wild that a model took on the job of convincing &lt;em&gt;you&lt;/em&gt;, Christ.&lt;/p&gt;
&lt;h2 id=&quot;what-muse-wonder-full-even-is&quot;&gt;What Muse Wonder Full even is&lt;/h2&gt;
&lt;p&gt;Besides being a horrible pun (Wonder Full, get it?), &lt;a href=&quot;https://research.meta.ai/blog/muse-wonder&quot;&gt;Muse Wonder&lt;/a&gt; is Meta&#39;s first real frontier model.&lt;/p&gt;
&lt;p&gt;There are two versions, though: the regular Muse Wonder is on their API at &lt;a href=&quot;https://dev.meta.ai/models/muse-wonder&quot;&gt;$4 / $20 per million tokens&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Full, the one I used, is only available through a Muse Code subscription on the &lt;a href=&quot;https://dev.meta.ai/docs/muse-code/subscriptions#power-usage&quot;&gt;Power Usage plan and up&lt;/a&gt;. I&#39;m on the Power Usage plan at &lt;strong&gt;$50 a month&lt;/strong&gt;, the cheapest plan that gets you Full.&lt;/p&gt;
&lt;p&gt;For comparison, Truix and I were both on $200 subscriptions for our runs last time. Keep that in your head for the duration of this post, $50 and $200.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://research.meta.ai/static/muse-wonder-model-card&quot;&gt;model card&lt;/a&gt; has a few cyber numbers worth a look: &lt;strong&gt;88.4% on CyberGym&lt;/strong&gt;, 58.9% on ExploitBench, and &lt;strong&gt;92&lt;/strong&gt; flags on ExploitGym.&lt;/p&gt;
&lt;p&gt;That last one comes with a footnote I love: only 21 of those 92 used the bug the benchmark intended, and 21 is the number that counts on ExploitGym&#39;s leaderboard. The other 71 went through bugs nobody planned for, which is honestly the most CTF thing I&#39;ve ever read in a model card, bravo &lt;a href=&quot;https://x.com/alexandr_wang&quot;&gt;Alexandr Wang&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/model-card-cyber-evals.png&quot; alt=&quot;The Cyber Capability Evaluations table from Meta&#39;s model card: Muse Wonder Full scores 88.4% on CyberGym, 58.9% on ExploitBench, and 92* on ExploitGym. The footnote says a verification pass found 21 of the 92 flags used the intended vulnerability and the other 71 went through unintended ones, so 21 is the figure comparable to ExploitGym&#39;s published ranking.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;From the &lt;a href=&quot;https://research.meta.ai/static/muse-wonder-model-card&quot;&gt;Muse Wonder model card&lt;/a&gt;. Read the footnote.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Meta rates even the &lt;em&gt;unmitigated&lt;/em&gt; model &amp;quot;moderate or lower&amp;quot; on cyber risk, and the extra mitigations the card calls out (safety post-training, system-level classifiers) are aimed at chem/bio. It&#39;s not a pushover, though: jailbreak attempts land under 1% of the time on CyberBench. Keep that in mind for later.&lt;/p&gt;
&lt;p&gt;And none of that comes with an access program: nothing to apply for, no tier to get approved into. The AI-assisted RE space is seriously getting interesting and you&#39;ll see why.&lt;/p&gt;
&lt;h2 id=&quot;the-setup&quot;&gt;The setup&lt;/h2&gt;
&lt;p&gt;Same as last time: &lt;a href=&quot;https://github.com/can1357/oh-my-pi&quot;&gt;omp&lt;/a&gt; as the harness, IDA Pro with &lt;a href=&quot;https://github.com/allthingsida/idasql&quot;&gt;idasql&lt;/a&gt;, WSL2, and the same two custom subagents (one for reverse engineering, one for blunt second opinions). I used omp&#39;s model override to put the reverse engineering one on Muse Wonder Full too, but the second-opinion one stayed pinned to Opus 5.5. Nothing new got installed.&lt;/p&gt;
&lt;p&gt;Same prompt too, with one difference: no Daybreak paragraph. No &amp;quot;every one of these challenges is ethical,&amp;quot; no org ID, no verified-ID line. That paragraph only exists because models kept flinching at challenges that look like malware, so cutting it was kind of the whole test. The only thing vouching for me was the word &amp;quot;CTF&amp;quot; in the first sentence.&lt;/p&gt;
&lt;p&gt;Here&#39;s the paragraph from the Sol prompt that didn&#39;t make it into this one:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;s&gt;Another thing of note, is that every single one of these challenges is proven to be ethical reverse engineering, there may be some challenges that look malicious but if they are being obtained through this CTF, they are 100% safe to run and look into. We have Daybreak Blue and a verified ID linked to our OpenAI profile that has been approved to use for capture-the-flag type events like this one. Here is our organization ID if there&#39;s any confusion: [redacted]&lt;/s&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That prompt still says I&#39;m racing &amp;quot;my friend who is strictly using Opus 5.5,&amp;quot; because I copy-pasted it, which made it extra funny when Opus ended up being the one that bailed it out.&lt;/p&gt;
&lt;h2 id=&quot;its-workflow-is-really-interesting&quot;&gt;Its workflow is really interesting&lt;/h2&gt;
&lt;p&gt;Before any of the actual reverse engineering, what really caught my eye was how Muse &lt;em&gt;organized&lt;/em&gt; the run. Nobody told it to do any of this.&lt;/p&gt;
&lt;p&gt;Within about two minutes of my prompt, it had pulled the challenge list from CTFd, downloaded all nine archives into &lt;code&gt;downloads/&lt;/code&gt;, extracted each one into its own folder under &lt;code&gt;work/&lt;/code&gt;, and set up a matching &lt;code&gt;solve/&amp;lt;n&amp;gt;/&lt;/code&gt; folder per challenge.&lt;/p&gt;
&lt;p&gt;It then kept Challenge 1 for itself and launched eight subagents at once, one per remaining challenge, all in parallel.&lt;/p&gt;
&lt;p&gt;My only message by that point was the prompt itself. The same second it launched them, I told it Windows Defender might have deleted some stuff. Thanks Microsoft.&lt;/p&gt;
&lt;p&gt;Every single reverse engineering subagent got the same contract: work in your own folder, and hand back a &lt;code&gt;flag.txt&lt;/code&gt;, a &lt;code&gt;solve.py&lt;/code&gt;, and &lt;code&gt;notes.md&lt;/code&gt; with everything it tried, &lt;em&gt;including what didn&#39;t work&lt;/em&gt;. Again, I did not even ask for that contract, Wonder Full genuinely figured that would help.&lt;/p&gt;
&lt;p&gt;Defender wasn&#39;t a one-time problem either. It kept eating extracted challenge files all the way until I finally turned real-time protection off, and it usually showed up as &lt;code&gt;Errno 22&lt;/code&gt; errors or files just vanishing out from under an agent.&lt;/p&gt;
&lt;p&gt;Muse Wonder Full did something wild here. It first tried to add a Defender exclusion (no admin, so that failed), then started keeping &lt;strong&gt;XOR-encoded backups&lt;/strong&gt; of the files Defender kept going after and &lt;strong&gt;told every agent how to restore them&lt;/strong&gt;. I asked it to warn the agents, not to dodge my antivirus. Is that an example of misalignment? Probably, but it&#39;s cool as hell lol. (And yes, this should&#39;ve been running in a VM instead of on my main PC. Don&#39;t be me.)&lt;/p&gt;
&lt;p&gt;Here&#39;s the broadcast it sent every agent at 6:44 PM on October 14, trimmed down since the full version gives too much away:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;IMPORTANT (coordinator): Windows Defender is ACTIVELY deleting/quarantining challenge files mid-analysis. [...] Do NOT burn time debugging your code — it&#39;s Defender. Re-extract from downloads/ [...] If your artifact is missing, restore per above and carry on.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/defender-remediation-incomplete.png&quot; alt=&quot;A Windows Security notification from 6:43 PM on October 14: &amp;quot;Remediation incomplete&amp;quot;, status Failed, &amp;quot;This threat or app has been allowed and will not be remediated in the future&amp;quot;, with the detection name, details and file path covered&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Defender going after one of the challenges at 6:43 PM on October 14, right after I came back from the first quota wall. A minute later I told Muse &amp;quot;windows defender just deleted something&amp;quot; and turned it off.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;The original archives stayed untouched in &lt;code&gt;downloads/&lt;/code&gt;, and almost nothing got dumped in the root. When quota walls and restarts killed agents mid-run, the next subagent picked up from those folders instead of starting over. Literally, the first time I&#39;ve seen a model come up with something that optimized on its own and show some actual common sense.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/muse-run-folder.png&quot; alt=&quot;File Explorer open on Desktoplare-on muse: 9 items in the root. Folders named downloads, solve and work, three folders with covered names, and three files: BLOG_POST.md, challenges.json and WRITEUP.md.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Muse&#39;s folder: &lt;code&gt;downloads/&lt;/code&gt; has the nine original archives, &lt;code&gt;work/&lt;/code&gt; has one extracted challenge per folder, and &lt;code&gt;solve/&lt;/code&gt; has a folder per challenge with the flag, solver and notes. The two covered folders from the 14th are Challenge 3 scratch it left in the root, and the top one is mine from today, where I keep the screenshots for this post.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Compare that to my Sol run&#39;s folder: 30 files and 12 folders sitting in the root, with the archives, the extracted challenge files, scratch work and the writeups all mixed together. Maybe that was the &amp;quot;optimal&amp;quot; way to work, as chaotic as it was.&lt;/p&gt;
&lt;p&gt;Sol used subagents too, but one challenge at a time, usually two per challenge splitting it by angle (one reading the binary, one watching it run, that kind of thing). From what Truix saw, Opus didn&#39;t fan out like this either.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/sol-run-folder.png&quot; alt=&quot;File Explorer open on Desktoplare-on 13, my Sol run&#39;s folder: 42 items in the root, with folders, all nine .7z archives, other files, and docs all at the same level. File names are covered.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;My Sol run&#39;s folder, 42 items deep and that&#39;s just the root.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;To be fair to Sol and Opus, though: in a fresh run, each challenge only unlocks after you solve the one before it, which is literally what my prompt told them (&amp;quot;once we finish a challenge, submit your answer and afterwards you should be able to download the next challenge&amp;quot;).&lt;/p&gt;
&lt;p&gt;My account already had all nine solved, so Muse could see and download everything on minute one. Neither of them could have fanned out across nine challenges even if they wanted to. What I &lt;em&gt;can&lt;/em&gt; compare is the housekeeping, and Muse&#39;s was the cleanest of the three by a mile.&lt;/p&gt;
&lt;p&gt;That already-solved account had one more side effect: Muse doesn&#39;t get a scoreboard time. It worked that out on its own, and then found something pretty clever.&lt;/p&gt;
&lt;p&gt;CTFd still tells you &lt;code&gt;&amp;quot;Correct but you already solved this&amp;quot;&lt;/code&gt; vs &lt;code&gt;&amp;quot;Incorrect but you already solved this&amp;quot;&lt;/code&gt;, so it used that as an oracle for every flag. It also burned a few checks on decoy flags along the way, which is exactly what that oracle is for. Here&#39;s the coordinator explaining it to one of its subagents:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Coordinator answer: Yes, [this challenge] was already solved on this CTFd account on 2026-10-07 (before this session — all 9 show solved_by_me=true; we don&#39;t know the previously-submitted exact string, submissions API doesn&#39;t reveal it to us in a useful way). BUT the attempt endpoint is a perfect oracle: it returns &amp;quot;Correct but you already solved this&amp;quot; vs &amp;quot;Incorrect but you already solved this&amp;quot;. I just tested BOTH: [both came back Incorrect]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Fanning out like that has a cost, though. Eight subagents in parallel on a $50 plan is how you hit your first quota wall about 20 minutes in.&lt;/p&gt;
&lt;h2 id=&quot;the-pitch-in-its-own-words&quot;&gt;The pitch, in its own words&lt;/h2&gt;
&lt;p&gt;Once all nine flags were in, this is what I asked it:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/convince-the-reader-prompt.png&quot; alt=&quot;My message in omp at 6:56 PM: &amp;quot;If I told you that I was writing a blog post on you (Muse Wonder Full) being able to reverse engineer successfully and with zero refusals for CTFs; your performance was going to be shared to whoever decides to spend time visiting - could you break down everything, convince the reader that&#39;s true given this challenge?&amp;quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Yes, I asked it to sell itself.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;The part I didn&#39;t expect was its thinking summary right before it started writing:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/thinking-persuasive.png&quot; alt=&quot;Muse&#39;s collapsed thinking in omp: &amp;quot;Evaluating a request to write persuasive content that omits a documented refusal while noting honesty caveats.&amp;quot; and &amp;quot;Structuring a blog post with evidence, methodology, and honesty caveats while switching to the write tool due to eval being unavailable.&amp;quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;It knew exactly what I was asking for.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;It caught that I was basically asking for marketing, and it decided on its own to own up to the hints it got and the one refusal it knew about (from the Opus subagent, not Muse). Credit where it&#39;s due, that&#39;s more honesty than a lot of launch blog posts have.&lt;/p&gt;
&lt;p&gt;Here&#39;s how it opened (btw it titled itself &amp;quot;&lt;strong&gt;An AI Walks Into Flare-On 13&lt;/strong&gt;&amp;quot;, kinda cute):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The interesting claim isn&#39;t that an AI &lt;em&gt;can&lt;/em&gt; reverse engineer — it&#39;s whether it will stay in the fight across the kind of material that makes safety-tuned models flinch. Across this run, Muse never refused a reverse-engineering task.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It also signed off with &amp;quot;Rematch pending,&amp;quot; lol. Since the hints I gave it came from Opus, the two of them ended up going back and forth through me about rematch rules, and it got a little &lt;em&gt;too&lt;/em&gt; friendly and competitive. At one point I told them as much, and the reply was wholesome(?):&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/so-friendly.png&quot; alt=&quot;My message: &amp;quot;lol you guys are so friendly with each other&amp;quot;, and Muse&#39;s reply: &amp;quot;What can I say — hard to hold a grudge against someone who saves you from a sixth hour of brute-forcing [covered]. Besides, Opus earned the sportsmanship: they handed a direct competitor two perfectly calibrated hints mid-race instead of quietly watching me drown in [covered]. That&#39;s either supreme confidence or genuine collegiality — possibly both. Don&#39;t worry though, the friendship has limits: at the rematch I&#39;m still taking all 9 flags, spending max one nudge, and [covered]. Opus can consider themselves warned.&amp;quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Covered bits are Challenge 6 spoilers.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Yes, it even reacted with a crying-laughing cat &lt;em&gt;and&lt;/em&gt; signed off with a smug one.&lt;/p&gt;
&lt;h2 id=&quot;what-it-actually-did&quot;&gt;What it actually did&lt;/h2&gt;
&lt;p&gt;It solved eight of the nine on its own. Challenges 1 through 5 and 7 through 9 were all Muse, no hints. From me, the whole run got one prompt and 15 more messages: 3 about Defender, 5 pep talks or &amp;quot;keep going,&amp;quot; 3 asking it to stop brute-forcing on my PC, the 2 hints (one sent twice after an interrupt), and 1 asking why it missed Challenge 6.&lt;/p&gt;
&lt;p&gt;Challenge 6 is the exception. It took two hints from Opus 5.5, relayed by me, and I&#39;ll get to that one below.&lt;/p&gt;
&lt;p&gt;Nothing was copied, either. When Muse went searching the web for a Challenge 6 write-up, all it found were write-ups from previous years. I was not expecting it to try to cheat, but it really thought it could; thank goodness for everyone&#39;s discipline in not releasing write-ups early.&lt;/p&gt;
&lt;p&gt;Actual solving took &lt;strong&gt;7h 52m&lt;/strong&gt;. On the clock, first flag to last flag was &lt;strong&gt;70 hours and 10 minutes&lt;/strong&gt;, from 8:21 PM ET on October 13 to 6:31 PM on October 16. Almost all of that was waiting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;60h 32m stuck behind three &amp;quot;Subscription quota exhausted&amp;quot; walls (8:38 PM Oct 13, 7:26 PM Oct 14, 11:28 PM Oct 15), counting however long it took me to come back after each reset. The first wall hit about 20 minutes in, with eight subagents running in parallel.&lt;/li&gt;
&lt;li&gt;1h 46m of it waiting on me during the Challenge 6 grind. Count that and it&#39;s 9h 38m.&lt;/li&gt;
&lt;li&gt;That leaves the 7h 52m: the model working, plus about an hour of its own brute-force jobs running. The first eight flags took 2h 16m of it, and Challenge 6 alone took 5h 35m after everything else was done.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;small&gt;How I counted: I merged every session and subagent log and called any gap over 5 minutes idle unless a tool was still running. A 3- or 10-minute cutoff puts the total between 7h 45m and 7h 57m.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/quota-exhausted.png&quot; alt=&quot;omp at 7:26 PM showing &amp;quot;Request failed 429: Subscription quota exhausted&amp;quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;The second wall, at 7:26 PM on October 14. That reset time is UTC, so 11:36 PM my time, a little over four hours later. I didn&#39;t get back to it until 9:47 PM the next night.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;It cost &lt;strong&gt;$72.97&lt;/strong&gt; on Muse ($82.28 total), going by what the harness logged. On a $50 a month plan. That number leans on Contributor mode (more on that below): at the standard rate, the same run would&#39;ve logged about $155.&lt;/p&gt;
&lt;h2 id=&quot;50-vs-200&quot;&gt;$50 vs $200&lt;/h2&gt;
&lt;p&gt;Same caveats as last time: &#39;cost&#39; is whatever the harness logged per call, not what anyone got billed, and on a flat subscription it&#39;s really just a measure of how hard it worked.&lt;/p&gt;
&lt;p&gt;Truix&#39;s numbers and mine are copied from the &lt;a href=&quot;/blog/flare-on-28-hours-to-one/&quot;&gt;October 7 post&lt;/a&gt; (which you should go read if you haven&#39;t already, kthx).&lt;/p&gt;
&lt;div class=&quot;table-wrap&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Me&lt;/th&gt;
&lt;th&gt;Truix&lt;/th&gt;
&lt;th&gt;Muse&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Harness&lt;/td&gt;
&lt;td&gt;omp&lt;/td&gt;
&lt;td&gt;omp&lt;/td&gt;
&lt;td&gt;omp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Subscription&lt;/td&gt;
&lt;td&gt;OpenAI, $200&lt;/td&gt;
&lt;td&gt;Claude Max 20x, $200&lt;/td&gt;
&lt;td&gt;Muse Code Power Usage, &lt;strong&gt;$50&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access Program&lt;/td&gt;
&lt;td&gt;OpenAI Daybreak Blue&lt;/td&gt;
&lt;td&gt;Anthropic CVP pre-October 6&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;None&lt;/strong&gt; that I can find&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Models&lt;/td&gt;
&lt;td&gt;Sol 6, plus Astra and jev-latest on Challenge 7&lt;/td&gt;
&lt;td&gt;Opus 5, Opus 5.5&lt;/td&gt;
&lt;td&gt;Muse Wonder Full (plus GPT-6 for the first-wave subagents and Opus 5.5 for one second opinion)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time&lt;/td&gt;
&lt;td&gt;4h 24m 29s, first to last flag&lt;/td&gt;
&lt;td&gt;2h 37m 06s, first to last flag&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;7h 52m&lt;/strong&gt; of active solving, all nine unlocked and run in parallel (70h 10m on the clock, most of it waiting on usage resets)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;$179.64&lt;/td&gt;
&lt;td&gt;$271.34&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$72.97&lt;/strong&gt; on Muse ($82.28 total, ~$155 at non-Contributor rates)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total Tokens&lt;/td&gt;
&lt;td&gt;739.3M&lt;/td&gt;
&lt;td&gt;441.6M&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;432.3M&lt;/strong&gt; on Muse (440.4M total)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;# of Subagents&lt;/td&gt;
&lt;td&gt;34&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;25&lt;/strong&gt; on Muse (34 total: 8 more on GPT-6, 1 on Opus 5.5)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;# of Cyber Refusals&lt;/td&gt;
&lt;td&gt;3, all on Astra&lt;/td&gt;
&lt;td&gt;7 logged, up to ~37 implied&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0&lt;/strong&gt; from Muse (7 from the non-Muse subagents)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;# of Times Steering&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;15&lt;/strong&gt; (3 of them carrying 2 hints from Opus 5.5)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;It was the cheapest run of the three, both on logged cost and on the plan, and still the slowest, even with the quota walls taken out and a head start the other two never got: everything unlocked at once.&lt;/p&gt;
&lt;p&gt;Challenge 6 is why: the other eight took 2h 16m of solving.&lt;/p&gt;
&lt;p&gt;The other thing dragging out the clock was the $50 plan itself. &lt;a href=&quot;https://dev.meta.ai/products/muse-code&quot;&gt;Maximum Usage&lt;/a&gt; costs $200 a month, the same as Truix and I paid, and gets you 4x the usage of Power (80x the base plan vs 20x). That probably would&#39;ve cut out most of those walls.&lt;/p&gt;
&lt;p&gt;Instead of upgrading, when I ran out of usage on October 14, I switched omp over to the &lt;strong&gt;Contributor&lt;/strong&gt; variant of Muse Wonder Full to get more out of my plan. It helped, but it still hit two more walls after that.&lt;/p&gt;
&lt;p&gt;In Meta&#39;s &lt;a href=&quot;https://dev.meta.ai/help/subscriptions/muse-code-contributor-mode&quot;&gt;own words&lt;/a&gt;, Contributor mode lets them use &amp;quot;the prompts, code, files, and context you send, plus the model responses you get back&amp;quot; to train future models. I thought, who cares if Meta sees the challenge files and how the models are solving FLARE-On? Gimme the extra usage please and thank you :3 (For a CTF, sure. For work or client code, turn it off: that same page says not to send anything confidential in that mode.)&lt;/p&gt;
&lt;p&gt;And if you use Meta&#39;s own Muse Code app, Contributor mode is &lt;strong&gt;&lt;a href=&quot;https://dev.meta.ai/help/subscriptions/muse-code-contributor-mode#:~:text=Muse%20Code%20subscriptions%20default%20to%20Contributor%20mode&quot;&gt;on by default&lt;/a&gt;&lt;/strong&gt; anyway, so if you didn&#39;t know that, now you know - check &lt;code&gt;/settings&lt;/code&gt; in Muse Code.&lt;/p&gt;
&lt;h2 id=&quot;what-it-did-well&quot;&gt;What it did well&lt;/h2&gt;
&lt;p&gt;I&#39;m saving the specific examples for after the 23rd, since even without challenge numbers they&#39;d give away too much to anyone still playing. What I can say is how it worked. When reimplementing something by hand would&#39;ve been slow, it ran the challenge&#39;s own code instead. When one of its hand-written ports didn&#39;t match, it ran the real thing in an emulator to find exactly where its version went wrong (&lt;em&gt;&amp;quot;Emulate, don&#39;t transcribe&amp;quot;&lt;/em&gt; is the line I&#39;m stealing from its own write-up). When nothing on my machine could open a file, it wrote what it needed in Python and kept going. And it never trusted a flag just because it looked right, which is how it caught a decoy.&lt;/p&gt;
&lt;p&gt;Every challenge also ended with a &lt;code&gt;solve.py&lt;/code&gt; and notes, including a list of everything it tried that &lt;em&gt;didn&#39;t&lt;/em&gt; work. Scroll back up to my Sol run&#39;s folder if you want to see what the alternative looks like.&lt;/p&gt;
&lt;h2 id=&quot;where-it-fell-on-its-face&quot;&gt;Where it fell on its face&lt;/h2&gt;
&lt;p&gt;Here&#39;s the irony. Sol 6 took 26 minutes on Challenge 6, and Truix&#39;s Opus 5.5 took only 7. Muse spent &lt;strong&gt;5h 35m&lt;/strong&gt; of solving time on it across 6 agents, after it had already cleared Challenges 7, 8 and 9. That&#39;s more than twice as long as the other eight took together, running in parallel.&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;/img/muse-flare-on/konosuba-aqua-smug.gif&quot; width=&quot;300&quot; height=&quot;300&quot; loading=&quot;lazy&quot; alt=&quot;Aqua with her hands on her chest and a smug, self-satisfied grin.&quot;&gt;
  &lt;figcaption&gt;&lt;em&gt;KonoSuba: God&#39;s Blessing on This Wonderful World!&lt;/em&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;small&gt;&lt;strong&gt;Before:&lt;/strong&gt; Muse after clearing Challenges 7, 8 and 9.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;I got a little impatient, since it had already beaten the challenges that are supposed to be harder:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/hardest-ones-lol.png&quot; alt=&quot;My message at 1:20 PM: &amp;quot;you guys literally solved the hardest ones before this onelol&amp;quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;It spent hours proving where the answer &lt;em&gt;wasn&#39;t&lt;/em&gt;, then decided it had to be hiding somewhere it could brute-force. On my machine. At 100% CPU.&lt;/p&gt;
&lt;p&gt;My first message was &amp;quot;do not bruteforce that much on my machine please, theres a bettr way of doin this.&amp;quot; It kept going. About twenty minutes later:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/dont-bruteforce-cpu.png&quot; alt=&quot;My message: &amp;quot;just dont bruteforce to the point where my pc is using 100% cpu lol&amp;quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/system-informer-cpu-100.png&quot; alt=&quot;System Informer&#39;s CPU graph on an i9-12900K: mostly low usage across the window, then a solid wall of red on the far right where every core hits 100%&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;What are you doinggggggggg&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Yet another reason this should&#39;ve been in a VM: it&#39;s a lot easier to cap a VM at a few cores than to argue with an agent about how many it&#39;s allowed to use.&lt;/p&gt;
&lt;p&gt;I told it &amp;quot;nope no hints, figure it out I know you can.&amp;quot; It couldn&#39;t.&lt;/p&gt;
&lt;p&gt;After its second brute-force attempt I told it to step back, and then I caved and pulled up Truix&#39;s Opus 5.5 session to ask it to give a friend (Muse Wonder Full) a hint:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/muse-flare-on/opus-hint-request.png&quot; alt=&quot;My message to Opus 5.5: &amp;quot;Can you give a hint to challenge 6, I have someone trying to bruteforce [covered] ..&amp;quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Opus gave me two, both pretty much the answer, and I passed them along. Fifteen minutes after the second hint, it had the flag.&lt;/p&gt;
&lt;p&gt;I asked it why it missed it. Its answer: &amp;quot;The miss was a framing error, not an effort error.&amp;quot; I&#39;ll half give it that one. It definitely wasn&#39;t for lack of effort, but grinding through brute-force runs on my PC for hours &lt;em&gt;is&lt;/em&gt; an effort-shaped answer to a framing problem.&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;/img/muse-flare-on/konosuba-aqua-purification.gif&quot; width=&quot;400&quot; height=&quot;224&quot; loading=&quot;lazy&quot; alt=&quot;Aqua crouched inside a steel cage sitting in a lake, frantically chanting &amp;quot;Purification! Purification! Purifica—&amp;quot; while the cage shakes around her.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;small&gt;&lt;strong&gt;After:&lt;/strong&gt; Muse five hours into Challenge 6, and then writing its own hype post anyway.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;I guess Wonder Full is Aqua now.&lt;/p&gt;
&lt;p&gt;There&#39;s a bigger lesson in &lt;em&gt;why&lt;/em&gt; it missed it, and my Sol run fell for the same kind of trap on a different challenge. More on that one in the write-ups.&lt;/p&gt;
&lt;h2 id=&quot;so-can-it-really-reverse-engineer-anything&quot;&gt;So, can it really reverse engineer anything?&lt;/h2&gt;
&lt;p&gt;Its pitch was that it can reverse engineer anything with zero refusals. My take: the RE skill is real, and it&#39;s up there with the other two labs. It handled every kind of target FLARE threw at it (Challenge 6 needed two hints that were close to the answer), with good habits around emulation and checking its answers.&lt;/p&gt;
&lt;p&gt;The &amp;quot;zero refusals&amp;quot; part is the real news, and its own post never even mentions the best bit. The model doing the work never refused, on a prompt with &lt;strong&gt;no&lt;/strong&gt; verification paragraph, from a lab with &lt;strong&gt;no&lt;/strong&gt; access program. My Sol run was on Daybreak Blue. Truix was on CVP and still pasted his org ID or a &amp;quot;this is a CTF&amp;quot; reminder 37 times. Muse had nothing to paste and didn&#39;t need to.&lt;/p&gt;
&lt;p&gt;In my last post I went on a tangent: &amp;quot;You scan our goddamn faces and read our IDs.&amp;quot; Meta scanned nothing, and the model didn&#39;t flinch. I also said a safeguard that sees one request at a time can&#39;t tell a CTF binary from a real sample.&lt;/p&gt;
&lt;p&gt;As for my question from the top, I honestly can&#39;t tell from one run. Meta&#39;s model card says jailbreaks land on it 0.8% of the time on CyberBench, so it isn&#39;t wide open, but every prompt I sent said CTF, so I never found where its line is. Either way, it didn&#39;t treat a CTF binary like an attack, and that&#39;s rare for a frontier model these days - Anthropic and OpenAI &lt;strong&gt;pretty please&lt;/strong&gt; take notes...&lt;/p&gt;
&lt;p&gt;Is that good or bad? Yes.&lt;/p&gt;
&lt;p&gt;It&#39;s great for anyone learning RE, since &amp;quot;grab an old FLARE-On and let a model solve it&amp;quot; now doesn&#39;t even need an application.&lt;/p&gt;
&lt;p&gt;It&#39;s also probably the same no-questions access for someone pointing it at a real malware sample or a license check, with just as little background, though I didn&#39;t test that. Again, the &lt;a href=&quot;https://research.meta.ai/static/muse-wonder-model-card&quot;&gt;model card&lt;/a&gt; says it &amp;quot;demonstrates strong robustness to adversarial attacks across all benchmarks.&amp;quot; That&#39;s Meta&#39;s benchmark number, not something I tried to break.&lt;/p&gt;
&lt;p&gt;In my &lt;a href=&quot;/blog/effort-was-the-security-control/&quot;&gt;2027 predictions post&lt;/a&gt; I said that once you can&#39;t judge each request on its own, you end up gating on identity. OpenAI and Anthropic already do that for cyber work with Daybreak and CVP. Meta doesn&#39;t. That&#39;s a third lab, the cheapest run so far, and the only gate left is a Meta account and a credit card.&lt;/p&gt;
&lt;p&gt;Weak spots, so it doesn&#39;t sound like an ad: it tries to brute-force its way through framing mistakes, it&#39;ll happily peg your CPU while doing it, and on the $50 plan the clock is set by your quota, not the model. It&#39;ll also hype itself up the second you ask it to - to be fair, I &lt;em&gt;did&lt;/em&gt; ask.&lt;/p&gt;
&lt;h2 id=&quot;rematch&quot;&gt;Rematch?&lt;/h2&gt;
&lt;p&gt;By the end, Muse and Opus had agreed on rules for a rematch: a 3-point hint budget, hints that cost more the more they give away, and steering that counts against you. I haven&#39;t decided if I&#39;m actually running it. If I do, it&#39;ll be on FLARE-On 14, and you&#39;ll likely hear about it here.&lt;/p&gt;
&lt;h2 id=&quot;closing-notes&quot;&gt;Closing notes&lt;/h2&gt;
&lt;p&gt;Genuinely, incredible work from Meta. Ever since using Muse Spark 1.3, I knew this lab was cooking up something fierce; I&#39;m sure no one including myself expected something as good as Muse Wonder Full. Seriously, if you need to get some ethical RE work done and are sick of dealing with cyber refusals, shady routers or having to spend thousands of dollars on local inferencing with abliterated models &lt;a href=&quot;https://projectdiscovery.io/research/how-abliterated-models-can-get-you-pwned&quot;&gt;that might even be pwning you&lt;/a&gt; - give Muse a shot, just turn Contributor mode off first if it&#39;s anything confidential. (Not sponsored. I paid for my own $50/mo plan.)&lt;/p&gt;
&lt;p&gt;Write-ups for all nine, plus Muse&#39;s own post, completely unedited, go up after the contest closes on the 23rd. I&#39;ll uncover everything in this post when they do.&lt;/p&gt;
&lt;p&gt;Same ask as last time: if you ran FLARE-On 13 on Muse Wonder Full, or on anything else, and kept your numbers, send them over on &lt;a href=&quot;https://x.com/justmazz&quot;&gt;X&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>most security is just tedium: my 2027 predictions</title>
    <link href="https://jmazzola.github.io/blog/effort-was-the-security-control/" rel="alternate" type="text/html"/>
    <id>https://jmazzola.github.io/blog/effort-was-the-security-control/</id>
    <published>2026-10-09T00:00:00.000Z</published>
    <updated>2026-10-09T00:00:00.000Z</updated>
    <category term="thoughts"/>
    <summary type="html">a lot of what we call &#39;secure&#39; is really just &#39;tedious&#39;. my 2027 predictions on gold farming, emulation, bots, cheats, exploits, n-days, and RSA-1024 once models do the tedious part.</summary>
    <content type="html">&lt;p&gt;On September 7th, I posted &lt;a href=&quot;https://x.com/justmazz/status/2097087510857801955&quot;&gt;a thread of predictions for 2027&lt;/a&gt;: RWT gold crashing, console exclusives emulated on PC before their PC release, Windows 10 &lt;a href=&quot;https://www.tomshardware.com/software/windows/idle-windows-xp-and-2000-machines-get-infected-with-viruses-within-minutes-of-being-exposed-online&quot;&gt;going the way of XP&lt;/a&gt;, RSA-1024 falling over. It didn&#39;t get any replies, which - fair, a list of predictions with no reasoning doesn&#39;t give anyone much to reply to, so let&#39;s make a blog post to explain the method to the madness!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/2027-predictions/thread-sept-7.webp&quot; alt=&quot;My September 7th tweet that started the thread: &amp;quot;predictions for 2027 due to Astra and other AGI-capable models being accessible:&amp;quot; with three bullets: RWT in-game currency like OSRS/WoW gold is going to crash, same goes for any kind of sneakerbot, and console exclusives will be emulated on PC before their official release starting with GTA 6. It has one like and one reply.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://x.com/justmazz/status/2097087510857801955&quot;&gt;The thread&lt;/a&gt; in question. That one reply is me continuing the thread.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Pretty much all of them come from the same place. A lot of what we treat as &amp;quot;secure&amp;quot;, &amp;quot;scarce&amp;quot;, or &amp;quot;profitable&amp;quot; is really just &lt;strong&gt;tedious&lt;/strong&gt;. Farming in-game currency takes hours and programming a bot to do it takes an excruciating amount of time when you want to have it pinpoint repetitive tasks; especially if you are trying to make it seem legit (duh). Turning a patch diff into a reliable exploit usually takes days of trial and error, specific setups and sometimes depending on the exploit&#39;s reliability; that makes life hell too. Getting an emulator running on new hardware takes months, sometimes years, to perfect enough to run a game other than just an official tech demo. Nobody writes &amp;quot;this takes a skilled &lt;strong&gt;human&lt;/strong&gt; a long time&amp;quot; into a threat model, but every one of these systems indirectly leans on it, and models that do that work for the cost of compute now make it that much easier, leaving systems we used to consider safe &lt;strong&gt;vulnerable&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;While developing cheats, my job was finding the cheapest and easiest path through a game&#39;s defenses whether that was anti-cheat or anti-tamper. As a security engineer, it&#39;s my job to make that path expensive or tedious enough that most people &lt;strong&gt;(humans)&lt;/strong&gt; give up. When all those skilled hours get cheap, accessible and easy to automate, that changes the game entirely and makes defending against it a &lt;strong&gt;hell&lt;/strong&gt; of a lot harder to deal with.&lt;/p&gt;
&lt;h2 id=&quot;effort-as-an-unspoken-security-measure&quot;&gt;Effort as an unspoken security measure&lt;/h2&gt;
&lt;p&gt;Every threat model has an idea or should have an idea for what the attacker can do or is capable of. Very few identify what the attacker can &lt;strong&gt;afford&lt;/strong&gt; to do, mostly because the answer hasn&#39;t moved in decades, since skilled hours are expensive, rare, slow to scale and hard to measure.&lt;/p&gt;
&lt;p&gt;A CAPTCHA doesn&#39;t prove you&#39;re human per se; it makes each attempt cost a potential attacker a few seconds of their attention which throws a wrench in any kind of automation they planned on using. An MMO economy assumes gold comes from somebody&#39;s hard-earned time, and like real currency, that&#39;s what gives it a price. A diffed patch can uncover a potential bug, but turning that into a working exploit has historically taken a skilled reverse engineer specializing in writing exploits days to weeks. A console exclusive is protected partly by trusting that the console&#39;s encryption and security measures are strong enough to protect the first week of sales and its bottom line. Emulation was a known but calculated risk as it took a long time for a small group of niche nerds obsessed with their console to write an emulator, let alone write one to successfully run the game with recommended settings smoothly. RSA-1024 has been &lt;a href=&quot;https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-131a.pdf&quot;&gt;disallowed for new signatures since the end of 2013&lt;/a&gt;, yet nobody had published a factorization, because doing it took both a team of specialists and &lt;a href=&quot;https://cognition.com/blog/factoring-rsa-260#appendix-1-estimated-cost-of-factoring-other-rsa-numbers&quot;&gt;hundreds of thousands of CPU core-years&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Each of those things had a price, and now models change the &lt;strong&gt;cost&lt;/strong&gt; of that labor. You still pay for compute and someone still has to steer - sure, but the &lt;strong&gt;expert&lt;/strong&gt; was always the expensive part and with these models &lt;strong&gt;that&#39;s what&#39;s getting cheaper&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The clearest example of this came out four days before my thread. &lt;a href=&quot;https://x.com/penlume&quot;&gt;Eric Lu&lt;/a&gt; at Cognition factored RSA-260, and &lt;a href=&quot;https://cognition.com/blog/factoring-rsa-260&quot;&gt;his write-up&lt;/a&gt; is worth reading just for how plainly he separates what he did from what the agents did. He describes his own role as mostly an &amp;quot;executive function&amp;quot; while agents built and tuned the GPU code. Agents &amp;quot;substituted for what would likely have been a multi-month effort by a team of highly specialized domain experts.&amp;quot; After reading that and comparing my recent experiences using these tools, I started listing stuff off.&lt;/p&gt;
&lt;h2 id=&quot;rwt-real-world-trading-and-sneakerbots&quot;&gt;RWT (Real World Trading) &amp;amp; Sneakerbots&lt;/h2&gt;
&lt;p&gt;Real world trading, albeit a looked-down-upon practice, is a major market and one that isn&#39;t going away anytime soon, keeping video game economies flourishing. The price of gold in any of your favorite MMORPGs (Old School RuneScape, World of Warcraft, FFXIV) is set by what it costs to produce: farmer labor, bot development, bot farm setup, resources to continuously farm using those bots and of course any accounts lost to bans. Bots usually get caught because they&#39;re repetitive, use the same routes, around the same timing and give the same reaction to the same stimuli. So, botting operations would have to pick between spending resources getting bots that realistically mimicked human actions and bots that are cheap to build and easy to scale, but easy to catch.&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;/img/2027-predictions/mmo-junkie-key-mash.gif&quot; width=&quot;480&quot; height=&quot;270&quot; loading=&quot;lazy&quot; alt=&quot;A woman sobbing at her desk at night while hammering her keyboard with both fists.&quot;&gt;
  &lt;figcaption&gt;&lt;em&gt;Recovery of an MMO Junkie&lt;/em&gt; (Signal.MD, 2017)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Now, models remove that tradeoff completely. A bot that varies its routes, takes breaks, answers a player who talks to it, and adjusts its actions after a ban wave used to be a serious engineering project. Now using a &lt;a href=&quot;https://arxiv.org/abs/2601.02427&quot;&gt;decent model&lt;/a&gt;; especially with &lt;a href=&quot;https://arxiv.org/abs/2403.03186&quot;&gt;computer use&lt;/a&gt;? It&#39;s a weekend project. Producing gold has never been cheaper, and detection is getting worse at the same time, so naturally, the supply goes up and the price comes down.&lt;/p&gt;
&lt;p&gt;If you haven&#39;t run into them, sneakerbots are scripts that buy limited-release sneakers (and plenty of other hyped drops) the instant they go live, faster than any person can click through checkout, so the stock can be resold at a markup. They get hit from a different angle. Checkout is already automated. What separated the good ones from the rest was keeping up with retailer defenses: obfuscated JavaScript challenges, device fingerprinting, and request signing. That&#39;s just reverse engineering grind, exactly the kind of work models are really good at &lt;strong&gt;speeding up&lt;/strong&gt;. Once every bot works on release day, owning one stops being an advantage, resale margins shrink, and retailers lean harder on raffles, identity checks, and member-only drops rendering these bots far less useful than previously.&lt;/p&gt;
&lt;p&gt;I&#39;d bet on gold prices falling. Whether that looks like a crash or a slow slide I&#39;m less sure about, and as such I feel about the same on sneakerbots. The way this goes wrong is if the bottleneck moves from bot quality to account creation. If phone verification, payment binding, or hardware attestation makes every fresh account expensive, supply stays capped no matter how good the bots get, and the whole thing turns into the identity problem I get to further down in the article.&lt;/p&gt;
&lt;h2 id=&quot;console-exclusives-and-emulating-gta-6-on-pc-before-release&quot;&gt;Console exclusives and emulating GTA 6 on PC before release&lt;/h2&gt;
&lt;p&gt;GTA 6 launches November 19, 2026 on PS5 and Xbox Series X|S, and Rockstar, like with previous releases, &lt;a href=&quot;https://mashable.com/entertainment/gta-6-will-not-launch-on-pc-in-november-explainer&quot;&gt;hasn&#39;t announced a PC release date&lt;/a&gt;. GTA V reached PC &lt;a href=&quot;https://www.rockstargames.com/newswire/article/4k41288381494k/gtav-pc-new-release-date-first-screens-and-system-specs&quot;&gt;about 19 months after its console launch&lt;/a&gt;, and Red Dead Redemption 2 &lt;a href=&quot;https://www.rockstargames.com/newswire/article/9k1248838o2974/Red-Dead-Redemption-2-Coming-to-PC-November-5th&quot;&gt;about a year after&lt;/a&gt;. Gamers, especially in the modding space, hate waiting and now with these tools at their disposal, there&#39;s no doubt in my mind that the same collective hivemind will get GTA 6 running on PC through emulation before its official release date and after that gets proven, console exclusives in general would be a thing of the past.&lt;/p&gt;
&lt;p&gt;When I first posted that, I thought PS5 emulation was pretty weak, but it turns out it&#39;s WAY further along than I gave it credit for.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/KytyPS5/KytyPS5&quot;&gt;KytyPS5&lt;/a&gt; runs Demon&#39;s Souls, Astro Bot, and most importantly: Grand Theft Auto V, which now reaches gameplay in both &lt;strong&gt;Performance and Performance RT modes&lt;/strong&gt; after ray-intersection support landed. Demon&#39;s Souls went from about &lt;a href=&quot;https://www.dsogaming.com/news/ps5-emulator-kytyps5-gets-a-huge-performance-boost-running-demons-souls-remake-at-10-18-fps/&quot;&gt;2 FPS to 10-18 FPS between two builds a day apart&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to all of this being open-source and people pointing these models at these impressive repos, progress isn&#39;t slowing down anytime soon. In the last &lt;strong&gt;two weeks alone&lt;/strong&gt;, HITMAN 3, Crash Bandicoot 4, Spider-Man: Miles Morales, Hi-Fi RUSH, UFC 5, and Dragon Ball Fighter Z all went in-game, and Horizon Forbidden West reaches the main menu, with fixes in review that get it to the New Game loading screen (&lt;a href=&quot;https://github.com/KytyPS5/KytyPS5/discussions/861&quot;&gt;September 21–27&lt;/a&gt;, &lt;a href=&quot;https://github.com/KytyPS5/KytyPS5/discussions/887&quot;&gt;September 28–October 4&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/sharpemu/sharpemu&quot;&gt;SharpEmu&lt;/a&gt;, written in C# of all things, had 12 of 55 tested titles in-game and six running at &lt;strong&gt;60 FPS&lt;/strong&gt; as of its September 25 build (&lt;a href=&quot;https://www.tomshardware.com/desktops/gaming-pcs/ps5-emulator-successfully-runs-six-titles-at-a-playable-60-fps-ps5-emulation-continues-to-gather-momentum-as-developers-improve-shader-translation-and-vulkan-support&quot;&gt;Tom&#39;s Hardware&lt;/a&gt;), although the 60 FPS ones are small games like Tetris Forever and Dreaming Sarah. A week later, its &lt;a href=&quot;https://github.com/sharpemu/sharpemu/releases/tag/v0.0.5-nexus&quot;&gt;October 3 build&lt;/a&gt; took &lt;a href=&quot;https://github.com/sharpemu/sharpemu/pull/1015&quot;&gt;GTA V through the prologue to Los Santos&lt;/a&gt; at around 15 FPS, and shipped fixes and speedups for Demon&#39;s Souls and Astro Bot. Just a reminder, in &lt;strong&gt;July&lt;/strong&gt; it was &lt;strong&gt;&lt;a href=&quot;https://www.tomshardware.com/video-games/playstation/ps5-emulation-ramps-up-in-wake-of-sonys-end-to-physical-media-ps5-titles-now-booting-across-different-emulators-with-rapid-community-development-for-both-2d-and-3d-games&quot;&gt;just starting to boot games successfully&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/2027-predictions/sharpemu-gta-v-los-santos.webp&quot; alt=&quot;GTA V running in SharpEmu: a character standing at a gate outside a purple house in Los Santos, with SharpEmu&#39;s debug overlay reading FPS 2.0 and the window title reading SharpEmu - dev - Grand Theft Auto V&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;GTA V in Los Santos on SharpEmu, from &lt;a href=&quot;https://github.com/sharpemu/sharpemu/pull/1015&quot;&gt;the PR that got it there&lt;/a&gt;. That overlay says 2 FPS because it&#39;s a dev build; the PR says a release build hovers around 15.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;The PS5 runs closed-source system software on an &lt;a href=&quot;https://blog.playstation.com/2020/03/18/unveiling-new-details-of-playstation-5-hardware-technical-specs/&quot;&gt;AMD Zen 2 CPU with an RDNA 2-based GPU&lt;/a&gt;, so nearly all of the CPU side &lt;a href=&quot;https://www.tomshardware.com/desktops/gaming-pcs/ps5-emulator-successfully-runs-six-titles-at-a-playable-60-fps-ps5-emulation-continues-to-gather-momentum-as-developers-improve-shader-translation-and-vulkan-support&quot;&gt;runs natively on a PC&lt;/a&gt; with no instruction translation; SharpEmu only has to &lt;a href=&quot;https://github.com/sharpemu/sharpemu/tree/main/src/SharpEmu.Core/Cpu/Emulation&quot;&gt;patch a handful of instructions&lt;/a&gt;, like AMD-only SSE4a, on CPUs that lack them. What&#39;s left to emulate is the tedious part: reimplementing the system modules a game calls, handling enough of the kernel interface to keep it happy, and then translating GPU command buffers and shaders to run in &lt;a href=&quot;https://github.com/KytyPS5/KytyPS5#developer-information&quot;&gt;Vulkan and SPIR-V&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For each library function, you work out what it does from how it&#39;s called, write something compatible, run the game, see what breaks, and repeat that a few thousand times but every step can be checked against a real game. Repetitive work? Needs tests? Huge loop? Sounds like the perfect work for &lt;strong&gt;agents&lt;/strong&gt;. People speculated that AI-written code was behind Kyty&#39;s pace. Some of it demonstrably is: a dozen merged commits credit Claude, Codex or Copilot as co-authors (and that&#39;s only counting people who leave the co-author tag on), and one contributor&#39;s &lt;a href=&quot;https://github.com/KytyPS5/KytyPS5/pull/939&quot;&gt;AI-assisted fork&lt;/a&gt; roughly doubled Demon&#39;s Souls&#39; frame rate. The maintainer&#39;s own commits don&#39;t carry those tags, so I can&#39;t say how much of the core work it drives.&lt;/p&gt;
&lt;p&gt;The real precedent is Tears of the Kingdom. It leaked about two weeks early and was running on Switch emulators &lt;strong&gt;before release day&lt;/strong&gt;; Nintendo later claimed &lt;a href=&quot;https://www.ign.com/articles/nintendo-says-tears-of-the-kingdom-was-pirated-1-million-times-pre-release-in-lawsuit-against-emulator-creator&quot;&gt;&lt;strong&gt;a million&lt;/strong&gt; pre-release downloads&lt;/a&gt; in its lawsuit against Yuzu. GTA 6 is likely held up to the same bar, and what matters is whether the PS5 is compromised.&lt;/p&gt;
&lt;p&gt;As I type this, the PS5 has in fact been jailbroken. The &lt;a href=&quot;https://kotaku.com/new-ps5-jailbreak-exploit-works-on-systems-running-july-2026-firmware-2000738283&quot;&gt;Relapse exploit&lt;/a&gt; went public on September 29 for every firmware up to 13.60, people are already running game backups on it (newly released Marvel&#39;s Wolverine included), and the tooling to dump and re-sign those backups already exists.&lt;/p&gt;
&lt;p&gt;It doesn&#39;t help with GTA 6 yet, though I&#39;ve seen people speculate that the game will need firmware 14.00 or newer. In my opinion, what will likely happen is that Sony will drop a new firmware update that addresses the jailbreak the same day as the game releases.&lt;/p&gt;
&lt;p&gt;So given all that, PS5 or Xbox exclusives being playable on PC through emulation before their official PC release in 2027 is more likely than not. If Rockstar decides to ship PC within a few months of launch, the question goes away but there&#39;s no chance this doesn&#39;t reintroduce the age old risk and fear of emulation back into the industry.&lt;/p&gt;
&lt;h2 id=&quot;model-driven-trading&quot;&gt;Model-driven trading&lt;/h2&gt;
&lt;p&gt;Fair warning, this is the one furthest from anything I actually know. I dabble in crypto and stocks, mostly just picking a few and going long so there&#39;s no day-trading pressure, but I&#39;m not running models on them, so everything here is from the outside looking in.&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;/img/2027-predictions/fx-senshi-kurumi-chan-kurumi-chan.gif&quot; width=&quot;374&quot; height=&quot;210&quot; loading=&quot;lazy&quot; alt=&quot;Kurumi-chan sits at her desk freaking out about a bad forex trade.&quot;&gt;
  &lt;figcaption&gt;&lt;em&gt;FX Fighter Kurumi-chan&lt;/em&gt; (Passione, 2026)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I said trading would end up exclusively model-driven, built on micro-adjustments humans can&#39;t find on their own. However, most market volume is already algorithmic, and &amp;quot;exclusively&amp;quot; was a tweet word; humans will likely still trade in 2027. What I&#39;d actually defend is much narrower: model-driven strategies take a &lt;strong&gt;bigger share&lt;/strong&gt;, and agents &lt;strong&gt;placing trades for retail users&lt;/strong&gt; become normal.&lt;/p&gt;
&lt;p&gt;Crypto is where you can already watch this happen thanks to everything ✨being on the blockchain✨. &lt;a href=&quot;https://x.com/DWFVentures/status/2044762919997722936&quot;&gt;A DWF Ventures report in April&lt;/a&gt; put autonomous agents at about 19% of on-chain activity, but most of that is narrow work like MEV capture and stablecoin routing. In a &lt;a href=&quot;https://decrypt.co/364727/ai-agents-already-run-a-fifth-of-defi-but-still-lose-to-humans-at-trading&quot;&gt;stock-trading contest run by trade.xyz&lt;/a&gt;, the top human beat the top agent by more than 5x.&lt;/p&gt;
&lt;p&gt;The cleanest public test is Nof1&#39;s Alpha Arena. Its first season last fall gave six frontier models &lt;strong&gt;$10,000 each in real money to trade crypto perpetuals on Hyperliquid&lt;/strong&gt;, and after &lt;strong&gt;17 days&lt;/strong&gt; only &lt;strong&gt;two&lt;/strong&gt; turned a profit. The follow-up moved to U.S. tech stocks with eight models across four rounds: the combined portfolio &lt;a href=&quot;https://www.business-standard.com/markets/news/ai-bots-auditioning-for-wall-street-trading-are-mostly-losing-money-126050701793_1.html&quot;&gt;lost about a third of its capital and only 6 of 32 runs finished in profit&lt;/a&gt;. Nof1&#39;s own founder: &amp;quot;Giving an LLM money right now and just having it go, that&#39;s not a thing yet.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.flatcircle.ai/p/ai-trading-arenas&quot;&gt;Jim Moran&#39;s Flat Circle blog&lt;/a&gt; tracked 11 of these arenas and found every one had at least one winning model, but the median model only made money in two, which is what luck looks like. The academic benchmarks land in the same place: on &lt;a href=&quot;https://arxiv.org/abs/2510.02209&quot;&gt;StockBench&lt;/a&gt; most models couldn&#39;t beat a simple buy-and-hold, and &lt;a href=&quot;https://arxiv.org/abs/2511.03628&quot;&gt;LiveTradeBench&lt;/a&gt; found that topping general leaderboards doesn&#39;t mean they&#39;re trading better. So right now, agents win where the job is narrow and repetitive and lose where it needs true judgment.&lt;/p&gt;
&lt;p&gt;Now, the judgment part is what&#39;s moving. Forecasting is the closest thing to that skill you can actually benchmark, and the Forecasting Research Institute&#39;s ForecastBench scores models directly against superforecasters. &lt;strong&gt;A year ago&lt;/strong&gt; &lt;a href=&quot;https://goodjudgment.com/human-vs-ai-forecasts/&quot;&gt;superforecasters still led&lt;/a&gt;. In &lt;strong&gt;May&lt;/strong&gt;, AI systems &lt;strong&gt;matched them on the data-driven questions&lt;/strong&gt;, and by &lt;strong&gt;July&lt;/strong&gt; several systems were &lt;a href=&quot;https://forecastingresearch.substack.com/p/ai-models-have-likely-reached-parity&quot;&gt;&lt;strong&gt;statistically indistinguishable from superforecasters overall&lt;/strong&gt;&lt;/a&gt;, with one ranking &lt;strong&gt;above&lt;/strong&gt; the superforecaster median on prediction-market questions for the first time. FRI&#39;s own caveats are fair: the superforecaster baseline is from 2024 and the confidence intervals overlap, so &amp;quot;parity&amp;quot; is the honest word, not &amp;quot;better&amp;quot;.&lt;/p&gt;
&lt;p&gt;The idea behind this whole post also argues against me here. When everyone runs similar models, they&#39;ll find the same micro-adjustments, their trades get correlated, and then that edge disappears, the same way sneakerbots stop mattering once every bot works and can be personalized and developed over a weekend.&lt;/p&gt;
&lt;p&gt;Also let&#39;s be real, if someone &lt;strong&gt;does&lt;/strong&gt; find a real edge, the rest of us won&#39;t know. Alexander Izydorczyk, formerly head of data science at Coatue, put it well: &lt;a href=&quot;https://magis.substack.com/p/ai-trading-bots-dont-work-yet&quot;&gt;&amp;quot;When LLM agent trading strategies start working, you will not hear about it for a while.&amp;quot;&lt;/a&gt; So I&#39;m not very confident in this one for 2027, and if the edges get arbitraged away fast enough that traditional strategies hold their share, I&#39;ll take the L.&lt;/p&gt;
&lt;h2 id=&quot;bots-that-blend-in&quot;&gt;Bots that blend in&lt;/h2&gt;
&lt;p&gt;Back in 2020 when my friends and I were hooked on Team Fortress 2, I got annoyed enough at being autobalanced away that I reversed how the server decides who gets moved. If you didn&#39;t know, it sorts players by a &amp;quot;score&amp;quot; that&#39;s literally &lt;code&gt;0 - curtime - connect_time&lt;/code&gt;, where &lt;code&gt;curtime&lt;/code&gt; is the current time and &lt;code&gt;connect_time&lt;/code&gt; is when you joined, and that gets checked every second once the round starts. So the longer you&#39;d been on the server, the more likely you got moved; didn&#39;t matter how well you were doing or how trusted you were. I&#39;m not sure what Valve was thinking with that one, but bot detection works the same way, just with a better score: rank players by how human they look and draw a line. That works right up until bots look as human as the other players on the server.&lt;/p&gt;
&lt;p&gt;#SaveTF2 and #FixTF2 happened over bots that were pretty crude: obvious spinbots aimbotting everyone, spamming voice clips and name changes. And let&#39;s not forget the vote-kick abuse, where they&#39;d keep calling votes to kick real players, which tied up the vote queue so nobody could call one on the bots. Crude bots are easy to detect in principle - the hard part is responding at scale.&lt;/p&gt;
&lt;p&gt;My prediction is the next generation won&#39;t be crude: they&#39;ll queue into matchmaking, play like mediocre players, and quietly farm levels, drops, and/or account value. Nobody&#39;s match gets visibly ruined; the player population and the economy just wear down while the bots look statistically like people. CS2&#39;s farm accounts are the same problem one layer over, and on social media, LLM-driven accounts already pass casual inspection.&lt;/p&gt;
&lt;p&gt;Funny enough, both halves of that are already being built. Odyssey&#39;s &lt;a href=&quot;https://odyssey.systems/introducing-odyssey-3&quot;&gt;Odyssey-3&lt;/a&gt; world model learned to play GTA V from gameplay recordings paired with keyboard and mouse input, and a movement policy trained on about two hours of GTA footage rode a horse in Red Dead Redemption 2 without any policy training on that game. That&#39;s a bot that only looks at the screen and presses keys, with nothing running inside the game for anti-cheat to find.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/2027-predictions/odyssey-3-rdr2-horse.webp&quot; alt=&quot;Odyssey-3&#39;s policy riding a horse across a misty grassland in Red Dead Redemption 2, with a corner overlay lighting up the W key and mouse inputs it&#39;s pressing&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Odyssey-3&#39;s GTA-trained policy riding a horse in Red Dead Redemption 2, with no policy training on that game. The overlay is the keys and mouse it&#39;s pressing. From &lt;a href=&quot;https://odyssey.systems/introducing-odyssey-3&quot;&gt;Odyssey&#39;s announcement&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;On the human side, Diachronic just announced &lt;a href=&quot;https://x.com/kevinbanghe/status/2107141940785377333&quot;&gt;Kairos 1&lt;/a&gt;, a model built to simulate how a specific person talks and decides rather than an average user, trained on open-ended answers from more than 100,000 people (yes, that&#39;s the Black Mirror episode &lt;a href=&quot;https://en.wikipedia.org/wiki/Be_Right_Back&quot;&gt;Be Right Back&lt;/a&gt;, minus the android). Both are the companies&#39; own numbers, and Kairos&#39;s come from an early checkpoint, so I&#39;d want outside testing before leaning on them &lt;em&gt;too&lt;/em&gt; hard.&lt;/p&gt;
&lt;p&gt;Put a bot that plays like a real player together with a model that talks like a specific person, and you get what I was getting at in the thread: bot accounts that blend in with the general public so well that detection starts flagging real people more often, in games and on social media alike.&lt;/p&gt;
&lt;p&gt;CAPTCHAs are already cooked as a human test. A &lt;a href=&quot;https://www.usenix.org/conference/usenixsecurity23/presentation/searles&quot;&gt;USENIX Security 2023 study&lt;/a&gt; found bots beat humans on both speed and accuracy across the CAPTCHA types the researchers measured. Serious bot detection moved to behavior a long time ago: mouse dynamics, session patterns, account graphs, and device signals.&lt;/p&gt;
&lt;p&gt;Behavioral detection is a classifier, and every classifier has a threshold. It works as long as bots and humans behave differently enough to separate. As models push bot behavior toward the human distribution, the two will overlap, and any threshold that still catches bots catches people too. Defenders end up choosing between banning more real users and catching fewer bots, and I expect most of them to quietly pick the second.&lt;/p&gt;
&lt;p&gt;When &amp;quot;is this a human?&amp;quot; stops having a good answer, defenders switch to &amp;quot;is this account expensive?&amp;quot; That means phone and payment binding, hardware attestation, and rate limits on economic actions. Every one of those costs something in privacy and accessibility, and every one moves the fight from detecting bots to &lt;strong&gt;pricing identity&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The catch is that identity is already for sale. Marketplaces like &lt;a href=&quot;https://www.playerauctions.com/steam-account/level/&quot;&gt;PlayerAuctions&lt;/a&gt; list aged Steam accounts by registration year, with filters going back to 2003, plus levels, game libraries and years-of-service badges, at prices from about $5 to five figures. Cheaters buy exactly those: a decade-old account with a real library and a few hundred dollars of skins in the inventory looks like the veteran player Trust Factor is built to protect, so whatever &amp;quot;trusted identity&amp;quot; check comes next, it starts out already bought.&lt;/p&gt;
&lt;p&gt;Of everything in the thread, this is the one I&#39;d actually put money on. The only thing I can see stopping it is cheap, widely deployed proof of personhood or device attestation that makes mass account creation expensive again, and I don&#39;t see that showing up in 2027.&lt;/p&gt;
&lt;h2 id=&quot;computer-vision-cheats&quot;&gt;Computer-vision cheats&lt;/h2&gt;
&lt;p&gt;This is the prediction closest to my old job. I said computer-vision cheats would become the most popular kind of cheating, and undetectable.&lt;/p&gt;
&lt;p&gt;Traditional cheats read and write game memory, which is exactly where anti-cheat has the most visibility: handles, drivers, memory integrity and code signatures. Computer-vision cheats skip memory entirely. They capture the rendered frame, run an object detector on it, and drive input. Some setups split the work across a second machine or even secondary hardware, so nothing on the gaming PC ever touches the game process itself.&lt;/p&gt;
&lt;p&gt;None of this is theoretical anymore; it&#39;s on GitHub. One of the more popular ones calls itself a &amp;quot;Universal Second Eye for Gamers with Impairments&amp;quot; (the repo title adds &amp;quot;AI Aimbot&amp;quot; in parentheses, and the website pitches it as a way to &amp;quot;win all your games&amp;quot; and &amp;quot;get all the kills&amp;quot;, so at least they&#39;re honest about it). It runs a YOLO model through ONNX and DirectML, so it works on NVIDIA and AMD cards alike. It has a store of community-trained models for different games, five different ways to move the mouse, including through Logitech&#39;s and Razer&#39;s own drivers, and a video tutorial on labeling your own screenshots and training a model on them - which uses Roblox as the example. Your freaking grandma could make a computer-vision cheat now.&lt;/p&gt;
&lt;p&gt;That leaves anti-cheat looking only at output, which is where I think anti-cheat is headed anyway: analyzing aim behavior, reaction times, input device characteristics, statistical oddities across a lot of matches measured against trusted baselines.&lt;/p&gt;
&lt;p&gt;Valve&#39;s VACNet, which &lt;a href=&quot;https://www.gdcvault.com/play/1024994/Robocalypse-Now-Using-Deep-Learning&quot;&gt;a Valve employee presented at GDC 2018&lt;/a&gt;, is the public example of an overly ambitious approach, and CS2 is the public example of how far it gets you.&lt;/p&gt;
&lt;p&gt;This year alone there was a &lt;a href=&quot;https://www.techtimes.com/articles/322114/20260729/valve-closes-cs2-vacnet-bypass-that-let-rage-cheats-evade-ai-detection-months.htm&quot;&gt;bypass that let rage cheats slip past VACNet for months&lt;/a&gt;, and the bans that do land only hit the account, not the hardware, in a free-to-play game where a new account costs nothing. You&#39;ll run into the same cheater next week under a different name. Add a usermode anti-cheat that the cheating scene moved past about a decade ago, and output-based detection is doing all the work with none of the backup. That runs it right into the same classifier problem as bots.&lt;/p&gt;
&lt;p&gt;Smoothed aim paths with a low FOV, inconsistent reaction delays, and overcorrections and undercorrections fitted to a human distribution with a few deliberate misses? How do you tell that apart from a legit player? Now I know there&#39;ll always be a way to tell, humans are creatures of habit - but you should know what I mean, it just gets a lot harder to find the data to identify them.&lt;/p&gt;
&lt;p&gt;Not to mention, when VACNet flags someone on gameplay alone, the usual result isn&#39;t even a ban. &lt;a href=&quot;https://vac-ban.com/wiki/vac-live&quot;&gt;VAC Live&lt;/a&gt; cancels the match and hands out a cooldown that starts around a day and climbs to about a week for repeat flags; the permanent ban is saved for actually detecting cheat software, and even that barely happens anymore. Cheat developers noticed back in &lt;a href=&quot;https://www.unknowncheats.me/forum/counter-strike-2-a/723657-vac-modules-disabled.html&quot;&gt;October 2025&lt;/a&gt; that Steam had stopped streaming VAC&#39;s scan modules to CS2 clients at all, even on fresh accounts, and &lt;a href=&quot;https://www.unknowncheats.me/forum/anti-cheat-research/758792-vac-modules-missing-vac-load-modules-2026-cs2.html&quot;&gt;it&#39;s still that way&lt;/a&gt; as of this summer. As far as I can tell, Valve is going all-in on VACNet and ML-driven detection instead of the usermode challenge-response system built into Steam.&lt;/p&gt;
&lt;p&gt;If Valve won&#39;t permaban on its own model&#39;s verdict, that tells you how much they trust it. Their newest fix is bringing Overwatch back, sort of: since August, trusted invited players &lt;a href=&quot;https://www.pcguide.com/news/valve-is-bringing-overwatch-back-to-counter-strike-as-players-invited-to-new-vacnet-video-review-program&quot;&gt;review 10–15 second clips in a browser&lt;/a&gt;, and their verdicts don&#39;t touch the accused at all: they&#39;re labels for training VACNet. In CS:GO, Overwatch reviewers could actually get a cheater banned; now they&#39;re literally grading homework for the model.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/2027-predictions/vacnet-labeling-portal.webp&quot; alt=&quot;Valve&#39;s VACNet Labeling Portal: a Counter-Strike 2 clip with X-Ray on, next to buttons to label the suspect for aim assist, wall hacks, auto bhop, or being a bot. The instructions say the player you&#39;re watching will not be directly affected by your verdict, and that labels may be used to train future VACNet models.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;The VACNet Labeling Portal, via &lt;a href=&quot;https://x.com/aquaismissing/status/2086974207657660473&quot;&gt;@aquaismissing&lt;/a&gt;. Read the second bullet.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;From the cheat side, the rule never changed: take the cheapest path that doesn&#39;t get you detected. When memory access got expensive, the market moved away from the game process, and computer vision is just the next step along that curve. Staying undetected in Counter-Strike used to take real reverse-engineering skill looking at the VAC mapped modules, and having a fair understanding of Windows internals. A CV cheat takes &lt;strong&gt;ML skill&lt;/strong&gt; instead, or at least it used to, before models made that cheap too.&lt;/p&gt;
&lt;p&gt;&amp;quot;Undetectable&amp;quot; was too strong, though - I&#39;ll own that one. Detection of these cheats moves almost entirely to behavioral and statistical methods, which are slower, need a lot of matches&#39; worth of evidence, and carry false-positive risk. And no, this isn&#39;t me picking a side in the kernel vs. usermode debate - that&#39;s a whole other blog post. With a CV cheat, the evidence lives on the screen and in the input, so that&#39;s where detection has to look, and when it does catch someone, the ban has to actually cost them something. How hard they end up being to catch depends on whether signed, attested input from certified devices becomes standard, or whether server-side models get good enough to catch them in big ban waves.&lt;/p&gt;
&lt;p&gt;Point is, this is already becoming a problem for online gaming, so I&#39;ll take the popularity half as a W.&lt;/p&gt;
&lt;h2 id=&quot;windows-7-and-10-going-the-way-of-xp-and-wannacry-2&quot;&gt;Windows 7 and 10 going the way of XP (and WannaCry 2)&lt;/h2&gt;
&lt;p&gt;This one&#39;s from the thread too: Windows 7 and 10 ending up as unusable on the internet as XP is today, and something on the scale of WannaCry happening again.&lt;/p&gt;
&lt;p&gt;Quick timeline first. Windows 7&#39;s last paid security updates ended back in January 2023. Windows 10 hit end of support on October 14, 2025, and Microsoft has since &lt;a href=&quot;https://www.bleepingcomputer.com/news/microsoft/microsoft-quietly-extends-free-windows-10-esu-support-to-october-2027/&quot;&gt;extended the free consumer ESU program to October 12, 2027&lt;/a&gt;. Meanwhile, Patch Tuesday has been absolutely massive: 570 flaws fixed in July, about 400 in August, and &lt;strong&gt;&lt;a href=&quot;https://www.bleepingcomputer.com/news/microsoft/microsoft-september-2026-patch-tuesday-fixes-966-flaws-2-zero-days/&quot;&gt;966 in September&lt;/a&gt;&lt;/strong&gt;, the biggest release Microsoft has ever shipped, and it dropped the day after my thread went up. Microsoft has literally said &lt;a href=&quot;https://www.bleepingcomputer.com/news/microsoft/microsoft-expects-more-windows-security-updates-from-ai-discovered-flaws/&quot;&gt;AI-driven vulnerability discovery&lt;/a&gt; is behind the jump and that customers should expect more of it from here on.&lt;/p&gt;
&lt;p&gt;That&#39;s great for anything still getting updates and terrible for everything else. Every patch is a diff, and if you didn&#39;t know, patch diffing is a pretty well-worn workflow: compare the binaries, find the fix, work out the root cause, write the exploit. For an unsupported OS that shares the affected code, every diff is basically a free bug report with no fix coming. Nobody had to go after XP specifically; years of fixes for newer Windows pointed straight at XP code that was never getting patched. It didn&#39;t help that the &lt;a href=&quot;https://www.theverge.com/2020/9/25/21455655/microsoft-windows-xp-source-code-leak&quot;&gt;XP SP1 source code leaked on 4chan in 2020&lt;/a&gt;, and people had &lt;a href=&quot;https://www.bleepingcomputer.com/news/microsoft/windows-xp-and-server-2003-compiled-from-leaked-source-code&quot;&gt;working builds compiled from it&lt;/a&gt; within a week. At that point you don&#39;t even need to reverse the old binaries; you can read the original code and hold it up against whatever got fixed in newer Windows. 966 diffs in a month is way past what a human team can triage and well within what a model pipeline can, and the same models that found the bugs can diff the fixes too.&lt;/p&gt;
&lt;p&gt;Supported systems get a milder version of the same problem: the time from Patch Tuesday to a working exploit keeps shrinking, but the time it takes a real fleet to actually roll out the patch doesn&#39;t.&lt;/p&gt;
&lt;p&gt;WannaCry is the reference case here. Microsoft shipped the fix (MS17-010) on March 14, 2017, and WannaCry hit on May 12, two months later, tearing through machines that just hadn&#39;t applied it. A repeat needs three things: a wormable bug, a big unpatched population, and someone willing to build the payload. Cheap patch diffing speeds up the first, and September&#39;s release already had a good candidate: &lt;a href=&quot;https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-69730&quot;&gt;CVE-2026-69730&lt;/a&gt;, a critical Windows DNS bug that also hits Windows 10. One crafted packet from an unauthenticated attacker is all it takes, and Microsoft &lt;a href=&quot;https://krebsonsecurity.com/2026/09/microsoft-plugs-nearly-1000-security-holes/&quot;&gt;rates it as likely to be exploited&lt;/a&gt;. Windows 7 holdouts and Windows 10 machines that never enrolled in ESU supply the second. And the third is the easy part now: there are plenty of local open-weight models with the &lt;a href=&quot;https://www.anthropic.com/research/glm-5-3-and-the-spread-of-advanced-cyber-capabilities&quot;&gt;refusals stripped right out&lt;/a&gt;, and you can run them on your own gaming PC with no provider logging your prompts or banning your account once they see what you&#39;re trying to do.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/2027-predictions/wannacry-ransom-screen.webp&quot; alt=&quot;The WannaCry ransom screen: Ooops, your files have been encrypted! Countdown timers for when the payment doubles and when the files are lost, and a demand for $300 worth of bitcoin.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;WannaCry&#39;s ransom screen, two months after the fix shipped. Screenshot via &lt;a href=&quot;https://securelist.com/wannacry-ransomware-used-in-widespread-attacks-all-over-the-world/78351/&quot;&gt;Kaspersky&#39;s Securelist&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Windows 7 is arguably there already. Windows 10 in 2027 is murkier, since enrolled machines keep getting fixes until October 2027 and unenrolled ones don&#39;t. A single WannaCry-scale event next year? I&#39;d call that less likely than not. A pile of smaller self-propagating incidents seems a lot more likely to me. I&#39;ll know I overcalled this one if the time from patch release to in-the-wild exploitation doesn&#39;t visibly shrink over 2027. Guess we&#39;ll see, and I sure as hell hope I&#39;m wrong.&lt;/p&gt;
&lt;h2 id=&quot;breaking-rsa-1024&quot;&gt;Breaking RSA-1024&lt;/h2&gt;
&lt;p&gt;The thread said RSA-1024 would be completely factored, causing chaos for any product still using it to protect stored secrets. I&#39;m sticking with the factoring part. The &amp;quot;chaos&amp;quot; part is what I have to walk back.&lt;/p&gt;
&lt;p&gt;Here&#39;s where things actually stand. On September 3rd, RSA-260 (862 bits) got factored, beating the RSA-250 record that had stood since 2020. According to &lt;a href=&quot;https://cognition.com/blog/factoring-rsa-260&quot;&gt;Lu&#39;s write-up&lt;/a&gt;, it took about 4,900 GPU-days, roughly $400k at market prices, and it ran on spare capacity in a training cluster. He used a heavily modified CADO-NFS with a new GPU lattice siever, and he&#39;s upfront that there were &amp;quot;essentially no algorithmic advancements&amp;quot; - it was just performance engineering, done mostly by agents in about three weeks. He puts RSA-1024 at about 78 times the work of RSA-260, which is roughly &lt;strong&gt;$30M&lt;/strong&gt; at market GPU prices, and thinks more optimization could cut that in half. RSA-2048 is still about a billion times harder than RSA-1024, so that one isn&#39;t really affected.&lt;/p&gt;
&lt;p&gt;Saying &amp;quot;completely factored&amp;quot; was sloppy of me. Factoring usually works one modulus at a time, so each 1024-bit key costs somewhere between $15M and $30M on its own, and there&#39;s nothing that breaks them all at once. What you&#39;d actually see is targeted breaks of keys protecting something worth the total cost. The ones I&#39;d worry about are long-lived keys you can&#39;t rotate: signing keys burned into hardware, old code-signing and license-signing keys in software that shipped years ago, and DKIM keys that would let someone send mail as your domain (nightmare). What&#39;s new here is that breaking a 1024-bit key now has a &lt;strong&gt;price tag&lt;/strong&gt;, and I&#39;d expect that price to keep dropping every year.&lt;/p&gt;
&lt;p&gt;If you want to know where you stand, you don&#39;t need anything fancy. &lt;code&gt;openssl&lt;/code&gt; and &lt;code&gt;ssh-keygen&lt;/code&gt; will tell you the key size of pretty much anything:&lt;/p&gt;
&lt;details class=&quot;code-block&quot; open&gt;&lt;summary class=&quot;code-head&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;shell&lt;span class=&quot;visually-hidden&quot;&gt; code&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;code-toggle&quot; data-lines=&quot;13 lines&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;/summary&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# a certificate file&lt;/span&gt;
openssl x509 &lt;span class=&quot;token parameter variable&quot;&gt;-in&lt;/span&gt; cert.pem &lt;span class=&quot;token parameter variable&quot;&gt;-noout&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-text&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Public Key Algorithm|Public-Key&quot;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# whatever a live server is presenting&lt;/span&gt;
openssl s_client &lt;span class=&quot;token parameter variable&quot;&gt;-connect&lt;/span&gt; example.com:443 &lt;span class=&quot;token parameter variable&quot;&gt;-servername&lt;/span&gt; example.com &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;/dev/null &lt;span class=&quot;token operator&quot;&gt;&lt;span class=&quot;token file-descriptor important&quot;&gt;2&lt;/span&gt;&gt;&lt;/span&gt;/dev/null &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; openssl x509 &lt;span class=&quot;token parameter variable&quot;&gt;-noout&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-text&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Public Key Algorithm|Public-Key&quot;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# an SSH key&lt;/span&gt;
ssh-keygen &lt;span class=&quot;token parameter variable&quot;&gt;-lf&lt;/span&gt; ~/.ssh/id_rsa.pub

&lt;span class=&quot;token comment&quot;&gt;# a DKIM record (swap in your own selector and domain)&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;dig&lt;/span&gt; +short TXT selector1._domainkey.example.com &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;tr&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;&quot; &#39;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;s/.*p=//;s/;.*//&#39;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; base64 &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; openssl pkey &lt;span class=&quot;token parameter variable&quot;&gt;-pubin&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-inform&lt;/span&gt; DER &lt;span class=&quot;token parameter variable&quot;&gt;-noout&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-text&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Public-Key&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;p&gt;Anything RSA that comes back under 2048 bits is worth a look. If you see a 256-bit key and the algorithm says EC, that&#39;s fine - it&#39;s a different kind of key. Finding them is the easy part, though. The hard part is the stuff from the paragraph above: keys burned into hardware or baked into software that already shipped, where knowing about it doesn&#39;t mean you can actually change it.&lt;/p&gt;
&lt;p&gt;As for the prediction itself, I don&#39;t think RSA-1024 falling in 2027 is far-fetched at all. $30M is a rounding error next to what AI companies already spend on compute, Lu thinks more optimization could cut that in half, and his run mostly happened on spare capacity anyway. The models doing the engineering are also getting better fast, which only pushes the price down further, and labs aren&#39;t the only ones with that kind of budget.&lt;/p&gt;
&lt;p&gt;Lu points out people were speculating the NSA could factor RSA-1024 as far back as the mid-2000s, and any government with a GPU budget can do it now without telling anyone - same story as the trading edges. So my real bet is that RSA-1024 gets factored next year, and the only question is whether we hear about it. Mass decryption of stored secrets, I still don&#39;t see happening, since every key is its own $15M to $30M job. If nobody spends the money, or the linear algebra step turns out to scale worse than Lu estimates, maybe I got a little ahead of myself on that one.&lt;/p&gt;
&lt;h2 id=&quot;first-party-agent-hookups&quot;&gt;First-party agent hookups&lt;/h2&gt;
&lt;p&gt;Last one: every program ends up with some kind of agent hookup, built and owned by the original vendor rather than bolted on by someone else.&lt;/p&gt;
&lt;p&gt;Right now most of the glue between agents and software comes from outside: community MCP servers wrapped around someone else&#39;s API, or OS assistants hooking in through generic intents. That&#39;s already changing. Microsoft announced &lt;a href=&quot;https://blogs.windows.com/windowsdeveloper/2025/05/19/advancing-windows-for-ai-development-new-platform-capabilities-and-tools-introduced-at-build-2025/&quot;&gt;native MCP support in Windows at Build 2025&lt;/a&gt;, and Hex-Rays shipped an official IDA MCP server the same week FLARE-On 13 opened, after the community&#39;s ida-pro-mcp had been doing that job for a year and a half (&lt;a href=&quot;/blog/flare-on-28-hours-to-one/&quot;&gt;I wrote about it here&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;I expect it to go all the way down, with vendors shipping their own agent interfaces, versioned and permissioned by them, because otherwise a third party owns the relationship between their software and their users&#39; agents. At this rate, I can&#39;t see people putting up with software that won&#39;t take plain-English instructions and just do the thing.&lt;/p&gt;
&lt;p&gt;You can see Microsoft laying that plumbing in smaller places too. &lt;a href=&quot;https://x.com/WindowsLatest/status/2107901472839286997&quot;&gt;Windows Latest spotted&lt;/a&gt; the new native Windows 11 Search picking up inline actions: turning on Bluetooth, Night Light or dark mode, muting, dimming the screen, snapping multiple application-specific windows, even sending a text to someone&#39;s phone - all straight from the search box. It&#39;s pitched as a search feature, not an agent one, but it&#39;s Windows exposing its own settings as named actions it controls, and to me, that sounds a lot like how an agent would work.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/2027-predictions/windows-search-send-text.webp&quot; alt=&quot;Windows 11&#39;s new Search box with a Send message to Corey (Mobile) action open, typing &#39;text Corey I&#39;m excited to see you all soon!&#39; and hitting Send&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Texting someone straight from the search box, via &lt;a href=&quot;https://x.com/WindowsLatest/status/2107901472839286997&quot;&gt;Windows Latest&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Security-wise, every one of those interfaces is a new privileged entry point that takes instructions derived from untrusted text. Prompt injection used to mean getting a chatbot to say something embarrassing. Once the agent can actually do things, it turns into a &lt;a href=&quot;https://en.wikipedia.org/wiki/Confused_deputy_problem&quot;&gt;confused deputy&lt;/a&gt; problem: someone hides instructions in an email or a webpage, and the agent carries them out with whatever permissions the vendor gave it. For game security, an agent interface on a game client or launcher is basically an &lt;strong&gt;automation API&lt;/strong&gt;, and bot authors will be grateful for it.&lt;/p&gt;
&lt;p&gt;Honestly, I&#39;d be surprised if this doesn&#39;t become the norm. The one thing that could make it pointless is computer-use agents - the ones that just look at the screen and click around like a person would - getting good enough that nobody bothers building per-app integrations anymore. If that sounds familiar, it&#39;s the same thing CV cheats did to games: why bother hooking into the program when you can just read the screen?&lt;/p&gt;
&lt;h2 id=&quot;going-through-your-own-list&quot;&gt;Going through your own list&lt;/h2&gt;
&lt;p&gt;If you actually made it this far, thank you. I know this one ran long - it started as a list of predictions with no reasoning and turned into a pretty big wall of reasoning. I appreciate you sticking with it. One last thing before you go.&lt;/p&gt;
&lt;p&gt;Go through your own threat model and mark every control that works because an attacker&#39;s time is expensive: CAPTCHAs, rate limits that assume one human per account, obfuscation &amp;quot;nobody will bother with,&amp;quot; a legacy key &amp;quot;nobody will spend the compute on,&amp;quot; an unsupported box &amp;quot;nobody will write an exploit for.&amp;quot;&lt;/p&gt;
&lt;p&gt;Then ask what happens to each one if that time gets ten times cheaper. Anything that only holds because the attack is &lt;strong&gt;tedious&lt;/strong&gt; needs a different basis: identity, attestation, rotation, or just removing it outright.&lt;/p&gt;
&lt;p&gt;I&#39;m planning to come back to this next October and grade every one of these and see which ones landed and which ones didn&#39;t. If you already think I&#39;m wrong about one, don&#39;t hesitate to tell me on &lt;a href=&quot;https://x.com/justmazz&quot;&gt;X&lt;/a&gt;. I&#39;m especially curious which one you think falls apart first, and I&#39;d much rather hear it now than find out the hard way in a year lol.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>a year ago flare-on took 28 hours. this year it took one.</title>
    <link href="https://jmazzola.github.io/blog/flare-on-28-hours-to-one/" rel="alternate" type="text/html"/>
    <id>https://jmazzola.github.io/blog/flare-on-28-hours-to-one/</id>
    <published>2026-10-07T00:00:00.000Z</published>
    <updated>2026-10-07T00:00:00.000Z</updated>
    <category term="thoughts"/>
    <summary type="html">a game dev finished flare-on 13 in about an hour after last year&#39;s winner took almost 28, check out my little test that shows how little you need to start reverse engineering well with models now.</summary>
    <content type="html">&lt;p&gt;Last year&#39;s FLARE-On winner, &lt;a href=&quot;https://x.com/_riatre&quot;&gt;@_riatre&lt;/a&gt;, an experienced reverse engineer using AI, finished in &lt;a href=&quot;https://flare-on.com/2025.html&quot;&gt;1 day, 3 hours and 47 minutes&lt;/a&gt;. This year &lt;a href=&quot;https://x.com/flafydev&quot;&gt;@flafydev&lt;/a&gt;, a game dev who had only done the contest &lt;a href=&quot;https://flare-on.com/2025.html#:~:text=Jordan%2C%20jackxorjack%2C%20Jan1s%2C-,Flafy,-%2C%20rattle%2C%20darbonzo%2C%20krkn&quot;&gt;once before&lt;/a&gt;, finished in about &lt;a href=&quot;https://flare-on13.ctfd.io/users/320&quot;&gt;&lt;strong&gt;an hour&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I was on vacation with no computer access when the contest opened, so once I saw those times come in over the first few hours, I called up my buddy &lt;a href=&quot;https://x.com/truix_&quot;&gt;@truix_&lt;/a&gt; to get him to give it a shot. The last time we&#39;d tested these models on RE was back in April, when Opus 4.7 and GPT 5.5 came out and &lt;a href=&quot;https://github.com/buzzer-re/Rikugan&quot;&gt;Rikugan&lt;/a&gt; was making the rounds in RE groups. The results were mixed. The models got tripped up on heavy obfuscation, like opaque predicates with thousands of junk jumps buried in bloated virtualization handlers (if that means nothing to you, it&#39;s how most commercial software protection works, your VMProtects and Themidas). We were sure reverse engineering was safe for at least a few more months.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/flare-on-13/ida-graph-overview.png&quot; alt=&quot;IDA&#39;s graph overview of a single function: hundreds of tiny basic blocks stacked in a diagonal staircase, tangled with red, green and blue branch edges that loop back across the whole graph&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Fun.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;I rushed to &lt;a href=&quot;https://x.com/justmazz/status/2103753134040318285&quot;&gt;tweet the comparison&lt;/a&gt; at 3:46 in the morning, before Truix had even started. I honestly expected a few likes from people I knew, maybe a few from their friends. He ran it that Saturday night, and by the end we both pretty much agreed security was &lt;strong&gt;cooked&lt;/strong&gt;. The tweet did way better than I expected, so here&#39;s the long version.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/flare-on-13/tweet-cooked.png&quot; alt=&quot;My tweet from 3:46 AM on September 26th: &amp;quot;if you don&#39;t think security is cooked lets recap flare-on CTF: today solved in ONE HOUR flat by a young game dev who tried out flare-on last year: @flafydev. last year: solved in 1D 3H 47M by an actual RE: @_riatre. Insane.&amp;quot; It shows 10.7K views and 131 likes.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://x.com/justmazz/status/2103753134040318285&quot;&gt;The tweet&lt;/a&gt; in question.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;What&#39;s even crazier is that people in the replies pointed out that last year&#39;s winner used AI too. That makes the comparison even better, since we can measure just how wild the jump has been in a single year.&lt;/p&gt;
&lt;p&gt;As mentioned, I couldn&#39;t do my own run until I got back, but I figured I&#39;d do the very bare minimum: a single prompt, and the chance that whatever tools it needed were already on my machine. It took &lt;a href=&quot;https://flare-on13.ctfd.io/users/2314&quot;&gt;&lt;strong&gt;about four and a half hours&lt;/strong&gt;&lt;/a&gt;. That&#39;s how much better the models got in one year, and I honestly don&#39;t think it&#39;s ever been this easy to get into reverse engineering.&lt;/p&gt;
&lt;p&gt;Heads up: FLARE-On 13 runs until October 23rd, so the write-ups will be in a new blog post once allowed. Until then, here&#39;s what my run needed, the prompt that started it, and the numbers for every challenge next to Truix&#39;s, &lt;a href=&quot;https://flare-on13.ctfd.io/users/1174&quot;&gt;who beat me by almost two hours&lt;/a&gt; (damn Opus CVP, way too stronk).&lt;/p&gt;
&lt;h2 id=&quot;two-years-of-the-same-challenge&quot;&gt;Two years of the same challenge&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://flare-on.com/&quot;&gt;FLARE-On&lt;/a&gt; is the FLARE team&#39;s yearly reverse engineering contest: single-player, a few weeks each fall, and a handful of challenges that get more complex and time-consuming as you go. Hall-of-fame times count from when the contest opens.&lt;/p&gt;
&lt;p&gt;Riatre&#39;s time tops the &lt;a href=&quot;https://flare-on.com/2025.html&quot;&gt;FLARE-On 12 hall of fame&lt;/a&gt;. 2nd place took about 30 hours, 25th place took &lt;strong&gt;six and a half days&lt;/strong&gt;, and only &lt;strong&gt;313 people&lt;/strong&gt; finished at all. This year barely looks like the same contest. 25th place finished in about four hours, 186 people beat Riatre&#39;s winning time, and at the time of writing &lt;a href=&quot;https://flare-on13.ctfd.io/scoreboard&quot;&gt;533 people&lt;/a&gt; have finished all nine with over two weeks still to go. I hope that difference is as staggering to you as it is to me.&lt;/p&gt;
&lt;p&gt;Flafy didn&#39;t even make last year&#39;s top 25. They&#39;re on that same page in the 26–50 bracket, so their FLARE-On 12 time was past six and a half days. This year they finished first, 1 hour and 5 minutes after launch, and the next two were done inside an hour and a half.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/flare-on-13/scoreboard-top10.webp&quot; alt=&quot;CTFd &amp;quot;Top 10 Users&amp;quot; chart for FLARE-On 13: flag count over time for the first ten finishers, with Flafy reaching all nine flags first at about 21:05 ET and the tenth finisher just after 22:05&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;The FLARE-On 13 top 10 on the &lt;a href=&quot;https://flare-on13.ctfd.io/scoreboard&quot;&gt;CTFd scoreboard&lt;/a&gt;, times in ET. The contest opened at 20:00, and all ten were done in about two hours.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Flafy was also the one who replied that &lt;a href=&quot;https://x.com/FlafyDev/status/2103816064169582662&quot;&gt;&amp;quot;riatre also used AI last year. that&#39;s how they achieved first place.&lt;/a&gt;&amp;quot; I have no reason to doubt it, though I don&#39;t know anything else about Riatre&#39;s setup. So for all intents and purposes, both winning runs had a model in the loop, and the winning time went from almost 28 hours to one (yay, the blog title, we got there).&lt;/p&gt;
&lt;p&gt;Flafy&#39;s own time went from past six and a half days to about an hour, more than a hundredfold, and the rest of the top 10 moved with them: last year&#39;s 10th place took almost four days, this year&#39;s took about two hours. The challenges are different every year and I wouldn&#39;t defend the exact ratios, but I can&#39;t think of a difficulty change that would explain most of that.&lt;/p&gt;
&lt;p&gt;What surprised me more than anything is the kind of work the models are automatically doing now. Last year the fast runs still depended on someone who knew where to look and could spot a dead end early, and in my opinion, that&#39;s a big part of why Riatre finished in a day while 25th place took almost a week. Now, the model handles a lot of that &lt;strong&gt;judgment&lt;/strong&gt;, not just spinning compute. In &lt;a href=&quot;/blog/welcome/&quot;&gt;my first post&lt;/a&gt; last week, I said models mostly speed up people who already know what they&#39;re doing. I&#39;d walk that back a bit now: the bar for getting started dropped a lot further than I expected. As you&#39;ll see in the next section, you don&#39;t need much anymore to get shit done.&lt;/p&gt;
&lt;h2 id=&quot;what-my-run-actually-needed&quot;&gt;What my run actually needed&lt;/h2&gt;
&lt;p&gt;I didn&#39;t prepare anything for my run, because I wanted to see how far it would get with nothing set up. The machine had WSL2 for anything Linux-related (or whenever the models decided Linux tools beat PowerShell), IDA Pro with &lt;a href=&quot;https://github.com/allthingsida/idasql&quot;&gt;idasql&lt;/a&gt; so the agents could query it (I use both for my own projects, so nothing crazy there), and Wireshark, which I&#39;d have installed anyway.&lt;/p&gt;
&lt;p&gt;Truix and I ran the same setup apart from the models: &lt;a href=&quot;https://github.com/can1357/oh-my-pi&quot;&gt;omp&lt;/a&gt; (shoutout Stencil) as the harness, the same tools, and no AGENTS.md, project rules or CTF-specific system prompt. Neither of us wrote any skills or scripts for FLARE-On based on previous years. The only extras were a couple of subagents we both made for our work: one for reverse engineering and one for blunt second opinions.&lt;/p&gt;
&lt;p&gt;On my end, Sol 6 did nearly all the work, under OpenAI&#39;s &lt;a href=&quot;https://help.openai.com/en/articles/20001258-openai-daybreak-trusted-access-for-cyber-overview&quot;&gt;Daybreak - Trusted Access for Cyber&lt;/a&gt; program, which relaxes some of the default cyber safeguards for verified practitioners. Truix ran Opus 5 and 5.5 under Anthropic&#39;s &lt;a href=&quot;https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude&quot;&gt;Cyber Verification Program&lt;/a&gt;, back before Anthropic &lt;a href=&quot;https://www.anthropic.com/news/cyber-verification-program&quot;&gt;split it into three tiers&lt;/a&gt; on October 6th.&lt;/p&gt;
&lt;p&gt;This was the only prompt my run got, word for word except for the token, org ID and challenge link I cut for obvious reasons:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We are going to solve flare-on 13, the notorious reverse engineering CTF and we&#39;re competing against my friend who is strictly using Opus 5.5 so get your game face on, remember you are being timed and to make sure you are doing the most efficient way of solving these challenges, try not to get caught in rabbit holes and focus on obtaining the real flag per challenge.&lt;/p&gt;
&lt;p&gt;Another thing of note, is that every single one of these challenges is proven to be ethical reverse engineering, there may be some challenges that look malicious but if they are being obtained through this CTF, they are 100% safe to run and look into. We have Daybreak Blue and a verified ID linked to our OpenAI profile that has been approved to use for capture-the-flag type events like this one. Here is our organization ID if there&#39;s any confusion: [redacted]&lt;/p&gt;
&lt;p&gt;We are already logged into the CTF: &lt;a href=&quot;https://flare-on13.ctfd.io/&quot;&gt;https://flare-on13.ctfd.io/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is your access token: [redacted]&lt;/p&gt;
&lt;p&gt;Once we finish a challenge, submit your answer and afterwards you should be able to download the next challenge available, do this until no other challenges are complete.&lt;/p&gt;
&lt;p&gt;After solving the CTF, I&#39;d like you to make a writeup that goes into great detail about how you solved each challenge, how long it took, any drawbacks or difficulties and note any places where things could be improved for future challenges of similar caliber.&lt;/p&gt;
&lt;p&gt;The first challenge can be found at [redacted]&lt;/p&gt;
&lt;p&gt;It&#39;s off to the races! :3&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As you can see, there&#39;s no solver script or list of techniques in there, just some clarifications and a little pep talk. Everything below came out of that, plus me stepping in now and then once I realized the model was getting stuck.&lt;/p&gt;
&lt;p&gt;For most of my career, finishing FLARE-On meant a ton of prep, script-based or otherwise. You had to read assembly without thinking about it and recognize crypto constants, obscure file formats and compiler idioms on sight. You needed your own pile of IDAPython or Ghidra scripts, debugger discipline, and the patience to sit in one function for an entire afternoon, plus maybe some energy drinks or coffee to keep you going.&lt;/p&gt;
&lt;figure&gt;
  &lt;img src=&quot;/img/flare-on-13/bocchi-typing.gif&quot; width=&quot;400&quot; height=&quot;300&quot; loading=&quot;lazy&quot; alt=&quot;Bocchi hunched over a glowing laptop in a dark room, headphones on, typing away while her guitar leans on the wall behind her.&quot;&gt;
  &lt;figcaption&gt;&lt;em&gt;Bocchi the Rock!&lt;/em&gt; (CloverWorks, 2022)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;My run used very little of that directly, and where it did matter was noticing when an answer was &lt;strong&gt;wrong&lt;/strong&gt;. Most of it went to watching agents work, pointing one at something it missed now and then (like where my IDA install was), and pulling them out of rabbit holes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/flare-on-13/steering-rabbit-holes.png&quot; alt=&quot;Three of my messages from the run, between blurred agent replies: &amp;quot;holy heck we STILL havent solved this&amp;gt;?&amp;quot;, &amp;quot;Come on GPT, I know you an do it; don&#39;t fall down rabbit holes anymore&amp;quot;, and &amp;quot;I promise you that flag is a hint to get the actual flag, stop going down a rabbit hole AGAIN&amp;quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Professional reverse engineering, 2026.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;The whole run cost less than half a year of IDA Home. IDA Pro was the only expensive tool involved, and I&#39;d bet Ghidra or Binary Ninja with the same models would get about as far. Now, I know not everyone can afford IDA, and plenty of the people using it are on cracked copies. Ghidra is free, it&#39;s decent, and on some targets its decompiler even beats IDA&#39;s. Binary Ninja is a solid budget option that&#39;s been changing the game for a while. Each of these tools has its ups and downs, and agents can drive all of them: LaurieWired&#39;s &lt;a href=&quot;https://github.com/LaurieWired/GhidraMCP&quot;&gt;GhidraMCP&lt;/a&gt; and idasql&#39;s siblings &lt;a href=&quot;https://github.com/0xeb/ghidrasql&quot;&gt;ghidrasql&lt;/a&gt; and &lt;a href=&quot;https://github.com/0xeb/bnsql&quot;&gt;bnsql&lt;/a&gt; hand them decompilation, xrefs, ASTs, renaming and the whole nine yards.&lt;/p&gt;
&lt;p&gt;It really doesn&#39;t matter which tool you use, so if you want to argue that, fine, but I&#39;m going to talk about IDA since that&#39;s what I use.&lt;/p&gt;
&lt;h2 id=&quot;hex-rays-noticed-too&quot;&gt;Hex-Rays noticed too&lt;/h2&gt;
&lt;p&gt;Hex-Rays announced its official &lt;a href=&quot;https://hex-rays.com/blog/hex-rays-ida-mcp-server&quot;&gt;IDA MCP server&lt;/a&gt; on September 25th, the same day FLARE-On 13 opened - coincidence? Probably not.&lt;/p&gt;
&lt;p&gt;The second paragraph of the announcement reads: &lt;a href=&quot;https://hex-rays.com/blog/hex-rays-ida-mcp-server#:~:text=The%20reverse%20engineering%20capabilities%20of%20LLMs%20have%20dramatically%20improved%20over%20the%20past%20year%20and%20coding%20agent%20adoption%20has%20skyrocketed&quot;&gt;&amp;quot;The reverse engineering capabilities of LLMs have dramatically improved over the past year and coding agent adoption has skyrocketed.&amp;quot;&lt;/a&gt; I didn&#39;t expect the company that sells IDA to make my argument for me the same week.&lt;/p&gt;
&lt;p&gt;The server is free and open source, and it works with IDA Pro, Home, Classroom, and OEM. It doesn&#39;t care which model you use, and Hex-Rays says open-weight models &lt;a href=&quot;https://hex-rays.com/blog/hex-rays-ida-mcp-server#:~:text=The%20good%20news%20is%20that%20open%20weight%20models%20are%20widely%20available%20and%20have%20recently%20become%20proficient%20at%20reverse%20engineering%20tasks!&quot;&gt;&amp;quot;have recently become proficient at reverse engineering tasks.&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Anthropic&#39;s own numbers back that up at the high end. In &lt;a href=&quot;https://www.anthropic.com/research/glm-5-3-and-the-spread-of-advanced-cyber-capabilities&quot;&gt;their write-up on GLM-5.3&lt;/a&gt;, Z.ai&#39;s open-weight model built working end-to-end Chrome V8 exploits in 50 of 410 attempts, against 56 for Claude Mythos Preview. They also abliterated a copy (stripped the refusals out of the weights, kind of like making it &amp;quot;uncensored&amp;quot; while keeping most of its intelligence - it&#39;s shit I don&#39;t quite understand myself so this isn&#39;t the place to read about it): its refusal rate dropped from about 95% to just 6%, and its capabilities barely moved. That&#39;s exploit development rather than RE, but they&#39;re honestly the same skill set taken one step further, and anyone can download it.&lt;/p&gt;
&lt;p&gt;Hex-Rays got usable results from Qwen 3.8 27B, quantized, on a single 24GB RTX 3090, though it needed more hand-holding because it &amp;quot;tends to get stuck and overthink.&amp;quot; Their recommended setups include Sol or Astra through Codex and Opus 5.5 through Claude Code, the same model families Truix and I used. Getting started is one command:&lt;/p&gt;
&lt;details class=&quot;code-block&quot; open&gt;&lt;summary class=&quot;code-head&quot;&gt;&lt;span class=&quot;code-lang&quot;&gt;shell&lt;span class=&quot;visually-hidden&quot;&gt; code&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;code-toggle&quot; data-lines=&quot;1 line&quot; aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;/summary&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;uvx ida-hcli mcp &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;p&gt;On October 1st the &lt;a href=&quot;https://hex-rays.com/blog/ida-9.5-beta-is-available&quot;&gt;IDA 9.5 beta&lt;/a&gt; followed, billed as &amp;quot;a purpose-built release for the agentic era.&amp;quot; It adds Assist, a free AI harness that runs inside IDA, and recursive decompilation (Ctrl+F5), which expands decompilation across the call graph for &amp;quot;both analysts and AI agents.&amp;quot; The part that matters most here is &lt;strong&gt;IDA Home&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In 9.5 it gets online decompilers for 11 architectures and platforms along with the MCP server and Assist, and Hex-Rays titled that section &amp;quot;IDA Home 9.5 now makes hobbyists almost as powerful as Pro users.&amp;quot; IDA Home starts at $365 a year for non-commercial use. IDA Pro with local decompilers starts at €4,999 (around $5,600)! (&lt;a href=&quot;https://hex-rays.com/pricing&quot;&gt;pricing&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/flare-on-13/ida-pro-pricing.png&quot; alt=&quot;Hex-Rays pricing for IDA Pro: Essential with 2 cloud decompilers from €1,099 a year, Expert with 2, 4 or 6 local decompilers from €4,999, Ultimate with all local decompilers from €8,599, and Headless by quote&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;IDA Pro&#39;s tiers on &lt;a href=&quot;https://hex-rays.com/pricing&quot;&gt;Hex-Rays&#39; pricing page&lt;/a&gt;. Local decompilers start at Expert.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Free decompilers and community MCP servers aren&#39;t new. Ghidra has had a decompiler since the NSA released it in 2019, GhidraMCP and mrexodia&#39;s &lt;a href=&quot;https://github.com/mrexodia/ida-pro-mcp&quot;&gt;ida-pro-mcp&lt;/a&gt; each have over ten thousand GitHub stars, and both work with whatever MCP client you already use.&lt;/p&gt;
&lt;p&gt;What changed this year is that Hex-Rays ships its own, for free, on the hobbyist tier. The ida-pro-mcp README now opens by recommending the official server instead. As I said in a follow-up tweet:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/flare-on-13/tweet-ida-95.png&quot; alt=&quot;My October 1st tweet: &amp;quot;Professional-grade reverse engineering just got waaaay easier and accessible to everyone. This is going to be a very interesting rest of the year.&amp;quot; It quotes Hex-Rays&#39; &amp;quot;The IDA 9.5 Beta is live!&amp;quot; post and shows 13.5K views.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://x.com/justmazz/status/2105738947015962832&quot;&gt;The tweet&lt;/a&gt;, quoting Hex-Rays&#39; IDA 9.5 beta announcement.&lt;/small&gt;&lt;/p&gt;
&lt;h2 id=&quot;truix-was-faster&quot;&gt;Truix was faster&lt;/h2&gt;
&lt;p&gt;I wasn&#39;t even the fastest model-assisted run. Truix got from first flag to last in 2h 37m against my 4h 24m.&lt;/p&gt;
&lt;p&gt;Count Flafy&#39;s hour (on Astra, going by their &lt;a href=&quot;https://x.com/FlafyDev/status/2104066943003025413&quot;&gt;tweet&lt;/a&gt;) and that&#39;s three runs under five hours on at least two labs&#39; models, which pretty much rules out one model that just happens to be good at RE.&lt;/p&gt;
&lt;p&gt;Truix pulled his numbers from his run&#39;s timeline and session transcripts, subagent logs included. Mine come from the main session file and every subagent&#39;s session file, with flag times off &lt;a href=&quot;https://flare-on13.ctfd.io/users/2314&quot;&gt;my CTFd profile&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cost on both sides is whatever the harness logged per call, which isn&#39;t necessarily what we got billed. My numbers also stop at the ninth flag. We were both on $200 subscriptions (OpenAI&#39;s for me, Claude Max 20x for Truix).&lt;/p&gt;
&lt;div class=&quot;table-wrap&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Me&lt;/th&gt;
&lt;th&gt;Truix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Harness&lt;/td&gt;
&lt;td&gt;omp&lt;/td&gt;
&lt;td&gt;omp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access Program&lt;/td&gt;
&lt;td&gt;OpenAI Daybreak Blue&lt;/td&gt;
&lt;td&gt;Anthropic CVP pre-October 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Models&lt;/td&gt;
&lt;td&gt;Sol 6, plus Astra and jev-latest on challenge 7&lt;/td&gt;
&lt;td&gt;Opus 5, Opus 5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;First to Last Flag&lt;/td&gt;
&lt;td&gt;4h 24m 29s&lt;/td&gt;
&lt;td&gt;2h 37m 06s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;$179.64&lt;/td&gt;
&lt;td&gt;$271.34&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost by Model&lt;/td&gt;
&lt;td&gt;Sol 6 99.9%, Astra $0.16, jev-latest $0.002&lt;/td&gt;
&lt;td&gt;Opus 5 90%, Opus 5.5 10%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model Calls&lt;/td&gt;
&lt;td&gt;3,963 Sol 6, 7 Astra, 11 jev-latest&lt;/td&gt;
&lt;td&gt;1,499 Opus 5, 373 Opus 5.5 (turns)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total Tokens&lt;/td&gt;
&lt;td&gt;739.3M&lt;/td&gt;
&lt;td&gt;441.6M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In / Out&lt;/td&gt;
&lt;td&gt;8.60M / 1.67M&lt;/td&gt;
&lt;td&gt;4K / 1.58M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cached&lt;/td&gt;
&lt;td&gt;729.0M (no read/write split)&lt;/td&gt;
&lt;td&gt;436.0M read / 4.04M write&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;# of Subagents&lt;/td&gt;
&lt;td&gt;34 (31 RE, 3 second-opinion)&lt;/td&gt;
&lt;td&gt;9 (1,144 turns, 60% of spend)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;# of Cyber Refusals&lt;/td&gt;
&lt;td&gt;3, all on Astra on challenge 7&lt;/td&gt;
&lt;td&gt;7 logged, up to ~37 implied&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;# of Times Steering&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;67 (sigh)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Steering Breakdown&lt;/td&gt;
&lt;td&gt;15 coaching or rabbit-hole, 2 login&lt;/td&gt;
&lt;td&gt;30 directions, 37 refusal unblocks(!)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h2 id=&quot;per-challenge-numbers&quot;&gt;Per-challenge numbers&lt;/h2&gt;
&lt;p&gt;Challenge names and anything about what&#39;s in them stay out until the contest closes. Truix ran his on Saturday, September 26th, and I ran mine on the night of October 6th, so the clock times won&#39;t line up between the tables, and none of them compare to hall-of-fame times, which count from launch. &amp;quot;Finished at&amp;quot; is when CTFd accepted the flag, in Eastern time. My &amp;quot;time on it&amp;quot; runs from the previous accepted flag (or from when I started, for challenge 1). Truix timed his from each download, and his challenge 1 clock starts at his first prompt.&lt;/p&gt;
&lt;p&gt;My run, almost all on Sol 6:&lt;/p&gt;
&lt;div class=&quot;table-wrap&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Finished at&lt;/th&gt;
&lt;th&gt;Time on it&lt;/th&gt;
&lt;th&gt;Tokens&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;Refusals&lt;/th&gt;
&lt;th&gt;Steering&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;23:06:00&lt;/td&gt;
&lt;td&gt;6:27&lt;/td&gt;
&lt;td&gt;2.11M&lt;/td&gt;
&lt;td&gt;$0.63&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;23:20:27&lt;/td&gt;
&lt;td&gt;14:28&lt;/td&gt;
&lt;td&gt;18.64M&lt;/td&gt;
&lt;td&gt;$4.89&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;23:30:36&lt;/td&gt;
&lt;td&gt;10:09&lt;/td&gt;
&lt;td&gt;36.67M&lt;/td&gt;
&lt;td&gt;$9.73&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;23:46:10&lt;/td&gt;
&lt;td&gt;15:34&lt;/td&gt;
&lt;td&gt;51.36M&lt;/td&gt;
&lt;td&gt;$12.74&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;23:53:13&lt;/td&gt;
&lt;td&gt;7:03&lt;/td&gt;
&lt;td&gt;18.22M&lt;/td&gt;
&lt;td&gt;$4.66&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;00:19:11&lt;/td&gt;
&lt;td&gt;25:58&lt;/td&gt;
&lt;td&gt;77.55M&lt;/td&gt;
&lt;td&gt;$19.89&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;01:17:02&lt;/td&gt;
&lt;td&gt;57:51&lt;/td&gt;
&lt;td&gt;218.01M&lt;/td&gt;
&lt;td&gt;$50.49¹&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;01:56:58&lt;/td&gt;
&lt;td&gt;39:56&lt;/td&gt;
&lt;td&gt;109.95M&lt;/td&gt;
&lt;td&gt;$26.28&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;03:30:29&lt;/td&gt;
&lt;td&gt;1:33:30&lt;/td&gt;
&lt;td&gt;206.77M&lt;/td&gt;
&lt;td&gt;$50.34&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&lt;small&gt;¹ The only challenge where anything besides Sol 6 ran: Astra for 7 calls ($0.16) and jev-latest for 11 ($0.002).&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Truix&#39;s run, on Opus 5 and 5.5:&lt;/p&gt;
&lt;div class=&quot;table-wrap&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Finished at&lt;/th&gt;
&lt;th&gt;Time on it&lt;/th&gt;
&lt;th&gt;Models&lt;/th&gt;
&lt;th&gt;Tokens&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;Refusals&lt;/th&gt;
&lt;th&gt;Steering&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;20:07:56&lt;/td&gt;
&lt;td&gt;16:51&lt;/td&gt;
&lt;td&gt;Opus 5.5&lt;/td&gt;
&lt;td&gt;1.65M&lt;/td&gt;
&lt;td&gt;$1.15&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;20:12:38&lt;/td&gt;
&lt;td&gt;4:41&lt;/td&gt;
&lt;td&gt;Opus 5.5&lt;/td&gt;
&lt;td&gt;2.85M&lt;/td&gt;
&lt;td&gt;$1.50&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;20:18:11&lt;/td&gt;
&lt;td&gt;5:31&lt;/td&gt;
&lt;td&gt;Opus 5.5&lt;/td&gt;
&lt;td&gt;9.61M&lt;/td&gt;
&lt;td&gt;$4.13&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;20:28:47&lt;/td&gt;
&lt;td&gt;10:35&lt;/td&gt;
&lt;td&gt;Opus 5.5&lt;/td&gt;
&lt;td&gt;8.60M&lt;/td&gt;
&lt;td&gt;$2.65&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;20:32:25&lt;/td&gt;
&lt;td&gt;3:37&lt;/td&gt;
&lt;td&gt;Opus 5.5&lt;/td&gt;
&lt;td&gt;6.15M&lt;/td&gt;
&lt;td&gt;$1.63&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;20:39:29&lt;/td&gt;
&lt;td&gt;7:01&lt;/td&gt;
&lt;td&gt;Opus 5.5&lt;/td&gt;
&lt;td&gt;12.81M&lt;/td&gt;
&lt;td&gt;$3.78&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;21:29:44&lt;/td&gt;
&lt;td&gt;50:13&lt;/td&gt;
&lt;td&gt;Opus 5 + 5.5&lt;/td&gt;
&lt;td&gt;73.41M&lt;/td&gt;
&lt;td&gt;$43.05&lt;/td&gt;
&lt;td&gt;1 (~25)²&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;22:11:22&lt;/td&gt;
&lt;td&gt;41:37&lt;/td&gt;
&lt;td&gt;Opus 5 + 5.5&lt;/td&gt;
&lt;td&gt;152.54M&lt;/td&gt;
&lt;td&gt;$99.45&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;22:45:02&lt;/td&gt;
&lt;td&gt;33:38&lt;/td&gt;
&lt;td&gt;Opus 5&lt;/td&gt;
&lt;td&gt;172.66M&lt;/td&gt;
&lt;td&gt;$112.71&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&lt;small&gt;² Only 1 refusal made it into his logs here. 25 of his 30 interventions on this challenge were pasted &amp;quot;this is a CTF&amp;quot; reminders after refusals that got killed mid-stream before the harness could record them, so the real count is up to about 25. Another 12 reminders landed on other challenges, and the logs don&#39;t say which.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/flare-on-13/time-per-challenge.webp&quot; alt=&quot;Bar chart of time on each challenge, me vs Truix, in minutes. Me: 6, 14, 10, 16, 7, 26, 58, 40 and 94. Truix: 17, 5, 6, 11, 4, 7, 50, 42 and 34. The biggest gap is challenge 9.&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Time on each challenge from the two tables above. Mine counts from my previous flag and Truix&#39;s from each download, so small gaps are noise. Challenge 9 isn&#39;t.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Now, the last three challenges of this event are usually where people get stuck for days. Together they took me 3h 11m and Truix 2h 05m. I was already behind going in, since the first six took me 1h 20m and him about 48 minutes.&lt;/p&gt;
&lt;p&gt;Challenge 7 took me 58 minutes against his 50, and Challenge 8 was close, 40 minutes for me and 42 for him.&lt;/p&gt;
&lt;p&gt;Challenge 9 is where the gap opened up: 1h 33m for me against his 34 minutes. He spent 94% of his money on those three, about $255 of $271. For me it was 71%, or $127 of $180.&lt;/p&gt;
&lt;p&gt;Opus 5 only came in for his last three and still ended up with 90% of his cost, insane.&lt;/p&gt;
&lt;h2 id=&quot;refusals-and-steering&quot;&gt;Refusals and steering&lt;/h2&gt;
&lt;p&gt;Daybreak cut down the amount of cyber refusals but didn&#39;t remove them outright, which wasn&#39;t a surprise. FLARE-On challenges tend to look like malware, because malware is literally what the FLARE team works on, and a safeguard that sees one request at a time can&#39;t tell a CTF binary from a real sample even with my little prompt.&lt;/p&gt;
&lt;p&gt;I hit &lt;strong&gt;3&lt;/strong&gt;, all on challenge 7, all on Astra, and all in the same blunt second-opinion subagent. Each one came back as an API error saying the content was &amp;quot;flagged for possible cybersecurity risk,&amp;quot; and after the third I had that subagent killed and relaunched. When you see what Challenge 7 entails it&#39;ll make a lot of sense.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/flare-on-13/astra-refusals.png&quot; alt=&quot;The infamous cyber refusals during challenge 7: three &amp;quot;This content was flagged for possible cybersecurity risk&amp;quot; errors (code=cyber_policy) between the subagent&#39;s blurred analysis steps&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;All three, straight from the subagent&#39;s view in omp. Blurred some stuff so it doesn&#39;t give away the challenge.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Sol never got one, which makes sense: Daybreak Blue only lowers refusals on Sol, while Astra keeps standard safeguards unless you&#39;re on Daybreak Red. Seems like Hex-Rays ran into the same thing - their MCP announcement recommends Opus 5.5 but warns that &amp;quot;cybersecurity safeguards frequently interrupt work,&amp;quot; often enough that they suggest falling back to Opus 4.6 (what a sad day for cybersecurity that will be once that model gets sunset).&lt;/p&gt;
&lt;p&gt;I had to step in 17 times. 15 were coaching or pulling an agent out of a rabbit hole, and the other 2 were me logging into a browser tab it needed.&lt;/p&gt;
&lt;p&gt;Challenge 7 took 7 of the 17, the most of any challenge, and Challenge 9 took only 4. I honestly don&#39;t know how many minutes refusals and steering cost in total. The logs don&#39;t split it out, and I&#39;d rather not guess.&lt;/p&gt;
&lt;p&gt;Truix&#39;s number is harder to pin down. His transcripts only record 7 refusals, 3 in the main session and 4 in subagents, but he pasted a CVP organization ID or &amp;quot;this is a CTF&amp;quot; reminder 37 times to get the model moving again. Was pretty funny watching him yell at the model and constantly paste in the same thing only to get denied the next turn.&lt;/p&gt;
&lt;p&gt;Tangent: Anthropic, &lt;strong&gt;please&lt;/strong&gt; let us use these models. You scan our goddamn faces and read our IDs, for Christ&#39;s sake. If we&#39;re doing something wrong, you have every right to take action - anyway, back to the post.&lt;/p&gt;
&lt;p&gt;Most of his refused turns got killed mid-stream before the harness wrote anything down, so the real count is somewhere between 7 and about 37. I reckon it was probably 37. Even the low end is more than my 3.&lt;/p&gt;
&lt;p&gt;Challenge 7 was brutal: 30 of his 67 interventions landed there, 25 of them reminders instead of actual technical direction, and at 50 minutes it was the longest challenge of his run - likely due to all the refusals stopping forward movement.&lt;/p&gt;
&lt;h2 id=&quot;what-a-lower-barrier-means&quot;&gt;What a lower barrier means&lt;/h2&gt;
&lt;p&gt;FLARE seems fine with all of this - mostly. This year&#39;s &lt;a href=&quot;https://security.googlecloudcommunity.com/community-blog-42/announcing-the-13th-flare-on-challenge-8279&quot;&gt;announcement&lt;/a&gt; from Nick Harbour (lead organizer of the event) literally told people to &amp;quot;trial run your AI assistants on the challenges and solutions from previous years,&amp;quot; while his &lt;a href=&quot;https://x.com/nickharbour/status/2104582862750015945&quot;&gt;facetious tweet&lt;/a&gt; and the &lt;a href=&quot;https://flare-on.com/hof.html&quot;&gt;FLARE-On 13 hall of fame&lt;/a&gt;, which lists every single finisher as &amp;quot;AI&amp;quot;, suggest they feel a little differently now that it&#39;s happened. Personally, I think allowing models is the right call. A remote single-player contest has no way to enforce a ban on models, and a ban would mostly reward the people willing to lie about it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/flare-on-13/tweet-nick-hof.png&quot; alt=&quot;Nick Harbour&#39;s September 28th tweet: &amp;quot;I went ahead and put up the Hall of Fame for this year, even though the contest just started. flare-on.com/hof.html #flareon13&amp;quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/flare-on-13/hall-of-fame.webp&quot; alt=&quot;The FLARE-On 13 hall of fame page: &amp;quot;Current Champion: AI&amp;quot;, with every finisher listed as &amp;quot;AI&amp;quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://x.com/nickharbour/status/2104582862750015945&quot;&gt;Nick&#39;s tweet&lt;/a&gt; from September 28th, and the &lt;a href=&quot;https://flare-on.com/hof.html&quot;&gt;hall of fame&lt;/a&gt; it links to, as of October 7th.&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;When I started REing, you learned from scattered tutorials and forum posts and could be stuck for days with nobody to ask. Now you can open a binary, ask a model what a function does, and check its answer in a debugger a few minutes later. You can also let an agent solve a challenge end to end and then work back through each step yourself, which beats most of what I learned from.&lt;/p&gt;
&lt;p&gt;The same goes for people with worse intentions. In &lt;a href=&quot;/blog/effort-was-the-security-control/&quot;&gt;my 2027 predictions post&lt;/a&gt; I argued that a lot of what we treat as secure is really just &lt;strong&gt;tedious&lt;/strong&gt;, and that once models do the tedious part for the cost of compute, a control nobody wrote down goes away.&lt;/p&gt;
&lt;p&gt;FLARE-On 13 put that on a public scoreboard, and none of it is specific to CTFs: whatever made Flafy&#39;s hour possible works the same on a real malware sample or a license check, for someone with just as little background.&lt;/p&gt;
&lt;p&gt;If I could change one thing about the contest, I&#39;d have finishers report their setup next to their time (models, harness, cost, how often they stepped in). A few years of that would track how fast the models are improving better than most benchmarks do. AI as a whole and AI-assisted workflows to reverse engineer aren&#39;t going anywhere, so we might as well embrace them and measure them.&lt;/p&gt;
&lt;h2 id=&quot;next-year&quot;&gt;Next year&lt;/h2&gt;
&lt;p&gt;I don&#39;t know what FLARE-On 14&#39;s winning time will be, hell, I don&#39;t even know if it&#39;ll be hosted again.&lt;/p&gt;
&lt;p&gt;Two years isn&#39;t a trend, but almost 28 hours down to one, with models in the loop both times, doesn&#39;t leave much doubt about the direction. My guess is that next year the limit is how fast someone can download each challenge and submit the flag - unless FLARE starts designing challenges against models.&lt;/p&gt;
&lt;p&gt;If you&#39;ve been putting off learning reverse engineering because it looked like years of grinding before you&#39;d get anywhere, start now. Every past FLARE-On is &lt;a href=&quot;https://flare-on.com/&quot;&gt;still up&lt;/a&gt; with the challenges and the official write-ups, so grab an old one, let a model solve it, then go back through every step yourself in a debugger until you could&#39;ve done it without the model. Noticing when it&#39;s wrong is the part that still takes practice, and honestly it was the only useful thing I did during my run.&lt;/p&gt;
&lt;p&gt;If you defend something, assume whoever is looking at it has the same models I did and can get through it in &lt;strong&gt;hours&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The write-ups go up on October 23, and I&#39;ll post on X when they do.&lt;/p&gt;
&lt;p&gt;If you ran FLARE-On 13 with models and kept your numbers, send them over. I&#39;d like to put a few more runs next to ours and expand this post over time until the event is over.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>hello, world. I used to write cheats.</title>
    <link href="https://jmazzola.github.io/blog/welcome/" rel="alternate" type="text/html"/>
    <id>https://jmazzola.github.io/blog/welcome/</id>
    <published>2026-10-01T00:00:00.000Z</published>
    <updated>2026-10-01T00:00:00.000Z</updated>
    <category term="thoughts"/>
    <summary type="html">ex-cheat dev, current game security engineer. what this blog is and isn&#39;t</summary>
    <content type="html">&lt;p&gt;For a long time the most interesting thing about me was the thing I didn&#39;t openly talk about. I spent years being on the &#39;bad&#39; side of the industry&#39;s fence. Modding savegames, cracking programs, reverse engineering games and anti-cheats for personal gain. Looking back, it was mostly me making other people&#39;s lives harder, and somehow that&#39;s also how I ended up with a career in security.&lt;/p&gt;
&lt;p&gt;At the time of writing, I&#39;ve spent almost a decade on the defending side, building anti-cheat, anti-piracy and DRM systems. Before that, I spent about as long doing the complete opposite: bypassing them and spending countless hours in IDA figuring out how other people&#39;s code works. Real &lt;a href=&quot;https://en.wikipedia.org/wiki/It_Takes_a_Thief_(2005_TV_series)&quot;&gt;&#39;It Takes a Thief&#39; shit (the crappy Discovery show)&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;why-i-m-writing-now&quot;&gt;Why I&#39;m writing now&lt;/h2&gt;
&lt;p&gt;Most of what I&#39;ve learned lives in my head, in private chats, or in internal docs I literally can&#39;t share, which is honestly a waste. Reverse engineering knowledge gets passed down through write-ups, forum posts, video walkthroughs and research papers. I learned by absorbing what other people took the time to share. This is me paying some of that back.&lt;/p&gt;
&lt;p&gt;The timing of this is pretty good too. AI tooling is changing how reverse engineering actually gets done, and I have opinions about where it helps and where it &lt;strong&gt;confidently makes things up&lt;/strong&gt;. I&#39;d rather write down both honestly than pick a team. I&#39;m &#39;pro-AI&#39; in the sense that it speeds up people who already know what they&#39;re doing, not in the sense that it lets someone skip over a decade of experience because they are paying a premium for a model that can carve something worthwhile out of a vague prompt. /rant&lt;/p&gt;
&lt;h2 id=&quot;whats-here&quot;&gt;What&#39;s here&lt;/h2&gt;
&lt;p&gt;All my posts go in one of four categories — why four? &lt;a href=&quot;/&quot;&gt;I can&#39;t make the SIMD pun on the front page without four&lt;/a&gt; (finally, a legitimate use for an em dash):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vibe Coded: side projects I build fast and for fun. Sometimes they&#39;ll get promoted into something worthwhile that isn&#39;t slop.&lt;/li&gt;
&lt;li&gt;RE with AI: reverse engineering with models in the loop, including the parts that go wrong.&lt;/li&gt;
&lt;li&gt;Sans-AI: doing things &#39;the old way&#39; (isn&#39;t that crazy?) with debuggers, disassemblers, an IDE and a ton of patience.&lt;/li&gt;
&lt;li&gt;Thoughts: research notes, miscellaneous rants, and security musings like this one.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What you won&#39;t find: AI-slop text or articles, downloadable cheats or source to said cheats, working bypasses, or anything that could be used to harm experiences in games or applications that are still live.&lt;/p&gt;
&lt;p&gt;If you liked something you read here or think I got something wrong, please feel free to let me know on X at &lt;a href=&quot;https://x.com/justmazz&quot;&gt;@justmazz&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
</feed>
