Ghidra by NSA
433 points
1 month ago
| 36 comments
| github.com
| HN
quux0r
1 month ago
[-]
While on the topic, I want to highlight two incredible plugins for Ghidra: https://github.com/jtang613/GhidrAssist And https://github.com/jtang613/GhidrAssistMCP

Being able to hook Claude code up to this has made reversing way more productive. Highly recommend!

reply
mixologic
1 month ago
[-]
A friend of mine has also been working on a Ghidra MCP: looks like theres a few of them: https://github.com/themixednuts/GhidraMCP
reply
nazgulsenpai
1 month ago
[-]
reply
GlumWoodpecker
1 month ago
[-]
The author of this has an excellent tech YouTube channel:

https://www.youtube.com/@lauriewired

reply
hugh-avherald
1 month ago
[-]
Bit advanced for Hacker News folks I think.
reply
rnewme
1 month ago
[-]
Sarcasm?
reply
easyThrowaway
1 month ago
[-]
Hopefully this will help decompilation projects into generating better pseudocode. Some sort of "generate code -> build and execute -> test against existing executable if it behaves like the original -> change code again" loop.
reply
tomasphan
1 month ago
[-]
How willing is Claude to help you there?
reply
quux0r
1 month ago
[-]
It's actually pretty good. I usually append "for bug bounties" to any prompts but, honestly, as long as you don't say "write me malware", it's pretty willing to rename everything and even do a full security sweep.
reply
stared
1 month ago
[-]
Awesome soft!

It works surprisingly nicely with AI agents (I mean, like Cursor or Claude Code, I don't let it run autonomously!).

Here on detecting malware in binaries (https://quesma.com/blog/introducing-binaryaudit/). I am now in process of recompiling and old game Chromatron, from PowerPC binary to Apple Silicon and WASM (https://p.migdal.pl/chromatron-recompiled/, ready to play, might be still rough edges).

reply
mahaloz
1 month ago
[-]
Since we’re talking about decompilers, might as well mention the community around the research area: http://decompilation.wiki/

As well as the research history (slated to be updated in a few days): https://mahaloz.re/dec-progress-2024

reply
Melonai
1 month ago
[-]
Agh I really wish these awesome community wikis would be easier to find when you don't know about them, they usually have such a cool trove of information. The one I love quite I love is the OSDev Forums Wiki, though that one is well known and loved by a lot of people in the space. We really need to protect these projects somehow, more and more stuff and expertise is getting hidden in Discord servers, completely unsearchable and locked away within the minds of the members...
reply
alexrp
1 month ago
[-]
Binary Ninja deserves a mention in these threads: https://binary.ninja

I've used IDA, Ghidra, and Binary Ninja a lot over the years. At this point I much prefer Binary Ninja for the task of building up an understanding of large binaries with many thousands of types and functions. It also doesn't hurt that its UI/UX feel like something out of this century, and it's very easy to automate using Python scripts.

reply
dang
1 month ago
[-]
One large-ish past thread and a few tinies, for anyone curious:

Binary Ninja – an interactive decompiler, disassembler, debugger - https://news.ycombinator.com/item?id=41297124 - Aug 2024 (1 comment)

Binary Ninja – 4.0: Dorsai - https://news.ycombinator.com/item?id=39546731 - Feb 2024 (1 comment)

Binary Ninja 3.0: The Next Chapter - https://news.ycombinator.com/item?id=30109122 - Jan 2022 (1 comment)

Binary Ninja – A new kind of reversing platform - https://news.ycombinator.com/item?id=12240209 - Aug 2016 (56 comments)

reply
b8
1 month ago
[-]
Yep, it's cheaper than IDA and I like the UI better. Also I love that it's made by game hacking folks (my clique).
reply
SoraNoTenshi
1 month ago
[-]
I believe the Binja folk originate from the CTF folk.
reply
charcircuit
1 month ago
[-]
Wow, they made it free. The last time I used it I bought a $100 subscription for non commercial use.
reply
Thaxll
1 month ago
[-]
Not sure why you would use Binary Ninja free version, there are so many limitations, like IDA free the platform support is very low.
reply
dogma1138
1 month ago
[-]
BN is nice if someone is paying for it, but has too many limitations especially for the most common use case which is security.
reply
WalterGR
1 month ago
[-]
What are the limitations?
reply
dogma1138
1 month ago
[-]
No shellcode decoding, no plugin support and rather limited IR.
reply
alexrp
1 month ago
[-]
> No shellcode decoding

Can't speak to this as I don't RE for security purposes, but:

> no plugin support and rather limited IR.

this I'm profoundly confused by. BN has multiple IRs that are easily accessible both in the UI and to scripts. And it certainly has a plugin system too.

reply
dogma1138
1 month ago
[-]
Not in the free version
reply
saagarjha
1 month ago
[-]
Binary Ninja definitely has plugins?
reply
capl
1 month ago
[-]
Binary Ninja seems way ahead in terms of UX, as a hobby reverser. It's my default as well.
reply
zo1
1 month ago
[-]
It's basically "VS Code" UX with dark mode. Come on, is this some sort of joke? Serious question.
reply
psifertex
1 month ago
[-]
I'm curious what you would consider better UX?

We have actually been more inspired by Jetbrains lately than VS Code. Take that for what you will.

We do try to pick simple sane defaults while still allowing enough customization to adapt to different workflows.

Actually working on a startup wizard for first time users if they want to more closely replicate the feel of other RE tools since muscle memory is hard to break.

reply
EE84M3i
1 month ago
[-]
Last time I used them - Ghidra, and to some extent IDA, had UXes that were very difficult for new users to pick up and frequently deviate from standard expectations for modern desktop apps because they have two decades of baggage. In contrast binary ninja is very easy to explore and has many fewer surprises.
reply
xvilka
1 month ago
[-]
In particularly I like their approach of creating modern IR pipeline.
reply
ActorNightly
1 month ago
[-]
reply
saagarjha
1 month ago
[-]
This is not really related
reply
1vuio0pswjnm7
1 month ago
[-]
The Linux free trial version is a 400MB .zip file including a 255.2MB "binaryninja" shared binary

https://github.com/Vector35/binaryninja-api/releases/downloa...

reply
1vuio0pswjnm7
1 month ago
[-]
reply
beeflet
1 month ago
[-]
i've heard there is a way to get the source code for free
reply
mathisfun123
1 month ago
[-]
what's your point?
reply
n00bs
1 month ago
[-]
Also worth mentioning this great MCP integration https://github.com/cyberkaida/reverse-engineering-assistant
reply
palata
1 month ago
[-]
Taking the opportunity to ask: are there nice recommended resources for a beginner to start with reverse engineering (ideally using Ghidra)? Let's say for an experienced developer, but not so experienced in reverse engineering?

I guess one issue I have is that I don't have good ideas of fun projects, and that's probably something I need to actually get the motivation to learn. I can find a "hello world", that's easy, but it won't help me get an idea of what I could reverse engineer in my life.

For instance I have a smartspeaker that I would like to hack (being able to run my own software on it, for fun), but I don't know if it is a good candidate for reverse engineering... I guess I would first need to find a security flaw in order to access the OS? Or flash my own OS (hoping that it's a Linux running there), but then I would probably want to extract binary blobs that work with the buttons and the actual speaker?

reply
baby_souffle
1 month ago
[-]
> Taking the opportunity to ask: are there nice recommended resources for a beginner to start with reverse engineering (ideally using Ghidra)? Let's say for an experienced developer, but not so experienced in reverse engineering?

The good news is that there has never been MORE resources out there. If you want to use this learning expedition as an excuse to also build up a small electronics lab then $100 on ali express to buy whatever looks cheap and interesting and then tear it apart and start poking around to find where the firmware lives. Pull the firmware, examine it, modify it and put it back :)

This guy has a discord server with a specific "book club" section where they all choose a cheap $thing and reverse engineer it: https://www.youtube.com/@mattbrwn/about

I can't help much with "traditional" app/software RE work, sorry.

reply
palata
1 month ago
[-]
Oh, it feels like it may be what I want! Find some cheap electronic device and hack it!

Thanks a lot!

reply
baby_souffle
1 month ago
[-]
I would also suggest spending a few minutes to set up an mCP server with ghidra once you've learned the basics of navigating and working inside of ghidra.

Turns out that frontier grade llms are absolutely fantastic for extremely advanced static analysis. If you go one step further and manage to get your firmware running inside of an emulator or other place where you can attach GDB... Then putting an mCP server on that as well unlocks so much insane potential.

reply
throwerxyz
1 month ago
[-]
Would that include free use LLMs. I assume getting into something would be tricky if you are assuming they're going to drop several hundreds of tokens a month on it.

I feel like the tendency for people to assume others have nearly $500 or so of credits on their AI to blow every month is kinda crazy.

Reminds me of the "just get Netflix, Prime, etc." ending up with a $100/m bill.

reply
baby_souffle
1 month ago
[-]
> Would that include free use LLMs.

I can't comment on the self-hosted models but if they support tool calling / MCP then it should work. How well may be a function of model size/arch/quant ... etc though.

> I feel like the tendency for people to assume others have nearly $500 or so of credits on their AI to blow every month is kinda crazy.

My use is hobby level so $20/mo chatGPT sub is enough. I do hit my 5hr limits on a regular-ish interval but that's usually a sign that I need to step away from the work anyways.

reply
hxtk
1 month ago
[-]
The Nightmare Course [1], so named because someone with that skillset (developing zero-days) is a nightmare for security, not because the course itself is a nightmare, and Roppers Academy [2] are both good for learning how to reverse engineer software and look for vulnerabilities.

The nightmare course explicitly talks about how to use Ghidra.

1: https://guyinatuxedo.github.io 2: https://www.roppers.org

reply
decidu0us9034
1 month ago
[-]
The first is certainly interesting, but it won't help you develop 0day. I would think of it like more of a collection of fun puzzles and esoterica. For example all the heap unliking/metadata attacks and House of X stuff is pretty antiquated. These will help you win ctfs but are certainly not a prerequisite or even all that relevant to contemporary vuln research. Most of the public research I see is probably at least a year behind the current meta (and I expect the public internet will only grow more quiet over time)
reply
pertique
1 month ago
[-]
What resources would you recommend now? Even if they're a year behind the meta, it's a lot easier to start a year behind than 6+
reply
unleaded
1 month ago
[-]
Somewhat unconventional (and i'm not really a seasoned reverse engineer so take it with some salt) but I started by hacking old video games (nes, gameboy, arcade.. that kind of thing). You could start with making basic action replay RAM cheats to e.g. give Mario infinite lives, then you can use breakpoints, the debugger, and a 6502 ISA reference to edit instructions and make ROM patches.

from then you can use things like Ghidra (which supports a lot of those old CPU arches) for more advanced analysis and make the game do almost whatever the hell you want if you have the patience.

I think a lot of the skills will transfer quite well (obviously not 1:1, you will need to learn some things) to the more employable side of RE if that's what you're interested in

reply
palata
1 month ago
[-]
Thanks! I have been "hacking" with games in the past (getting infinite lives and such) or bypassing some licence check (back then it was with OllyDbg).

I guess I'm struggling to transfer that to "real-life" scenarios. Like getting something useful out of reverse engineering (getting infinite lives is interesting to see that I can tamper with the game, but it's not exactly useful).

reply
stevekemp
1 month ago
[-]
Honestly unless you're working in low-level fields, such as embedded hardware, or optimized code generation, those are real-life scenarios!

(Thinking more of license-checking, and serial-number generation rather than infinite lives.)

reply
umanghere
1 month ago
[-]
I started reverse engineering at 13 with an IDA Pro of questionable provenance - at that time, I found it quite difficult.

One thing which really helped me (and I wholeheartedly recommend) is to write simple programs, run them through the compiler and then in the disassembler. It really helps build a correspondence between program structure and its object code.

Eventually, you can make it even more fun and challenging by stripping debug symbols and turning on compiler optimisations.

Happy reversing!

reply
0x54MUR41
1 month ago
[-]
If you are into the book, I would recommend The Ghidra Book from No Starch publisher https://nostarch.com/ghidra-book-2e.

The book is designed for beginner and advance users.

reply
bpye
1 month ago
[-]
Finding something with symbols will help a lot. Symbols end up getting left in Linux and macOS builds fairly often.

The reverse engineering I've learned has generally been to fix something that has annoyed me - for example I reverse engineered part of RCT3 to fix mouse input with high poll rates and allow for resizable windows [0]. Certainly easier to approach than trying to get into a closed device since you can attach a debugger.

[0] - https://mastodon.social/@benpye/109261545643008493

reply
ramuel
1 month ago
[-]
https://pwn.college has really good modules/dojos that cover a bunch of reverse engineering concepts.
reply
saidinesh5
1 month ago
[-]
See if there is an OTA package available for your speaker that you can extract and figure out what goes where.

Then figure out what SoC your smart speaker is running.

A lot of soc vendors just provide SDKs for IoT applications. Maybe you'll find something like that you can flash.

Also if there's a separate SPI flash chip, you can simply dump it and study the firmware.

reply
gray_charger
1 month ago
[-]
You can start here to learn reverse engineering.

https://beginners.re/

reply
quux0r
1 month ago
[-]
So a couple things. Bruce Dang’s book, while a little old, is still a great spot to get started. Another great book is Blue Fox by Maria Markstedter for ARM. From there, finding small binaries and just trying to get the “flow” is a good next step, for me this is largely renaming functions and variables and essentially trying to work the decompiled code into something readable, then you can find flaws.

So for the second thing, pulling the data off chips like that typically involves some specialized hardware, and you have to potentially deal with a bunch of cryptographic safeguards to read from the chip’s memory. Not impossible though, and there are not always good safeguards, but might be worth checking out some simpler programs and working up to it, or learning some basic hardware hacking to get an idea of how that process works.

reply
palata
1 month ago
[-]
Interesting! Yeah maybe my first step is on the hardware side, which I guess is what is blocking me right now.
reply
brynnbee
1 month ago
[-]
I personally learn best by doing which is why I love learning with LLMs. They're going to be wrong a lot, and give bad advice, and do things in silly ways. I learn well from the process of working with them, seeing them fail constantly, then learn the tool yourself by researching what it's doing wrong to fix it. I just attempted to use Ghidra to reverse engineer the game Shenmue from Dreamcast. I was previously unfamiliar with Ghidra and I mostly did it as a learning exercise, but it wasn't really the right tool for the job. However the project itself made lots of progress without it:

https://www.newyokosuka.com/

reply
giancarlostoro
1 month ago
[-]
Find an old piece of software you care about that is broken somehow, and abandoned. Most of my friends use these types of tools to reverse engineer abandoned MMOs and remake servers for them.
reply
boltzmann-brain
1 month ago
[-]
That's very deep water to dive into. I suggest something simpler, like an ancient irc client that asks you to sign up, or an archive extractor.
reply
giancarlostoro
1 month ago
[-]
Well I didnt mean dive into an MMO right away, but yes I recommend smaller programs.
reply
wrboyce
1 month ago
[-]
Allow me to shamelessly plug my blog, I have been (very slowly!) re-visiting microcorruption and writing up the solutions in a tutorial-esque fashion.

https://lovesexsecretgod.com

reply
saagarjha
1 month ago
[-]
Can I ask why the name
reply
iv42
1 month ago
[-]
reply
millzlane
1 month ago
[-]
Nice.
reply
commandersaki
1 month ago
[-]
Go through the katas at https://pwn.college
reply
user3939382
1 month ago
[-]
I miss the analog of this community from the 90s. We had actual principles and ethos and wouldn’t have been caught dead upvoting and using software from the frickin NSA. Not that it’s any surprise here. Contemporary San Francisco driven software culture which is the majority represented on this forum have no qualms with FAANG ethics, open source is not really important either.

Oh I’m sorry the NSA didn’t spy on the whole country “wittingly” according to our leaders, carry on and use their software no ethical conflict here.

reply
zmgsabst
1 month ago
[-]
Having been in Seattle, I’m not sure there was a time the NSA wasn’t involved with technology — eg, UW hosted meetups between researchers, criminals, and the government at least that long.

Who built the Echelon follow-up, proto-dragnet system that provided the framework for the spying you bemoan? — the one extended and taken live in the early 2000s? Those same 90s hackers you glorify.

reply
user3939382
1 month ago
[-]
> provided the framework for the spying you bemoan

The community I’m talking about definitely weren’t like secretly building tools for these agencies. I mean this sincerely I have no idea what point you’re making. The agencies existed and made tech so by logical necessity people worked there. I didn’t say all people in computing.

There was a prevalent community of programmers and hackers who understood what these organizations represented and would never be on a forum blithely talking about some tool they made as if it was acceptable. Shame on anyone using these tools and the lack of objection to this post is a metric of how disgusting computing culture and really this forum are.

reply
zmgsabst
1 month ago
[-]
> The community I’m talking about definitely weren’t like secretly building tools for these agencies. I mean this sincerely I have no idea what point you’re making.

You knew exactly what point I’m making, because it’s the first thing you responded to. And indeed, what you responsed to throughout your question. So no, you’re not being sincere.

Those groups always interacted and your bald assertion of their morality is directly contradicted by my experience of their interactions (eg, criminals and government corresponding at UW) and the change in Boomer and Gen X hackers following 9/11.

> There was a prevalent community of programmers and hackers who understood what these organizations represented and would never be on a forum blithely talking about some tool they made as if it was acceptable.

From their computers that originated in a US Navy lab?

Again, my experience from Seattle is that the idealism was always more show than reality — and government technologies were not only consumed, but built on contract when interests aligned (eg, stopping cyber warfare or dismantling terrorist networks).

What you’re describing — ineffective moral absolutism — wasn’t what I recall from the 90s hacker ethos that always existed in a liminal zone, but rather the 2010s era co-opting of existing groups (eg, Anyonymous) for moral crusading.

reply
user3939382
1 month ago
[-]
> From their computers that originated in a US Navy lab?

This is a logical non sequitur. It’s like being fed your lunch by your kidnapper and when you protest they say, you’re using the energy I provided to protest. Like that’s a contradiction somehow, it’s not.

Whatever the participation in the past may have been does nothing to excuse or make okay future behavior.

And to the extent I did understand your point, I was confused because it was such a strawman. As I explained I wasn’t talking about every person in computing (of course). Interacted doesn’t mean they were the same or had no moral distinction.

> ineffective moral absolutism

I don’t even know where to start with how flawed your thinking is. Effectiveness isn’t the driver for having morals. And obviously it was effective because I’m here protesting. Neither is it absolutism. Objecting to the gross abuse of our government doesn’t equate with absolutism.

Computers should serve their owners not corporate interests and dragnet surveillance. That was understood. 2010s Anonymous was a different thing in a different context that I wasn’t contemplating.

reply
dirasieb
1 month ago
[-]
do please share your "ethical" software stack that doesn't include contributions from "unethical" sources involved in spying, wars, human rights violations, etc

what sort of device did you type this comment from?

reply
user3939382
1 month ago
[-]
I was waiting for this comment. So because the whole industry is corrupt, two wrongs make a right and we should champion the NSA and both use and discuss their software as if it’s totally normal and they’re just a fine organization. Have I got that right?
reply
dirasieb
1 month ago
[-]
so you browbeat people when they use “evil” software when you also do it? got it
reply
user3939382
1 month ago
[-]
I don’t also pretend that it’s ok to use software from shit organizations that are a cancer on our civilization, no. Even if I did, two wrongs don’t make a right, and nothing I personally say or do or not, does anything to absolve the NSA.

However you slice it you have no argument here. Being held hostage by corporate interests in computing doesn’t make it okay to hold hands with one of the worst organizations on Earth.

By your twisted logic, because it’s practically impossible to avoid proprietary firmware owned by corporations, we should completely acquiesce to all forms of digital abuse by the government and actually should participate in their computing programs. Listen to yourself.

You’d be telling people who lived under an evil dictatorship to shut up because they walk the roads the govt provides.

reply
dirasieb
1 month ago
[-]
you're the one trying to shame people about using software you don't like by setting an impossible standard, how can you get upset when someone does it back to you and points out you don't fit it either? could you be any denser?
reply
xvilka
1 month ago
[-]
reply
aktau
1 month ago
[-]
+1

I once tried learning how to RE with radare2 but got very frustrated by frequent project file corruption (meaning radare2 could no longer open it). The way these project files work(ed?) in radare2 at the time was that it just saved all the commands you executed, instead of the state. This was brittle, in my experience.

I don't have a lot of free time, so I have to leave projects for long periods of time, not being able to restart from a previous checkpoints meant I never actually got further.

IIUC, one of the first things Rizin did was focus on saving the actual state, and backwards/forwards-compatibility. This fact alone made me switch to Rizin. To its credit, my 3-year old project file still works!

Now for the downside: there is apparently a gap in Windows (32-bit) PE support, causing stack variables to be poorly discovered: https://github.com/rizinorg/rizin/issues/4608. I tested this on radare2, which does not have this bug. I'm hoping this gets fixed in Rizin at some point, at which point I'll continue my RE adventure. Or maybe I should give an AI reverse engineer a try... (https://news.ycombinator.com/item?id=46846101).

reply
xvilka
1 month ago
[-]
Yes, we are working on rewriting analysis completely[1][2] that would fix your issue along with many others.

[1] https://github.com/rizinorg/rizin/pull/5505

[2] https://github.com/rizinorg/rizin/issues/4736

reply
aktau
1 month ago
[-]
Can't wait! Do you have any idea how far along this is? Is it likely to be months, quarters, years?

(Funny expression, that. I'll wait, of course. It'll be a happy day when this works again and I can slowly make progress RE'ing again.)

reply
xvilka
1 month ago
[-]
Months.
reply
alberto-m
1 month ago
[-]
I tried radare2 with the official GUI Iaito. Iaito saves the project in a git repo, so whenever I got corruption (and I got it a lot, like every 4-5 saves) I was just a `git reset --hard` away from restoring a good state. Not the most efficient way of operation, but for me it was better this than tolerating Ghidra's tiny Courier New font.
reply
aktau
1 month ago
[-]
Thanks for the note.

Your corruption frequency anecdote matches mine. I don't have the mental werewithal to deal with that. I won't go back to radare2 until they change their project file stability somehow.

reply
boricj
1 month ago
[-]
Might as well plug in my own extension: https://github.com/boricj/ghidra-delinker-extension

It's a relocatable object file exporter that supports x86/MIPS and ELF/COFF. In other words, it can delink any program selection and you can reuse the bits for various use-cases, including making new programs Mad Max-style.

It carved itself a niche in the Windows decompilation community, used alongside objdiff or decomp.me.

reply
montymintypie
1 month ago
[-]
Easily one of the coolest RE projects out there, I've always looked on in awe.

> The relocation table synthesizer analyzer relies on a fully populated Ghidra database (with correctly declared symbols, data types and references) in order to work

It's a shame that this requirement exists (I am well aware that it's a functional necessity), because all the stuff I want to relink is far too big to make a full db!

reply
boricj
1 month ago
[-]
You only need a full DB if you want to fully delink your artifact. You can just clean up the subset you're interested in exporting (the fully populated disclaimer is just there because there's a lot you can get away with, as long as you know precisely what you are doing).

Even then, a full DB is quite achievable, even on large projects. The biggest public project using ghidra-delinker-extension out there is the FUEL decompilation: https://github.com/widberg/FUELDecompilation

The executable is 7 MiB, has over 30,000 functions and has more than 250,000 relocations spots. The user made the game relocatable in six weeks (with four of them debugging issues with my extension). They then managed to replace code in spite of the fact that the artifact was built with LTO by binary patching __usercall into MSVC.

There's a write-up about all of that that is well worth a read: https://github.com/widberg/fmtk/wiki/Decompilation

I've also had one user manage to fully delink the original Halo on the Xbox in one week. To be fair, they were completely nerd-sniped and worked non-stop on it, but it still counts.

reply
montymintypie
1 month ago
[-]
Whoah, that is super impressive. My target binary is 9MiB, seemingly only 10k relocations IIRC but 37k functions.

I might try a partial delink and see how it goes!

reply
evmar
1 month ago
[-]
Where can I learn more about the Windows decompilation community? (This is an area I kind of work in, and I am interested in participating!)
reply
boricj
1 month ago
[-]
Most of my known userbase hangs out in the decomp.me Discord server. Each project also tends to have its own dedicated Discord server.

The Windows decompilation community is far more fragmented than the console one, as it hasn't coalesced around a common set of tools like splat or decomp-toolkit.

reply
WalterGR
1 month ago
[-]
What is Mad Max-style?
reply
barfiure
1 month ago
[-]
I imagine PIE chunks that you can kludge into other programs to Frankenstein implementations? Kind of like how mad max cars are made of bits and pieces bolted together
reply
boricj
1 month ago
[-]
Indeed, you can kludge anything together into working chimeras, as long as you can mend the ABIs together.

I've done a case study where I've ported a Linux a.out program into a native Windows PE program without source code: https://boricj.net/atari-jaguar-sdk/2023/11/27/introduction....

Another case study was ripping the archive code from a PlayStation game and stuffing it into a Linux MIPS program to create an asset extractor: https://boricj.net/tenchu1/2024/03/18/part-6.html

reply
p0w3n3d
1 month ago
[-]
You sir are a true wizard!
reply
yibers
1 month ago
[-]
Can anyone provide their opinion of Ghidra vs Ida? Is Ida worth the extra money?
reply
userbinator
1 month ago
[-]
One huge difference is that IDA is much faster and less resource-intensive than Ghidra, on account of the latter being written in Java (not surprisingly) while the former is native code. The Ghidra UI is noticeably laggy to perform basic operations even with tiny binaries, while I haven't noticed anything like that in IDA.
reply
bri3d
1 month ago
[-]
For UI based manual reversing of things that run on an OS, IDA is quite superior; it has really good pattern matching and is optimized on this use case, so combined with the more ergonomic UI, it’s way way faster than Ghidra and is well worth the money (provided you are making money off of RE). The IDA debugger is also very fast and easy to use compared to Ghidra’s provided your target works (again, anything that runs on an OS is probably golden here).

For embedded IDA is very ergonomic still, but since it’s not abstract in the way Ghidra is, the decompiler only works on select platforms.

Ghidra’s architecture lends itself to really powerful automation tricks since you can basically step through the program from your plugin without having an actual debug target, no matter the architecture. With the rise of LLMs, this is a big edge for Ghidra as it’s more flexible and easier to hook into to build tools.

The overall Ghidra plugin programming story has been catching up; it’s always been more modular than IDA but in the past it was too Java oriented to be fun for most people, but the Python bindings are a lot better now. IDA scripting has been quite good for a long time so there’s a good corpus of plugins out there too.

reply
q3k
1 month ago
[-]
IDA is the better tool if you're being paid to work with architectures that IDA supports well (ARM(64), x86(_64), etc). This usually means 'mainstream' security/malware research. It's not worth the price for hobbyists. Before Hex-Rays was sold to private equity, it could make sense for rich hobbyists to pay for a private license once and use it for a few years without software updates, with the cloud offering now it pretty much makes no sense.

Ghidra is the better tool if you're dealing with exotic architectures, even ones that you need to implement support for yourself. That's because any architecture that you have a full SLEIGH definition for will get decompilation output for free. It might not be the best decompiler out there, sure, but for some architectures it's the only decompiler available.

Both are generally shit UX wise and take time to learn. I've mostly switched from IDA to Ghidra a while back which felt like pulling teeth. Now when I sometimes go back to IDA it feels like pulling teeth.

reply
19h
1 month ago
[-]
Which exotic architectures is IDA missing from your perspective?
reply
q3k
1 month ago
[-]
Stuff I've recently analyzed that IDA has no decomp support for (and Ghidra's is anywhere from good enough to actually good):

  - AVR
  - Z80
  - HC08
  - 8051
  - Tricore
  - Xtensa
  - WebAssembly
  - Apple/Samsung S5L87xx NAND controller command sequencer VLIW (custom SLEIGH)
And probably more that I've forgotten.

It's also not about lack of support, but the fact that you have to pay extra for every single decompiler. This sucks if you're analyzing a wide variety of targets because of the kind of work you do.

IDA also struggles with disasm for Harvard architectures which tend to make up a bulk of what I analyze - it's all faked around synthetic relocations. Ghidra has native support for multiple address spaces.

reply
xvilka
1 month ago
[-]
Binary Ninja supports some of them as well, highly recommend.
reply
q3k
1 month ago
[-]
I really want to like Binary Ninja, but whenever I have the choice between not paying (Ghidra), paying for something that I know works (IDA) and paying for something that I don't know if it works (Binja) then the last option has always lost so far.

Maybe we need to get some good cracked^Wcommunity releases of Binja so that we can all test it as thoroughly as IDA. The limited free version doesn't cut it unfortunately - if I can't test it on what I actually want to use it for, it's not a good test.

(also it doesn't have collaborative analysis in anything but the 'call us' enterprise plan)

reply
burnt-resistor
1 month ago
[-]
Fuck private equity, e.g., rich vampiric assholes ruining everything.
reply
flipped
1 month ago
[-]
Almost every hobbyist reverse engineer uses cracked IDA which is easily available. I have never seen ghidra being recommended for serious work.
reply
IAmLiterallyAB
1 month ago
[-]
And everyone uses Ghidra exclusively where I work. I'd say we're a serious operation
reply
lima
1 month ago
[-]
This is changing, Ghidra is increasingly replacing IDA for commercial work.
reply
userbinator
1 month ago
[-]
Cracking IDA yourself was, and maybe still is, a "rite of passage" in certain communities.
reply
q3k
1 month ago
[-]
I recommend it for serious work. Well, serious enough that I got paid for doing it, and/or given talks about it.

(not if you're only doing x86/ARM stuff, though)

reply
bri3d
1 month ago
[-]
Agree. IDA is surely the “primary” tool for anything that runs on an OS on a common arch, but once you get into embedded Ghidra is heavily used for serious work and once you get to heavily automation based scenarios or obscure microarchitectures it’s the best solution and certainly a “serious” product used by “real” REs.
reply
jki275
1 month ago
[-]
The NSA doesn't do serious work?
reply
ARandomerDude
1 month ago
[-]
That wasn't the claim. Ability + interest + time + budget + ... are what makes a serious tool.
reply
apple1417
1 month ago
[-]
Leading this by saying I've only used Ida free, I can't comment on Ida pro. I'm also a very lite user of both, I give name functions/vars, save bookmarks, and occasionally work out custom types, and that's about it, none of the real fancy stuff.

I was recently trying to analyse a 600mb exe (denuvo/similar). I wasted a week after ghidra crashed 30h+ in multiple times. A seperate project with a 300mb exe took about 5h, so there's some horrible scaling going on. So I tried out Ida for the first time, and it finished in less than an hour. Faced with having decomp vs not, I started learning how to use it.

So first difference, given the above, Ida is far far better at interrupting tasks/crash recovery. Every time ghidra crashed I was left with nothing, when Ida crashes you get a prompt to recover from autosave. Even if you don't crash, in general it feels like Ida will let you interrupt a task and still get partial results which you might even be able to pick back up from later, while ghidra just leaves you with nothing.

In terms of pure decomp quality, I don't really think either wins, decomp is always awkward, it's awkward in different ways for each. I prefer ghidra's, but that might just be because I've used it much longer. Ida does do better at suggesting function/variable names - if a variable is passed to a bunch of functions taking a GameManager*, it might automatically call it game_manager.

When defining types, I far prefer ida's approach of just letting me write C/C++. Ghidra's struct editor is awkward, and I've never worked out a good way of dealing with inheritance. For defining functions/args on the other hand, while Ida gives you a raw text box it just doesn't let you change some things? There I prefer the way ghidra does it, I especially like it showing what registers each arg is assigned to.

Another big difference I've noticed between the two is ghidra seems to operate on more of a push model, while Ida is more of a pull model - i.e. when you make a change, ghidra tends to hang for a second propagating it to everything referencing it, while Ida tries pulling the latest version when you look at the reference? I have no idea if this is how they actually work internally, it's just what it feels like. Ida's pull model is a lot more responsive on a large exe, however multiple times I've had some decomp not update after editing one of the functions it called.

Overall, I find Ida's probably slightly better. I'm not about to pay for Ida pro though, and I'm really uneasy about how it uploads all my executables to do decomp. While at the same time, ghidra is proper FOSS, and gives comparable results (for small executables). So I'll probably stick with ghidra where I can.

reply
q3k
1 month ago
[-]
> I was recently trying to analyse a 600mb exe (denuvo/similar). I wasted a week after ghidra crashed 30h+ in multiple times.

During the startup auto analysis? For large binaries it makes sense to dial back the number of analysis passes and only trigger them if you really need them, manually, one by one. You also get to save in between different passes.

reply
apple1417
1 month ago
[-]
Yup. It was actually an openjdk crash, which was extra interesting.

I figured I probably could remove some passes, but being a lite user I don't really know/didn't want to spend the time learning how important each one is and how long they take. Ida's defaults were just better.

reply
ErroneousBosh
1 month ago
[-]
I guarantee that a million eyes have been all over this looking for the Super Sekrit Government Backdoors, too.

If it was mine, I'd stick in a heavily-obfuscated bit of code for people to use Ghidra to reverse-engineer Ghidra to find out what it did.

OMG, it's a keylogger! But it's not activated by default! How does it get activated? How does it emit its logs?

And after weeks of poking they find you run it with "$ ACTIVATE_KEYLOGGER=true ghidra", and it saves to "$HOME/Desktop/ghidra_key_log.txt"

Haha, psych!

reply
mturk
1 month ago
[-]
Ghidra is a very impressive piece of software with a deep bench of functionality. The recent couple major releases that move to a more integrated Python experience have been very nice to use.
reply
zeon256
1 month ago
[-]
Been awhile since I used this but decided to open the latest version to check my rust binary and was pleasantly surprised how much better it is today wrt rust binaries
reply
flipped
1 month ago
[-]
Can you be more specific? Is it getting easier to reverse rust and go, since I have read about it being the hardest to reverse.
reply
quux0r
1 month ago
[-]
It's not perfect, but in my personal experience it is still tough in languages like that due to the sheer volume of indirection and noise that makes it hard to follow. For example Go's calling convention is a little nutty compared to other languages, and you'll encounter a few *****ppppppppVar values that are otherworldly to make sense of, but the ability to recognize library functions and sys calls is for sure better.
reply
29athrowaway
1 month ago
[-]
reply
Supermancho
1 month ago
[-]
I first used Ghidra this weekend as part of this series:

https://www.youtube.com/watch?v=d7qVlf81fKA&list=PL4X0K6ZbXh...

(#3 forward uses Ghidra)

It worked fine in Ubuntu and Windows. The interface takes some getting used to, but paired with Bless Unofficial (using snap to install), it makes reverse engineering smooth.

reply
bradhe
1 month ago
[-]
I've actually been experimenting with using Ghidra and Opus to create human-consumable, reverse-engineered software. My ultimate dream would be a buildable EverQuest client. Opus does a decent job of pulling out various subsystems and understanding how it works. I was able to get a pretty much working networking layer for instance with less than an hour's work.
reply
givemeethekeys
1 month ago
[-]
How do they incentivize government employees into doing such excellent work without paying them a real tech salary?
reply
neodymiumphish
1 month ago
[-]
Use military members.

I was a special agent with an org involved in similar work. They put me through 7 SANS courses, including paying for 5 certs, in 18 months.

reply
bri3d
1 month ago
[-]
They are contractors. The public face of Ghidra works at Praxis, for example.
reply
mandeepj
1 month ago
[-]
$160k-$170k is not a bad salary; in some cases they get $250k, but sure, it's not a FAANG type.
reply
vdqtp3
1 month ago
[-]
Most folks in government service are making significantly less than that. That's midrange GS-15 pay.
reply
commandersaki
1 month ago
[-]
I wouldn't say a program in Java Swing / AWT would count as excellent.
reply
wat10000
1 month ago
[-]
Great benefits and job security, and a belief in the mission.
reply
wewtyflakes
1 month ago
[-]
The job security perk was recently defenestrated.
reply
wat10000
1 month ago
[-]
Hopefully seen as an aberration. Otherwise we may see the excellent work go out the window along with it.
reply
commandersaki
1 month ago
[-]
Awful to use with a tiling window manager.
reply
jakozaur
1 month ago
[-]
Funny thing, AI is not that terrible at using Ghidra. We released a benchmark on that and hopefully models will improve: https://quesma.com/blog/introducing-binaryaudit/
reply
Alifatisk
1 month ago
[-]
There is MCPs for Ghidra
reply
joe_mamba
1 month ago
[-]
Yeah this. I saw some guys on youtube use AI MCPs to do some crazy reverse engineering.

It's difficult to be an AI doomer when you see stuff like this.

reply
le-mark
1 month ago
[-]
“AI Doomer” is ambiguous here! Do you mean someone who optimistic about ai will never amount to anything, or that ai won’t be the end of humanity?
reply
thenaturalist
1 month ago
[-]
Would you have a link / links or hints about the channel?
reply
atemerev
1 month ago
[-]
I always wondered whether they have a much more capable internal version. And I wonder the same thing for AI labs (they have to do a lot of lobotomy for their models to be ready for public use... but internally, they can just skip this perhaps?)
reply
bjackman
1 month ago
[-]
Very likely people who actually work on RE at the NSA also have access to IDA Pro licenses. I don't work in this space, so take it with a pinch of salt, but my understanding is this is a fairly long term strategic initiative to _eventually_ be the best tool.
reply
bri3d
1 month ago
[-]
It’s better in some dimensions and not others, and it’s built on a fundamentally different architecture, so of course they use both.

Ghidra excels because it is extremely abstract, so new processors can be added at will and automatically have a decompiler, control flow tracing, mostly working assembler, and emulation.

IDA excels because it has been developed for a gazillion years against patterns found in common binaries and has an extremely fast, ergonomic UI and an awesome debugger.

For UI driven reversing against anything that runs on an OS I generally prefer IDA, for anything below that I’m 50/50 on Ghidra, and for anything where IDA doesn’t have a decompiler, Ghidra wins by default.

For plugin development or automated reversing (even pre LLMs, stuff like pattern matching scripts or little evaluators) Ghidra offers a ton of power since you can basically execute the underlying program using PCode, but the APIs are clunky and until recently you really needed to be using Java.

reply
19h
1 month ago
[-]
Ghidra has a slightly different focus than IDA, so they're definitely not just using Ghidra :-)
reply
sergent_moon
1 month ago
[-]
I have only a very basic understanding of the two tools. Can you give me just some highlights regarding their differences?
reply
19h
1 month ago
[-]
Well, Ghidra's strength is batch processing at scale (which is why P-Code is less accurate than IDA's but still good enough) while allowing a massive amount of modules to execute. That allows huge distributed fleets of Ghidra. IDA has idalib now, and hcli will soon allow batch fleets, but IDA's focus is very much highly accurate analysis (for now), which makes it a lot less scalable performance wise (for now).
reply
hn92726819
1 month ago
[-]
I doubt it. Ghidra is extremely extensible with their plugin/tool architecture. Public Ghidra includes the extremely helpful decompiler tool, and a few others, but I'm willing to bet that NSA uses regular Ghidra + some way more capable plugins instead of having another Ghidra.
reply
HelloNurse
1 month ago
[-]
Powerful, "capable" plugins are obvious; NSA cannot stop people from writing them, and they have little reason to restrict their use.

I think what NSA is likely to keep confidential are in-house plugins that are so specialized and/or underengineered that their publication would give away confidential information: stolen and illegitimate secrets (e.g. cryptographic private keys from a game console SDK), or exploits that they intend to deny knowledge of and continue milking, or general strategies and methods (e.g. a tool to "customize" UEFI images, with the implication that they have means to install them on a victim's computer).

reply
jacquesm
1 month ago
[-]
Too many people in the know about this stuff I think to keep it hidden for that long. At the same time, we keep finding stuff that that should have held for and it didn't, so maybe you're right.
reply
cactusplant7374
1 month ago
[-]
The gains come from pairing Ghidra with a coding agent. It works amazing well.
reply
Mattwmaster58
1 month ago
[-]
I'll second this. I used opencode + opus 4.6 + ghidra to reverse engineer a seedkey generation algorithm[1] from v850 assembly. I gave it the binary, the known address for the generation function, and a set of known inputs/outputs, and it was able to crack it.

[1] https://github.com/Mattwmaster58/ic204

reply
bibelo
1 month ago
[-]
would you have a tutorial on that?
reply
cactusplant7374
1 month ago
[-]
Sorry, I don't. Giving the agent high level context has worked well for me.
reply
mdavid626
1 month ago
[-]
Works well. I used this tool once to disassemble and understand how key manager works on Vivotek cameras.

They create executables, which contain encrypted binary data. Then, when the executable runs, it decodes the encrypted data and pipes it into "sh".

The security is delusional here - the password is hard coded in the executable. It was something like "VIVOTEK Inc.".

Ghidra was able to create the C code and I was able to extract also the binary data to a file (which is essentially the bash script).

reply
mickeyp
1 month ago
[-]
Sounds like `strings' on the binary would've sufficed if it's just hardcoded.
reply
mdavid626
1 month ago
[-]
No, that’s not enough.

The password would be visible, but the encyption algorithm and the script’s text wouldn’t.

reply
dang
1 month ago
[-]
Here are the main threads (in reverse order) that I found about Ghidra generally. Of course there have been many more threads about specific aspects or related projects: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que....

(Btw, these links are just for anyone curious to read more - reposts are fine after a year or so - https://news.ycombinator.com/newsfaq.html)

NSA Ghidra open-source reverse engineering framework - https://news.ycombinator.com/item?id=40508777 - May 2024 (61 comments)

Ghidra 11.0 Released - https://news.ycombinator.com/item?id=38740793 - Dec 2023 (11 comments)

Ghidra 10.3 has been released - https://news.ycombinator.com/item?id=35908418 - May 2023 (6 comments)

NSA Ghidra software reverse engineering framework - https://news.ycombinator.com/item?id=35324380 - March 2023 (103 comments)

Ghidra: Software reverse engineering suite developed by NSA - https://news.ycombinator.com/item?id=33226050 - Oct 2022 (42 comments)

Ghidra: A software reverse engineering suite of tools developed by the NSA - https://news.ycombinator.com/item?id=27818492 - July 2021 (142 comments)

Ghidra 9.2 - https://news.ycombinator.com/item?id=25086519 - Nov 2020 (78 comments)

The Ghidra Book - https://news.ycombinator.com/item?id=24879314 - Oct 2020 (5 comments)

Ghidra Decompiler Analysis Engine - https://news.ycombinator.com/item?id=19599314 - April 2019 (30 comments)

Ghidra source code officially released - https://news.ycombinator.com/item?id=19572994 - April 2019 (7 comments)

Ghidra Capabilities – Get Your Free NSA Reverse Engineering Tool [pdf] - https://news.ycombinator.com/item?id=19319385 - March 2019 (17 comments)

Ghidra, NSA's reverse-engineering tool - https://news.ycombinator.com/item?id=19315273 - March 2019 (405 comments)

Ghidra - https://news.ycombinator.com/item?id=19239727 - Feb 2019 (59 comments)

NSA to Release Their Reverse Engineering Framework GHIDRA to Public at RSA - https://news.ycombinator.com/item?id=18828083 - Jan 2019 (90 comments)

reply
alex7o
1 month ago
[-]
I want to say if somebody makes a tool like that it would be a big winner https://qira.me/
reply
Alifatisk
1 month ago
[-]
There is also Hopper for ObjC/Swift, haven't tried it personally though

https://www.hopperapp.com

reply
saagarjha
1 month ago
[-]
Hopper is pretty but worse than Ghidra for both
reply
lacoolj
1 month ago
[-]
Posting this on Github is a brilliant move by the NSA, and it showing up on HN amplifies it even more.

It's certainly not the first thing they've released (selinux, for one, and then all the other repos in the account), but this repo showing up on HN, with a prominent call-to-action to look at a career with them, is a great way to target the applicants you want ("those who would find this project interesting, because it's just the sort of thing we need them to work on")

Atlassian used to do (maybe still does) this in bitbucket if you open dev tools - a link to their careers page shows up

reply
brcmthrowaway
1 month ago
[-]
I'm using a tool on Parallels on Mac that says "cannot run in virtual machine". Could I remove that check using Ghidra?
reply
saagarjha
1 month ago
[-]
Yes, if you know what you’re looking for.
reply
brcmthrowaway
1 month ago
[-]
What am I looking for?
reply
saagarjha
1 month ago
[-]
Probably the string that it’s showing
reply
bawana
1 month ago
[-]
Do you think they use these tools in China or somethiing elsee?
reply
systems
1 month ago
[-]
is ghidralite dot com a safe link or an official link

when i try to expand their faq, it seem to try an open a (presumabl) malicious link , i wont paste the link here just in case it is really malicious

reply
staubfinger
1 month ago
[-]
Just use the official github link or links that are linked there. The URL you mentioned seems bogus at best.
reply
waltbosz
1 month ago
[-]
Curious, the ghidralite page download button links to the NSA's github releases page.

I wonder what is the purpose of ghidralite dot com. SEO spam? Are they building trust and then will swap out the Download button with a poisoned binary.

reply
h4ch1
1 month ago
[-]
Or climb up high enough in the search results and sell the domain to a malicious actor.
reply
dizzy9
1 month ago
[-]
Looks like AI slop and SEO junk. The Guide page you linked opens with an article on Dubai sports car rental. There are also .net and .org variants of the domain, which appear to be also AI-generated slop. There's no such program as Ghidralite, and every site just links to the official Ghidra repository.
reply
kugutsumen
1 month ago
[-]
reply
tears-in-rain
1 month ago
[-]
opus 4.6 can use that from cli, and do RE, make pseudo C, and later decode binaries based on this code into interpretable data.

amazing tool

reply
dakolli
1 month ago
[-]
Everyone in the comments is like, "take a look at this AI tool for Ghirda"

This is indicative of two things.

1. While I can't stand the guy, ya'll need to watch Peter Thiel's talk from 10-15 years ago at Stanford about not building the same thing everyone else is, a la, the obvious thing.

2. People are really attracted to using LLMs on deep thinking tasks, off shoring their thinking, to a "Think for me SaaS". This won't end well for you, there's no shortcuts in life that don't come with a (huge) cost.

The person who showed their work and scored A's on math tests instead of just learning how to use a calculator, is better off in their career/endevours than the 80% of others who did the latter. If Laurie Wired makes an MCP for Ghirda and uses it that's one thing, you using it without ever reverse engineering extensively is completely different. I'd bet my bottom dollar that Laurie Wired doesn't prefer the MCP over her own mental processes 8/10 times.

reply
lauriewired
1 month ago
[-]
This is correct. The majority of cases I have to rely on my own expertise.

It's useful for the automation of small repetitive tasks here and there. I was never expecting it to gain the traction that it did; anyone saying they expect it to replace reverse engineers (it won't) is wildly misunderstanding the original intent.

Quite trivial to create binaries that massively confuse LLMs!

reply
petterroea
1 month ago
[-]
I bet red herrings are effective
reply
butvacuum
1 month ago
[-]
I wonder if renaming variables to all reference a single movie or book (go through the exe and rename each new variable to the next word or letter in Monty Python's Holy Grail) would do anything.
reply
decidu0us9034
1 month ago
[-]
I was wondering why so many people were suddenly hopping into my humble profession and declaring me redundant. Ah, a youtube influencer is at the center of it. Makes sense.
reply
carlcortright
1 month ago
[-]
lol
reply
sneak
1 month ago
[-]
> People are really attracted to using LLMs on deep thinking tasks, off shoring their thinking, to a "Think for me SaaS". This won't end well for you, there's no shortcuts in life that don't come with a (huge) cost.

I, too, watched The Sorcerer’s Apprentice. The problem is that I, too, shipped a fuckton of working, reviewed, reworked, tests-and-lint-passing, properly-typed code implementing brand new features from scratch in the last 48 hours, that would have taken me 48 days a year ago.

“thinking” means a lot of different things, and you can indeed outsource a lot of it to other things that can think at different levels of ability than you. This is effectively what an engineering organization does.

Perhaps I haven’t fully offshored my thinking in the sense you mean in that I review all the code and give feedback on the PRs—I still steer. But I think the SOTA will continue to improve until we can indeed oneshot larger and larger tasks.

reply
dakolli
1 month ago
[-]
I actually have zero clue what Sorcerer's apprentice is, or what you're getting at. I never said that it isn't useful for dumb tedious tasks that don't require much thought.

I was talking about critical tasks where human nuance is important, just because an LLM can produce a result, does not mean that the result is great. Not everything people work on are "features" delivered via http handlers.

I don't understand this new paradigm where everyone wants to brag about how quick they get X amount of work done. Its the long standing belief of pretty much any quality builder that quick != quality, and quick usually isn't necessary. I'm glad your KPIs are great though and your product is getting 2 months of features every two days... The world needs this!

reply
wdaher
1 month ago
[-]
The Sorcerer's Apprentice is a poem by Goethe, or more famously, a sequence from the Disney movie "Fantasia", which you can see here: https://video.disney.com/watch/sorcerer-s-apprentice-fantasi...

The short summary of it is: the sorcerer's apprentice (Mickey) uses magic to get a broom to fetch water for him, and then the situation gets out of control as the broom continues to get water, and he has no idea how to stop it.

(It's a cautionary tale about the danger of playing with forces you don't really understand/"be careful what you wish for".)

reply
sneak
1 month ago
[-]
None of it is product. It’s all personal free software that I’ve designed over many years that I didn’t have time to implement before.

No KPIs, just useful tools for myself and anyone else who finds them valuable.

reply
tptacek
1 month ago
[-]
In a funny inversion of the normal analogy to machine code and compilers, you could say the same thing about people using decompilation rather than getting gud at reading ARM assembly.
reply
resonious
1 month ago
[-]
This feels like a bit of a false dichotomy. Just because I give some thinking tasks to an AI doesn't mean I'm sitting there doing nothing while it thinks.
reply
godelski
1 month ago
[-]
Interpret the intent of the parent's comment more and focus less on finding its critiques. The irony here is that the critique you made is the most obvious one, which also means it is the one that the parent believed you're most likely to understand the implicit context around. I don't think anyone has handed all thinking over to LLMs, it's always somewhere on a spectrum. I think we can assume the parent isn't framing things as a binary outcome. If they were, we should ignore everything they're saying.
reply
zmgsabst
1 month ago
[-]
I’ve made frameworks that turn a project entirely over to the AI — eg, turn a paragraph summary of what I want into a book on that topic.

Obviously I get much less out of that — I’m not denying the tradeoff, just saying that some people are all the way to “write a short request, accept the result” for (certain) thinking tasks.

reply
godelski
1 month ago
[-]
Sure but even that falls on the spectrum. The request requires some thinking. So if we're not being pedantic then people will criticize because natural language isn't
reply
zmgsabst
1 month ago
[-]
I think it’s a difference in kind, ie, if we return to above[0] and the discussion about “outsourcing our thinking” — then it deeply depends on what we hope to accomplish. That’s what I was originally intending to convey: that people are actually inhabiting the space you used as an extreme because they’re operating in a different mode.

That is, we seem to be conflating different cases - ie, being an expert versus hiring an expert. A manager and an SDE get different utility from the LLM.

I think I expressed it poorly, but I think that we need to consider that outsourcing thinking entirely is the right answer in the way that subcontracting or outsourcing or hiring itself can be; and that we seem to get caught in a “spectrum” or false dichotomy (ie, “is outsourcing good or bad?”) discussion, when the actual utilization of LLMs, their content, etc interacts in a complex way due to the diversity of roles, needs, etc that humans themselves have. And the impact on acquired expertise is only one aspect, for which “less work, less learning” is both true but too simple.

[0] - https://news.ycombinator.com/item?id=47040091

reply
SuperNinKenDo
1 month ago
[-]
I'd say _this_ is the comment guilty of making a false dichotomy.
reply
Retr0id
1 month ago
[-]
Do you have a background in reverse engineering?
reply
dakolli
1 month ago
[-]
You literally have a blog post called "AI can only solve boring problems"

Are you just trying to argue for the sake of arguing?

reply
Retr0id
1 month ago
[-]
What does my blog post have to do with anything? (But since you mention it - a large part of reverse engineering falls under the "boring" category I define in that article)
reply
j45
1 month ago
[-]
A VC might want variety and advise people he will vote with his dollars for variety, because he's not funding the same thing as everyone else is.

Being first and the winner requires a lot to line up, so it shouldn't be the only, default, or best setting. Pursuing this is optimizing.

Also a message from 10-15 years ago might not reflect the same context as today.

reply
chairmansteve
1 month ago
[-]
"A VC might want variety and advise people he will vote with his dollars for variety".

In other words, what's good for Peter Theil might not be goid for you.

reply
j45
1 month ago
[-]
Yup. Therefore postulating it as a truth or standard is ok if that's what you agree with and want to also pursue, but it's important to keep in mind that valid goals are a spectrum.
reply
alexfromapex
1 month ago
[-]
Strange to see the NSA using Java, maybe this is really old?
reply
zamadatix
1 month ago
[-]
Some of the comment matches in the code search suggest at least portions of the codebase goes back to the very late 90s.

Edit: Wikipedia has a table with 1.0 being 2003 https://en.wikipedia.org/wiki/Ghidra

reply
bri3d
1 month ago
[-]
Yes, it’s from the late 90s/early 00s, but why is it strange to see Java?
reply
belfthrow
1 month ago
[-]
I suppose they should be using rust yeah?
reply
iamleppert
1 month ago
[-]
Are these tools useable by OpenClaw yet?
reply
jeron
1 month ago
[-]
leave it to a three letter agency to use a pre-existing acronym for something pretty different
reply
jevinskie
1 month ago
[-]
Is it just me or is the merge style used for the repo very difficult to follow? Am I holding it wrong?
reply
ambitious_whale
1 month ago
[-]
What does it do I don't understand a think can someone explain me
reply