Learning Radare2

The last few days have been hectic because family.

Even so, I managed to spend some time modifying Crossbow, my own RSS/ATOM
reader, so that it uses Mini-xml instead of libmrss/libnxml.
I think I wrote on this topic before, but the long story short is that I'm
planning since long time to ditch libmrss/libnxml in favour of Mini-xml.
I wrote a library named libeccio on the top of Mini-xml, and I'm trying to
integrate it into Crossbow.
The thing is not technically difficult, but it takes forever because family.  I
eventually managed to make it work!

While running casual quality checks on the result, I figured the compiled
binary embeds the filesystem paths where it was built.  Classic issue, usually
breaking reproducible builds, and often due to the use of the __FILE__ macro.

I noticed the problem persists even after changing the code so that __FILE__ is
not used, but I couldn't trivially figure out what kept adding it.

The right tool for the job is a disassembler with xref support.  I heard of
Ghidra before, and I managed to get my answer in a couple of clicks on a very
90's Java GUI.  In case you're curious, the problem was caused by a UTHash
macro using assert(3).

This whole story woke up my interest in binary analysis, and I even if the
answer came from Ghidra, I started to be intrigued by Radare2.  I suppose it
qualifies as the most baroque software I've ever seen, but I find it
fascinating.

I found this article very good:
https://www.megabeets.net/a-journey-into-radare-2-part-1