l0w.dev

golang binary hacks (golang.tokyo #25)


今日は golang.tokyo #25 というイベントにお邪魔して LT 枠で「golang binary hacks」というお題のお話をしてきました。

現地でお話を聞いてくださったみなさま、ありがとうございました。

内容は https://gitlab.com/pages/hugo のために作った Hugo Extended の Docker イメージが Segmentation fault 出して動かないという Issue の報告に端を発した、 Alpine Linux (musl libc) の環境で起きやすいスタックオーバーフローの問題を、 実行ファイルのバイナリパッチのという小細工でどうにか鎮めようとする話です。 これが Go の debug/elf パッケージのおかげで簡単に実現できました。

成果物として muslstack という小さなユーティリティができましたので、 Alpine Linux のコンテナで動かないプログラムにお悩みの方は試してみてください。 ひょっとしたら動くようになるかもしれません。