Add commands to print kernel commandline and version (#1434)

Co-authored-by: Gulshan Singh <gsgx@google.com>
pull/1435/head
Gulshan Singh 3 years ago committed by GitHub
parent a575fa7fab
commit 6f50b08767
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -499,7 +499,9 @@ def load_commands():
import pwndbg.commands.ida
import pwndbg.commands.ignore
import pwndbg.commands.ipython_interactive
import pwndbg.commands.kcmdline
import pwndbg.commands.kconfig
import pwndbg.commands.kversion
import pwndbg.commands.leakfind
import pwndbg.commands.memoize
import pwndbg.commands.misc

@ -0,0 +1,12 @@
import argparse
import pwndbg.commands
import pwndbg.gdblib.kernel
parser = argparse.ArgumentParser(description="Return the kernel commandline (/proc/cmdline)")
@pwndbg.commands.ArgparsedCommand(parser)
@pwndbg.commands.OnlyWhenQemuKernel
def kcmdline():
print(pwndbg.gdblib.kernel.kcmdline())

@ -0,0 +1,12 @@
import argparse
import pwndbg.commands
import pwndbg.gdblib.kernel
parser = argparse.ArgumentParser(description="Outputs the kernel version (/proc/version)")
@pwndbg.commands.ArgparsedCommand(parser)
@pwndbg.commands.OnlyWhenQemuKernel
def kversion():
print(pwndbg.gdblib.kernel.kversion())

@ -21,3 +21,15 @@ def kconfig():
if _kconfig is None:
_kconfig = load_kconfig()
return _kconfig
@pwndbg.lib.memoize.reset_on_start
def kcmdline() -> str:
cmdline_addr = pwndbg.gdblib.memory.pvoid(pwndbg.gdblib.symbol.address("saved_command_line"))
return pwndbg.gdblib.memory.string(cmdline_addr).decode("ascii")
@pwndbg.lib.memoize.reset_on_start
def kversion() -> str:
version_addr = pwndbg.gdblib.symbol.address("linux_banner")
return pwndbg.gdblib.memory.string(version_addr).decode("ascii").strip()

Loading…
Cancel
Save