Categorygithub.com/rawdaGastan/go-extract-vmlinux
modulepackage
0.0.0-20241215215648-3112f42638ef
Repository: https://github.com/rawdagastan/go-extract-vmlinux.git
Documentation: pkg.go.dev

# README

go-extract-vmlinux

A tool to extract vmlinux/vmlinuz in golang

Inspired from the official script from linux extract-vmlinux

How to use

package main

import (
  "log"
  extract "github.com/rawdaGastan/go-extract-vmlinux"
)

func main() {
  kernelImagePath := "<Enter your compressed kernel path>"

  // decompress kernel
  err := extract.TryDecompressKernel(kernelImagePath, kernelImagePath+"-decompressed")
  if err != nil {
    log.Fatal(err)
  }

  // compressed kernel
  err = extract.IsValidELFKernel(kernelImagePath + "-decompressed")
  if err != nil {
    log.Fatal(err)
  }
}

How to test

make test

# Functions

IsValidELFKernel checks if kernel is a valid elf (compressed).
TryDecompressKernel tried to decompress a given kernel using its path.