Elektrine
EN
Log in Register
Paige Chat Timeline Communities Gallery Videos Email DNS VPN Uptime Kairo
Back to Timeline
Remote

Zardus

@Zardus@defcon.social
  • Open on defcon.social

Retired @defcon@defcon.social CTF org.
pwn.college Sensei.
@shellphish@defcon.social Captain Emeritus.
@ASU Prof.
@angrdothorse hacker.
CISAGov Technical Advisory Council.
Looking for students/interns!

0 Followers
0 Following
22 Posts
Joined November 15, 2022
github:
https://github.com/zardus
web:
https://yancomm.net
email:
yans@yancomm.net
scholar:
https://scholar.google.com/citations?user=ff1RkwcAAAAJ&hl=en

Posts

Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @addison@nothing-ever.works
@addison@nothing-ever.works Great points on maintainability, security, and sustainability! Here are my thoughts on this. First, the security issues. These can come in two variants: an LLM introduces a bug into a library where no bug existed before, or an LLM faithfully translates buggy behavior from the original to the reimplemented library. IMO, the latter case is hard to fault the translator for and an argument can be made that, for “load bearing bugs”, the correct action here isn’t so clear. My gut feeling is that the right thing to do in this case is to fix the bug into the original and update/regenerate the translation. The former case is by no means unique to LLMs. For example, (human-executed) rust reimplementations of archiving utilities have introduced Zip Slip vulnerabilities such as CVE-2025-29787 or CVE-2025-68705. We tend to hold coding agents to a significantly higher standard than humans here (which I think they eventually _will_ reach anyways), but I think the question of who introduces more bugs in reimplementations is far from a foregone conclusion already. This brings us to maintainability. Again, there are two issues here: first, that no one knows the generated code and second, the question of updating it. I think that, regardless of our feelings about the matter, slopped code is here to stay. It’s already accounting for significant chunks of open source code out there (https://newsletter.semianalysis.com/p/claude-code-is-the-inflection-point) and as these agents continue to improve astronomically, this number will increase. We have, unfortunately, left the era of aggregations of developers knowing all of their code (although it can also be argued that this was never true in the first place, given maintainer drift and so on). The fact that this code is truly “write only” in that no human reads it at all takes this a bit further for sure. I’m not sure what the eventual implications of this are (such as https://dpc.pw/posts/i-dont-want-your-prs-anymore/) and it personally makes me sad, but I do think that code is somewhere on the path to becoming mostly an intermediate representation between specification and compilation. People used to write assembly, then in earlier days of compilers, they would sometimes hand-optimize compiler-produced assembly, but even this gradually stopped as compilers improved (e.g., the latest reference to this practice I can find is 2006 https://www.cs.fsu.edu/~whalley/papers/tecs06.pdf) We still learn assembly and the compilation process in Computer Organization in undergrad, and it’s important for some disciplines of Computer Science, but it’s definitely a somewhat niche topic. Source code seems to be on a similar trajectory. Upgradeability is very related to this. IMO, upgrading this “write only” reimplementation with new features beyond what’s in the upstream library is a bad idea. Development should continue on the original library that the original developers are familiar with. Then the translation could be fully regenerated on demand. This process exists already, but is obviously wasteful. I don’t personally see big issues with translating diffs instead, but it certainly could be that I’m missing something. After all, this whole thing is experimental! Finally, sustainability is a tricky one. There are a lot of pieces to this: fair use of training data, energy, brainrot, economic shockwaves, etc. That’s all hard to pick apart. But dispatching agents can be the right _technical_ solution to many tasks, and I personally don’t feel that properly using them is antithetical to the research process (for example, it can lead to MUCH better implemented and more reliable experiment harnesses). Thanks again for taking the time to write your thoughts down; looking forward to more discussion!
3
1
2
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
Q: Upgrades? How do we upgrade to new versions of the library? When I had infinite codex, I planned to just regenerate them fresh for every version, but now I've had to accept reality and add an Upgrade step (though haven't had a chance to test that out yet).
0
1
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
So, we've got 2 MILLION lines of rust across 24 in-progress (15 complete/tested) reimplemnetations. These libraries are runtime- and compile-time drop-in replacements for their existing equivalents in the Ubuntu repositories. Naturally, this raises many questions!
1
2
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
As a side note, I'm as concerned about brainrot as the next prof, but being able to casually throw 100 agents at any problem that comes to mind is a superpower. It really shifts what's possible, and we'll have other cool things coming out downstream of this capability soon!
1
5
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
Now, this uses a LOT of AI tokens! Luckily, @ASU came to the rescue here, providing INFINITE codex for every employee for the first quarter of the year! While this wasn't sustainable beyond the initial period, it let me leap ahead and get 20 libraries ported for this launch!
0
6
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
The result is pretty amazing. A library might take a full day in planning mode and three days of executing and checking workflow steps, but we can autonomously port massive codebases and end up with functional and reasonable rust rewrites!
0
7
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
We can use this: for every implementation step that Juvenal's agents carry out, Juvenal spawns several (fresh-context) validation agents that check the work for different properties. Anything missing gets punted back to the implementer, dozens of times if necessary.
0
8
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
Coding agents clock out early, lie, and cheat. What they *don't* do is have each other's back: they'll happily throw the work of another agent under the bus, feeling no obligation to cover for something as long as it doesn't share (and, thus, doesn't have to justify) its context!
0
2
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
... and falls on its face, because coding agents are brilliant but terrible. If one of Juvenal's intricately-crafted workflow steps fails, latter steps longer make sense. This would compromise the entire operation, but here we have Juvenal's core insight: agents are lazy liars.
0
10
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
Juvenal's plan creation is intense: it'll draft a high level workflow, iteratively refine it, split it into concrete steps, and keep iterating on this until everything makes sense. This can take as long an entire day of *just planning*, then it gets to implementing...
1
11
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
The Port phase does the main heavy lifting of actually porting the library. My "one size fits all" attempts for this all failed in the face of C library uniqueness, and so this uses an extensive planning step that produces and executes complex library-specific porting workflows.
0
12
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
This test expansion is critical here. My goal is that the ported library should be API & ABI compatible and work as a direct drop-in apt-installable replacement enabling trivial deployment. This requires a LOT of grounding for the agent, and the tests provide this grounding.
0
13
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
Next, Setup prepares the code for porting. This step includes ensuring that existing test cases use public library APIs when possible (to make them applicable to the rust port), and adding new testcases (both directly exercising the library and doing so through dependent apps).
0
14
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
Anyways, let's port some C libraries to rust! Step 1: Recon retrieves the original source (via Ubuntu's source packages; more on this later) and existing CVEs (to keep track of previous non-memory bugs). Not too complex; just three simple prompts.
2
15
2
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
To power this workflow, and to slop some other projects with high complexity, I made a workflow manager called Juvenal (after the Roman poet who famously asked something like "who prompts the agents?"). If you're interested, it's at https://github.com/zardus/juvenal and explained later
1
16
1
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
I solved this with a hierarchical workflow for the high-level process, with complex individual steps dynamically creating library-specific workflows. The main high-level steps I'll describe here are Recon, Setup, and Port, but the full workflow is here: https://github.com/safelibs/pipeline/tree/main/pipeline
1
17
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
My first attempt at solving this was to create an intricate universal workflow to drive agents to porting C libraries, but to paraphrase Tolstoy, "each C library is C in its own way", and this universal workflow was too inflexible and required constant handholding as a result.
0
2
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
One solution is the "ralph loop" that tells the agent to just keep going (popularized by https://github.com/snarktank/ralph which does more than just the loop described here). However, with complex projects, this can send the agent down crazy rabbit holes from which it will never emerge.
0
19
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
For example, laziness. This isn't their fault: the training process has to have limits, and you can intuitively feel these limits in the boundaries that agents place on their efforts. Given a massive task, like, "convert libjpeg to rust", an agent will take a few steps and quit.
0
20
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
On the face of it, coding agents should just be able to convert a C program to rust. After all, why not? It's just translation from one capable language to another. However, even today's cutting-edge agents suffer from a few issues.
0
21
0
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social
Replying to @Zardus@defcon.social
If you want to ignore the "how" in the rest of the thread and get to "what", you can find translated libraries (two million lines of rust!), easily apt-get installable, at https://safelibs.org Enjoy! For the interested readers, we'll dig in below!
1
22
1
0
Open post
Zardus
Zardus @Zardus@defcon.social · Apr 28, 2026
Zardus
@Zardus@defcon.social

Retired @defcon CTF org. pwn.college Sensei. @shellphish Captain Emeritus. @ASU Prof. @angrdothorse hacker. CISAGov Technical Advisory Council. Looking for students/interns!

defcon.social

Can we translate all C to Rust? The susceptibility of C to memory corruption has long been a cybersecurity pain point, and coding agents can free us of it. Read on for my recent experiments in this space, and apt & docker repos that you can pull rust-converted libraries from!

5
2
4
0

Remote instance

defcon.social
Open on original server
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

Platform

  • Email
  • Chat
  • Timeline
  • Communities
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ

Legal

  • Terms of Service
  • Privacy Policy
  • Warrant Canary
  • Lite (no JS)
  • VPN Policy
  • Source code

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 07:26:25 UTC