pwndbg_gui代码浅析

项目地址:https://github.com/AlEscher/pwndbg-gui

本来是想自己做一个GUI的结果发现有人做了😭,fork过来看看代码,然后准备看着加点功能.

从readme中可以看到是用的Qt6做的GUI,然后使用的接口是pygdbmi,这个库的作用是提供格式化的gdb的python交互,格式化了gdb输出的数据,并且提供接口与gdb交互.程序将gdb的输出分割成了数个界面,可以让你同时观察到堆,栈,反汇编,如果有ida拓展的话应该还能看到源代码,并且还提供了对寄存器的监视.对执行流控制的常用命令做了按钮来快速操作,虽然对于经常用gdb的来说便利不大甚至有些别扭,但是gdb新手还是可以尝试一下这个项目的
↑作者放的界面截图,如果自己clone之后里面没有code是因为没有IDA扩展

进入start.py中可以看到其主要执行的代码会在pwndbg_gui.py中,另外还有个custom_widget文件夹值得注意,与执行的窗口对比一下很容易发现这个里面是小窗口的实现样式,这里不再做更改

窗口框架在setup_menu()里面,规划了主窗口控件,定义了菜单栏及其对应的插槽.内部界面是使用QSpitter做的布局,但是QSplitter有个缺陷,没有直接删除窗口的方法,但是作为替代,它管理的控件在被缩放到一定大小的时候会自动隐藏.窗口对象本身是QWidget对象,具有hidden属性,但是如果只是简单的对其设置为hidden实现的效果蛮丑陋的,完全不符合预期,还是会占用原来的空间,只是内容被隐藏了并且标题还在,本来窗口管理的控件都做好了发现实现的效果太差又注释掉了,好在是对这个项目的代码结构有初步的理解了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值