2013年5月10日 星期五

go and elf rpath

某社後來都強制得對 binary 加上 rpath, 為了系統安全的原因.

那怎樣在 go 裡面檢查 binary file 的 rpath ?

用 debug/elf 呀.

--
package main

import (
        "fmt"
        "debug/elf"
)

func main() {
        f, err := elf.Open("/bin/ls")
        if err != nil {
                panic(err)
        }

        rpath, err := f.DynString(elf.DT_RPATH);
        fmt.Printf("%s\n", rpath)
}