upvote
Had a similar experience getting a niche app running under wine. The bot had to bring in a different open source renderer, patch dlls, adapt a mapping tool from a different chip architecture to partly map and modify the binary, crazy stuff. Alternatives exist but are expensive, this got it working in an hour when doing it myself would probably be 2 weeks.
reply
Last week I had Claude add support for aac audio to davinci resolve on Linux, just by patching the binary. It did almost exclusively with gdb and objdump, patching about 5 functions over an hour or two.

I only got it to the proof of concept stage. The patch adds aac but breaks flac support in the process. And it only works for aac in mp4 container files. But I’m sure with a bit of time we could make a patch which works everywhere and is additive only.

I say ‘we’ - I barely helped. Almost all the work was done by Claude.

Here’s Claude’s report, if anyone wants to build on this work:

https://claude.ai/code/artifact/87d38c2e-9ecb-4066-90cf-e0b2...

reply
Are you planning to develop this in the open somewhere. I would be more than interested to have that davinci capability as well
reply
Doing something similar with audio equipment. I have an older USB midi controller that doesn’t seem to have official support. Claude helped bring it back to life!
reply
Had a similar thought today - maybe we could finally get Linux drivers for more HW...
reply
Well good news... er... the opposite actually....

>Additional Old Linux Drivers Face Removal Due To Noise From AI/LLM Coding Agents

https://www.phoronix.com/news/Linux-Retiring-Moxa-Driver

reply
And with the Linux Kernel being friendly to both LLM usage and a modern language, for some of us who don't know C, a huge barrier is lifted from being able to write device drivers.

Not a successful anecdote, but I have a Windows Hello compatible Kengsington fingerprint reader, and for some time I wanted to write drivers for Linux. Even without using C, it would have been a huge undertaking only to fail in the end; because Claude did much of the research and concluded that the device wouldn't work on Linux (can't remember why but it made sense). Then it suggested what could work.

reply
Back in the day when dial-up modems were a "significant" market, the concept of "WinModems" came around. Minimum hardware, maximum software. If the sensor is good enough to actually work though, it probably won't be long before an agent can implement the driver, if it can't already.
reply
I don't understand the technology enough to see why, but LLMs seem unusually skilled at reverse engineering proprietary software.
reply
LLMs are good at producing what they/the public know.

In this case:

  LLMs know the USB Spec very well.

  LLMs know how to read raw packet dumps.

  LLMs know how to convert a packet dump to USB spec

  LLMs know how to write code to generate USB packets from the spec.
LLMs are also VERY good at transliteration, i.e., converting known-good Python to Rust.

Basically, If you have a well-documented problem, the LLM is a shortcut to learning it yourself. LLMs fail when you have a novel or poorly documented problem. They also fail when you provide the LLM with terrible context or too much context.

reply
Don't sell in-context learning short. Right now I'm waiting on Claude to wrap up the latest of a half-dozen extensive changes to XML files for a fairly-obscure (and obsolete) closed-source electronics CAD program. I am pretty sure it doesn't know anything about these files besides what's in the XML .DTD file (which I also gave it.)

This is a very novel, reasonably-poorly-documented problem, and so far it has batted 1.000.

reply
IMO it's because they don't get burnt out by a lack of results.

After 5-6 consecutive approaches fail, I need a reason to think the next one might work out to stay motivated.

Claude will keep burning credits trying new approaches until something sticks. That's a huge advantage in a field where most of the things you try don't go anywhere.

reply
As an analogy, you're not going to cut your lawn by hand at the speed and slow pace that the smallest and weakest lawn mowing robot does. You're not going to cut your lawn with kitchen scissors. But the LLM will, metaphorically, be perfectly happy to cut your lawn with kitchen scissors as long as it has enough time/tokens to keep cranking away at it.
reply
I had a discussion about this with a friend recently. I was using an LLM with a serial console that it wrote to allow us to share a connection to a Z80 computer running CP/M. I was having trouble with the assembler, it wouldn’t assemble in user 1 of a particular disk, so I asked the LLM for help. It debugged ASM.COM and the BDOS, walked through the source compared to memory dumps, basically banging its head on the wall for an hour or more, until it finally figured out and verified that my disk had a bad block. I never would have put in that much effort to find the root cause of the problem.
reply
LLMs don't get as mentally exhausted by trying repeated tedious things as a human will. Same general idea as, imagine if you as a human typing into a keyboard had to manually fuzz test software in a pre-LLM era vs. how fuzz testing is actually done.
reply
LLMs seem to be trained to work very well against a goal, especially one it can verify against. I guess because it can easily know if it passed or failed, va other tasks where good/bad output is subjective
reply
That's actually pretty simple.

Reverse engineering isn't so much hard as it is exhausting.

LLMs simply don't care about exhaustion.

reply
It's LLMs' generalist skills. I think reverse engineering is usually hard when you're in an unfamiliar domain. Eg I've never programmed a videogame or windows application but I'm trying to crack one. On the other hand if you know the domain, and know what the programmers' intentions must be in any given block of code, it's often straightforward. There are no unfamiliar domains for LLMs, including it seems proprietary software.
reply
To some degree. But esp for drivers, you still need to know when they go wrong, and steer them right, or your code will either just not work or be an unmaintainable, not-upstreamable mess.
reply
I don't think they're any more skilled at it than someone who knows how to reverse engineer stuff... But it is definitely a place where AI is amazing because reverse engineering is usually extremely time consuming and tedious. AI doesn't care about that.

It also has the benefit that it doesn't usually matter too much if it gets minor details wrong. It's definitely one of the areas - like hacking - where it's a) tedious and b) insensitive to mistakes where AI absolutely shines.

reply
My experience is that they're better than me at a lot of the process, so probably worse than someone who's a full time reverse engineer but as good as or better than most. They'll definitely get some small details wrong that would derail the entire thing, so having some skills that are pretty much "This smells wrong" helps a lot, but I think for many scenarios they'll unblock someone who has little RE experience.
reply
Also verifiable. LLMs shine when they can know when the task is completed correctly. Otherwise they will finish and hand over something that's wrong.
reply
Ditto (except not being an AI detractor): I used Claude and Codex to reverse engineer the proprietary protocol for controlling Devialet amplifiers and then build an iOS controller app to replace the manufacturer's abandoned official app.

The whole thing took about a day, spread out over a week or so. Without AI, I wouldn't have even started the project, because I couldn't spare the time it would have taken.

reply
i looked those up, that's pricey gear. is that a similar app abandonment like with Sonos deprecating and moving to newer protocols?
reply
Sort of. The company released a new model and deprecated its older ones. It’s still possible to control the amps with the (really neat) physical remote.
reply
Yes! If only humanity limited the use of this tech to these kind of things where it make sense...
reply
I've had good luck using AI to reverse-engineer Bluetooth comms for "smart" products with shitty apps.
reply
I've recently done the same for a Bluetooth LED matrix display, then took it a step further assembling my own hardware (ESP32 controller and RGBIC matrix) to have control over the firmware for features that weren't possible with the off-the-shelf device.

None of this would have been possible (or at least practical from a time-value perspective) for me to do without Claude driving the whole exercise.

reply
I wonder how hard it would be to create various firmware updaters for drives or other devices.
reply
I'd be cautious here because you very easily could brick the hardware. For writing a PC driver it's a lot safer since you can just fail repeatedly until it works.
reply
Firmware is a lot harder for a whole host of reasons but it is possible / I've done it.

The odds of success go up a LOT when the stock firmware is easy to extract and reverse engineer.

reply
Are we either in a dangerous time where we'll run out of people that have weeks to months, and the resolution/boredom/ability to figure this sort of thing out?

Or are we in a really cool time where we've solved everything so much so many times we can focus on other things?

Tertiary question: If answer two, what the fuck is that?

reply
More the second.

For programmers this is the equivalent of when accountants got spreadsheets. We can just tell the machine what to do without manually performing all the steps.

Some programmers enjoyed the code writing more than the problem solving though.

reply