我偶然发现了要读取链接到Windows上任意PE可执行文件的DLL文件列表的任务。 debug/pe
看起来很有前途,但发现却不胜枚举:
// ImportedLibraries returns the names of all libraries
// referred to by the binary f that are expected to be
// linked with the binary at dynamic link time.
func (f *File) ImportedLibraries() ([]string, error) {
// TODO
// cgo -dynimport don't use this for windows PE, so just return.
return nil, nil
}
那么我可以使用什么来从EXE文件中提取DLL列表?
答案 0 :(得分:1)
这似乎做到了:
package main
import "github.com/Binject/debug/pe"
func main() {
f, e := pe.Open(`C:\Windows\notepad.exe`)
if e != nil {
panic(e)
}
defer f.Close()
a, e := f.ImportedLibraries()
if e != nil {
panic(e)
}
for _, s := range a {
println(s)
}
}