modules
This commit is contained in:
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python3
|
||||
# Small script to print all options available inside a built kernel.
|
||||
# fmt: off
|
||||
import sys
|
||||
|
||||
from elftools.elf.elffile import ELFFile
|
||||
|
||||
SIZEOF_PTR = 8
|
||||
SIZEOF_STRUCT = 40
|
||||
ENDIAN = "little"
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) < 2:
|
||||
print("Provide a path to the kernel binary to use")
|
||||
sys.exit(1)
|
||||
|
||||
with open(sys.argv[1], "rb") as elffile:
|
||||
file = ELFFile(elffile)
|
||||
|
||||
version = "?"
|
||||
author = "?"
|
||||
desc = "?"
|
||||
license = "?"
|
||||
|
||||
for segment in file.iter_segments():
|
||||
match segment["p_type"]:
|
||||
case 0x60000001: version = segment.data()[:-1].decode()
|
||||
case 0x60000002: author = segment.data()[:-1].decode()
|
||||
case 0x60000003: desc = segment.data()[:-1].decode()
|
||||
case 0x60000004: license = segment.data()[:-1].decode()
|
||||
|
||||
print(f"Module info for \"{sys.argv[1]}\"")
|
||||
print(f"Description:\t{desc}")
|
||||
print(f"Version:\t{version}")
|
||||
print(f"Author(s):\t{author}")
|
||||
print(f"License:\t{license}")
|
||||
Reference in New Issue
Block a user