mandiant / GoReSym

Go symbol recovery tool
MIT License
498 stars 62 forks source link

add a 'strings' command #45

Open 0xdevalias opened 7 months ago

0xdevalias commented 7 months ago

It would be cool if GoReSym had a built-in command like strings that could be run on a compiled golang binary.

See Also

I did some quick googling and came across this tool written in python that wraps radare2:

williballenthin commented 7 months ago

agree this would be useful!

additional research and implementation here: https://github.com/mandiant/flare-floss/blob/master/floss/language/go/extract.py

the-m3chanic commented 4 months ago

Hi! I would like to look into this and try and see if I can work on it. What knowledge would I need in order to do so? I am familiar with python programming and have done Golang Reverse-Engineering in the past, and am also familiar with memory, would I be a good fit?

stevemk14ebr commented 4 months ago

hey @the-m3chanic if you're interested in working on this, I say absolutely take a shot at it! We are interested in a near direct port of the capa python string extraction logic (https://github.com/mandiant/flare-floss/blob/master/floss/language/go/extract.py) into GoReSym. That would mean take the existing python code and re-write it to GoLang for inclusion in GoReSym. Requirements:

There's no pressure for this work, if you make progress just submit a PR. I will merge the work after a few rounds of code review when the quality is up to par. Thanks for you interest!

the-m3chanic commented 4 months ago

Thank you so much for all the info and help! I will start working on this right away, however a little slow-paced as I have my end-semester exams coming up. I shall keep you posted on my progress. 👍 (Is there any way I can contact you to maintain communication? If you're okay with that)

stevemk14ebr commented 4 months ago

There is no rush at all @the-m3chanic any contributions you decide to submit are purely up to you. As far as contact I'd prefer to work via github, that is the easiest for me to keep track of. If you require more hands on mentoring later we can cross that bridge at that time. For now, just submit issues and/or pull requests as you see fit and I will get to responding to them as I'm available