ghidra
yazz
ghidra | yazz | |
---|---|---|
4 | 12 | |
5 | 531 | |
- | - | |
7.5 | 9.9 | |
7 months ago | 5 days ago | |
Java | JavaScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ghidra
-
Show HN: A Ghidra extension that turns programs back into object files
[1] https://github.com/boricj/ghidra/tree/feature/elfrelocatebleobjectexporter
-
Ask HN: Tell us about your project that's not done yet but you want feedback on
I've been working on a specific reverse-engineering technique called _unlinking_ [1] on-and-off for the past 16 months or so. I'm on my third prototype (first a set of Ghidra scripts written in Jython [2], then a fork of Ghidra [3] and now a Ghidra extension [4]) and I've started a blog in order to document it [5], which side-tracked into writing a whole series of articles on reverse-engineering to introduce the topic.
What for, you may ask? Basically I'm trying to decompile a PlayStation 1 video game and I've quickly decided that dealing alone with multiple +500 KiB executables of complete utter spaghetti code wasn't going to work. Instead, I've decided that I'd rather divide-and-conquer the problem, so I've been tooling up to split executables into relocatable object files, in order to decompile those one at a time and _Ship of Theseus_-style my way to success.
Ironically, all of that stuff is so not done that I don't even know what meaningful feedback there could be. My prototypes do work, but only for 32 bit little endian statically-linked MIPS executables. The articles on my blog are draft-quality. As for the decompilation project itself that started all of this, it hasn't seen much progress due to all of those side-quests. The overall topic is so esoteric that so far I've only managed to hear about one group of two persons that tried to do anything remotely similar and one another anecdotal account [6] that this particular skill is very uncommon among reverse engineers.
Personally, I'm starting to think that maybe I could've actually reverse-engineered and decompiled the game in the time I took to get here. I've also tried to engage with Ghidra to upstream the foundations of my modifications in my fork, but after some back-and-forth it became clear that my prototype-grade stuff wasn't industrial-grade and couldn't be merged in its current state, which is why I'm currently reworking the code in my fork as a Ghidra extension.
To those that want to provide feedback after reading all of this: beware, I've had a lot of fun going down that rabbit hole, but this is one hell of a time sink _and_ a particularly tricky mind-bender.
[1] I don't actually _know_ what's the actual name for this technique, given that there are so few resources on it out there. I do know I didn't invent it.
[2] https://github.com/boricj/ghidra-unlinker-scripts
[3] https://github.com/boricj/ghidra/tree/feature/elfrelocateble...
[4] https://github.com/boricj/ghidra-unlinker-extension
[5] https://news.ycombinator.com/item?id=36575081#36590078
[6] https://news.ycombinator.com/item?id=35729232&p=3#35740761
-
Ask HN: Most interesting tech you built for just yourself?
- The relocation synthesizer for MIPS: https://github.com/boricj/ghidra/blob/feature/elfrelocateble...
- The Ghidra analyzer that leverages this synthesizer: https://github.com/boricj/ghidra/blob/feature/elfrelocatebleobjectexporter/Ghidra/Features/Delinker/src/main/java/ghidra/app/analyzers/RelocationTableSynthesizerAnalyzer.java
yazz
-
Ask HN: What Underrated Open Source Project Deserves More Recognition?
Shameless plug. My own one of course :)
https://github.com/yazz/yazz
-
In-Browser Code Playgrounds
You can also try one I am building, a cross between Visual Basic and Microsoft Access here:
https://yazz.com/
-
The IDEs we had 30 years ago and we lost
i am working on such a thing myself at https://github.com/yazz/yazz. Also there are many other people trying to build something similar
-
2023: Focusing on a single product pays off
I keep hacking away on Yazz for over 10 years now.... even if there is zero payoff I keep hacking... and that is what hackers do... we are not doing for the money... https://github.com/yazz/yazz
-
“The Economics of Programming Languages” by Evan Czaplicki [video]
I really loved this talk and feel for Evan. As someone who was a VC/Angel investor in the space (I was the initial angel investor for something called LightTable/Eve) back in the day, worked for a couple of years at Red Hat, and am working on my own Open Source Language here: https://github.com/yazz/yazz (so yes, you could say I am a VC trying to build a low code product with my own hands), so I feel I have a valid opinions on this. I think that it is possible to make money in opensource as a little guy, but you need to have a combination of consulting, hosting, and support services. If your product is not able to encapsulate being sold and packaged as something that is possible to demo and sell to customers then you will most likely struggle to make a living from it
-
Ask HN: Why did Visual Basic die?
I am actually trying to make an open source successor, but using Javascript instead of Basic, at https://github.com/yazz/yazz and a demo at yazz.com
-
Ask HN: Tell us about your project that's not done yet but you want feedback on
I'm still building a low code system with an easy to use component marketplace where you can edit components within the low code tool. Still a work in progress: https://github.com/yazz/yazz
-
Show HN: Scrapscript – The Sharable Programming Language
Author of a framework that also stores it's code in IPFS for easy sharing (https://github.com/yazz/yazz). ScrapScript is a really nice concept with how it stores code. I originally got the idea for storing the code as a hash of the contents from Unison, and it looks like the idea is really starting to catch on with more and more languages now. Well done!
-
A look at Unison: a revolutionary programming language
I’m working on a low core project that is already using content addressable source code that is stored in IPFS at https://github.com/yazz/yazz so it can be done
-
DBOS: A Database-Oriented Operating System
There are already some Dbos type systems out there. I built one which stores program state in SQLite databases and process state and programs are also stored in SQLite. In the oat I believe things like silver stream did the same too. The project I made is open source too: https://github.com/yazz/yazz
What are some alternatives?
depsdev - CLI client (and Golang module) for deps.dev API. Free access to dependencies, licenses, advisories, and other critical health and security signals for open source package versions.
shelby_as_a_service - Production-ready LLM Agents. Just add API keys
Pinout.xyz - Source files for the Raspberry Pi Pinout documentation website.
Alpine.js - A rugged, minimal framework for composing JavaScript behavior in your markup.
SaunaControl - Makes a Sauna think it's a web server.
datasette - An open source multi-tool for exploring and publishing data
dizquetv - Create live TV channels from your own media. Access the streams using the simulated HDHomerun tuner or the generated M3U URl.
Sapper - The next small thing in web development, powered by Svelte
ratarmount - Access large archives as a filesystem efficiently, e.g., TAR, RAR, ZIP, GZ, BZ2, XZ, ZSTD archives
aws-lambda-java-libs - Official mirror for interface definitions and helper classes for Java code running on the AWS Lambda platform.
cardboard - 💽 Cloud storage + management platform for analog video files
headlessui - Completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS.