Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

An unofficial GUI wrapper around pwndbg intended to leverage the UI benefits of a graphical user interface

License

NotificationsYou must be signed in to change notification settings

AlEscher/pwndbg-gui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An unofficial GUI wrapper aroundpwndbg intended to leverage the UI benefits of a graphical user interface.

Setup

  1. Install and setuppwndbg
  2. Optionally add any settings you want in~/.gdbinit
  3. Runpython start.py
    • This will create a virtual environment and install the needed dependencies
    • On Debian/Ubuntu systems, you may need to previously installpython3-venv
    • If you want to attach to running programs, GDB needs to be started with sudo. To do this, copy~/.gdbinit into/root and runpython start.py --sudo and enter your sudo password when prompted

Features

  • Resizable and collapsible panes
  • Heap context
    • Continuously show heap related information such as allocated chunks and freed bins
    • Give easy access topwndbg'stry_free command
  • Watch context
    • Add multiple addresses to a watch context to continuously monitor the data in a hexdump format
  • Context menus for Stack and Register contexts, that allow easy lookup via thexinfo command.
  • Keyboard shortcuts
    • Shortcuts for GDB commands as well as GUI features
    • Shortcuts are either displayed next to the action in a menu (e.g.Ctrl + N) or shown by an underlined letter (pressingAlt + <LETTER> will activate the button / menu)
  • Input byte literals
    • When inputting to the inferior process (denoted by the label next to the main pane's input field) you can supply a pythonbytes literal
    • E.g.: Writing b"Hello\x00World\n" will interpret the input as abytes literal and evaluate it accordingly
  • All existing GDB /pwndbg commands can still be executed via the Main input widget

Preview

Overview Running

Motivation

pwndbg is a command line utility that greatly enhancesgdb by allowing the user to more easily view data, as well as by adding many new commands.As the dominant tools for debugging and pwning, they mostly suffer from the fact that they are bound to the limitations of terminal applications.To address this we wanted to leverage a modern UI framework to wrap the most essential functionality.This allows us to filter out, reorder and customize the gdb output, simplifying or highlighting important information.Our GUI application primarily focuses on usability reducing the number of user commands, displaying information neatly, copying data easily, and providing hotkeys for control-flow.

Approach

The GUI is written using theQt framework for python.GDB is managed as a subprocess inMI mode and interaction is handled bypygdbmi.To make the GUI more fluent and prevent hangups, the application is multithreaded.The main thread is the GUI thread, which starts other threads that handle input to GDB (GdbHandler), collecting output from GDB (GdbReader) and interaction with the inferior process (InferiorHandler)

Troubleshooting

  • If you are experiencing issues on startup relating to QT plugins not being found or loaded try to setQT_DEBUG_PLUGINS=1 for the user where the failure is occurring and retry. This will show you more debug output related to QT. Most likely you will have some missing dependencies that can be installed via your favourite package manager. On Ubuntu/Debian it was thelibxcb-cursor0 library. See thisSO post.

External dependencies

  • Qt PySide6 as the GUI framework
  • Pygdbmi for interaction with GDB in MI mode
  • psutil for cross-platform access to process information

Disclaimer

This tool was developed as project for the Binary Exploitation practical course at TUM. All features are targeted to complete the pwning challenges during the course. If you like it, but have a use case that is currently not supported feel free to open a PR or an issue.

About

An unofficial GUI wrapper around pwndbg intended to leverage the UI benefits of a graphical user interface

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp