uprobe-http-tracer
uprobe-http-tracer copied to clipboard
uprobe-based HTTP tracer for Go binaries
uprobe-http-tracer
Captures all the calls to http.Get
function and grabs the full URL from the stack area. For more details head to the blog post.
Requirements
To build this tool you have to satisify the following requirements:
- have a Linux kernel that supports uprobes
- linux headers
- clang
- LLVM
- libbcc
- Go >1.12
Usage
- Build the tool
go build -o uprobe-http-tracer main.go
- Write a simple program
vi /tmp/main.go
package main
import "net/http"
func main() {
urls := []string{"http://google.com", "http://reddit.com", "http://pastebin.com/tools"}
for _, url := range urls {
http.Get(url)
}
}
go build /tmp/main.go
- See it in action
sudo ./uprobe-http-tracer --bin=/tmp/main
PID URL
8274 http://google.com
8276 http://reddit.com
8286 http://pastebin.com/tools