Is there an easy way to extract all of the strings from Go binaries that will work cross architecture?
The problem with Go is that strings are stored without a null terminator so you can't use the "strings" command plainly.
I found two solutions so far -
https://github.com/CarveSystems/gostringsr2 - Extracts strings using references to the string section (by using radare2). But this method doesn't work 100% and screws up some strings because there are indirect references, etc...
https://github.com/strazzere/golang_loader_assist/blob/master/golang_loader_assist.py - Extracts strings by searching for "lea"/"mov" instruction to the string section. But this method only works for x86 architectures.
Is there a more generic and correct way to extract the strings from Go compiled binaries?