Skip to content

Set of IDA Pro scripts for parsing GoLang types information stored in compiled binary(support go 1.20 but no go 1.18)

Notifications You must be signed in to change notification settings

And0n3/IDAGolangHelper_SupportGo1.20

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

IDAGolangHelper

Set of IDA Pro scripts for parsing GoLang types information stored in compiled binary

This is update for https://gitlab.com/zaytsevgu/GoUtils2.0

Differences:

  1. Add support for go1.8 and go1.9, go1.10 (well actually it seems no difference from go1.9)
  2. Automatically add user-defined types to IDA. (Can be checked in Shift+f9 view)
  3. Add some not very advanced string recognition. You can press Shift+S to process current function

https://2016.zeronights.ru/wp-content/uploads/2016/12/GO_Zaytsev.pdf - My presentation about Golang reversing

support go 1.20 but no 1.18(i have no the sample with go 1.18), only works in rename functions

pcln struct and version magic number: https://go.dev/src/debug/gosym/pclntab.go

func struct: https://go.dev/src/runtime/runtime2.go

how to rename functions

click button 1 "try to detemine go version based on moduledata"

if not work

click button 2 "try to detemine go version based on version string"

then click button 3 rename functions

about go 1.18

Go 1.18 and Go 1.20 have the same struct in pcln and func table.

U can add go 1.18 magic number detection in Gopclnatb.findGoPcLn, and add go 1.18 string in init.getVersionByString.

Then use Gopclnatb.check_is_gopclntab18_20, Gopclnatb.rename120 in go 1.18 version

About

Set of IDA Pro scripts for parsing GoLang types information stored in compiled binary(support go 1.20 but no go 1.18)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%