読者です 読者をやめる 読者になる 読者になる

goのバイナリを簡単に読みたい

go reversing

先日の goのバイナリをちょっとまじめに読んでみるstrippedなgoのバイナリを読み解くでは気合いでgoのバイナリを読んでいった。goのバイナリの解析の難しいところは、strippedだった場合に静的リンクされたライブラリの1000個以上の関数がどの関数なのか分かりづらいとか、メインの処理がどこからなのか分かりづらいとかそういうところである。

idaapiから生成した静的リンクされたライブラリのFLIRT(Fast Library Acquisition for Identification and Recognition) signatureとバイナリを照らし合わせれば、楽にシンボルを特定できそうだと考えたが、FireEyeがすでにgoバイナリを想定した似たようなツールを作っていた。

FLARE IDA Pro Script Series: Generating FLAIR function patterns using IDAPython « Threat Research Blog | FireEye Inc

これを試そうと思ったが、研究室のIDAがstarterライセンスであることに気づき完全にやる気をなくし1ヶ月経った。

また、Labeling Library Functions in Stripped Binariesでは関数ごとにCFG(Control Flow Graph)を作ることで、FLIRTよりも高精度でシンボルを回復できると論じているが、正直そこまでやる気がでない。

誰か知見を教えてほしい。