Debug QEMU VM via Phypin
Changelog
0.10.0
发布时间:2024-08-19 14:17:14+08:00
新增:
- 反汇编视图
- 断开连接时将关闭所有反汇编视图
- 当 PC 处于缺页状态时,再次暂停虚拟机将刷新反汇编视图
- 当 Load Snapshot 后进程不存在时会在 UI 上提示
- VM 视图
- VM Snapshots 行增加右键菜单
- VM 视图新增 Rename VM 右键菜单,并优化 VM 视图的右键菜单顺序与名称
- SSH 连接时如果虚拟机处理暂停状态,则提示用户是否要继续运行
- IPython 连接时不需要进入 Debug Session
- Stop Point 视图
- 增加 Disable/Enable/Remove All 右键菜单
- 关闭连接后也关闭 Stop Point 的 Editor
- Stop Point 新增 Create and Again 按钮,可连续创建多个 Stop Point
修复:
- 修复 VM 右键菜单 Create Snapshot 在未连接状态报错的问题
- 修复断开连接后进程视图未清空数据的问题
0.9.0
发布时间:2024-02-01 16:00:37+08:00
新增:
- Stop Point 列表为空时,显示大的创建按钮
- Process View 的进程筛选可以使用 ttbr0_el2 的寄存器值作为 PGD 筛选
- 缺页时 stepOver 将会继续在当前 PC Stop
修复:
- 修复 vm instance 移除 bug
- 禁用调试变量区域设置寄存器值选项
- 修复 parse struct bug
- 修复进程筛选时按 ESC 会导致已有条件清除的问题
其他:
- hexview 在 VM running 状态打开时,增加 dialog 提示
- command 控制 Phypin docker image 显示管理
0.8.0
发布时间:2024-01-25 10:17:33+08:00
新增:
- 内存视图添加内存修改功能
- 容器关联 vminstance 名称
修复:
- 修复快照 bug
- 修复 jupyter notebook print 失败问题
- 修复 vm 添加失败 bug
0.7.0
发布时间:2023-12-21 11:16:31+08:00
新增:
- Stop Point
- 新建 Stop Point 使用 Editor Panel 打开
- StopPoints View 增加 Welcome 内容
- 支持 StopPoint: ProcessSwitch
- hexview 开发
- hexview 选中内存,直接以该起始位置后 8 位的内存内容按大小端解析成为新地址进行跳转
- hexview 添加按 c 结构体自动解析内存功能
- 增加配置内存字符展示的编码格式
- 增加选中 bytes 转不同格式字符串
- 搜索内存
- 增加配置项,配置系统大小端,解内存类型
- 搜索快捷键
- 删除断点
- 支持以大端方式 Copy Hex
- Image 视图
- 支持重新创建 VM 对象,因为有时候用户可能会主动删除 VM
- Copy Debug Address 响应一个 URL
- Restart Container 后端口有变化,应该重新创建 VM 对象
修复:
- hexview: 跳转失灵,出现 webview disposed
- 修复调试器处于停止状态导致 VSCode 未显示 Variable、Call Stack 的问题
- 修复 VM 视图当前连接的 VM 在断开连接后依然显示绿色圆点的问题
0.6.0
发布时间:2023-11-06 14:26:30+08:00
新增:
- 变量视图增加右键菜单:Open in Disassembly View
- 优化进程筛选无结果的展示和交互,避免误解
- Stop Points 支持添加 connect、sendmmsg System Call
修复:
- 未连接状态下 VM 列表展开时报错的问题
- 在未打开反汇编视图时,打开它不会定位到目标地址上的问题
- 新版 VSCode 下范围断点的结束位置样式错乱问题
- 二进制视图在新版 VSCode 上顶部栏未对齐的问题
- 断开连接时进程视图报错的问题
0.5.0
发布时间:2023-10-18 09:50:20+08:00
新增:
- 反汇编视图
- VM 视图
- 创建快照时总是刷新一下以显示进度,避免手动刷新的额外操作
- Processes 视图
- 支持筛选,可使用 JavaScript 的正则表达式语法,还可以用
<curr> 代表当前进程
- Stop Point 视图
- 移除 File Content Stop Point,其功能可以通过 System Call write Stop Point 实现
- System Call write 可以不填 pattern
- 其他
- 状态栏增加虚拟机当前每秒运行指令数(IPS)。仅在运行态展示,虚拟机暂停时不展示。
修复:
- 反汇编视图:
- 重新打开反汇编视图存在未正确定位到上次跳转位置的情况
0.4.0
发布时间:2023-09-22 08:56:52+08:00
新增:
- 调试
- 完整支持 Step Out、Step Over 功能
- Stop Point
- 新增 Stop Points Panel,支持在匹配文件内容、切换特定进程、发生 System Call 调用时自动暂停虚拟机
- File Content:用于监听文件内容匹配,通常作用于某个进程的输出或日志文件
- Process Resume:用于监听进程切换到运行态,通用用于进程在首次启动时捕获入口 PC
- System Call:用于监听 System Call(如 write)调用,一般用于日志输出中的关键节点
- VM 视图:
- VM 的 Tooltip 中增加所有端口信息
- 添加 VM 时支持填入完整的 URL(以
phypin:// 开头)
- Snapshot 支持右键复制名称
- 反汇编视图
- 支持展示非指令的数据段内容,包括缺页状态下的数据
- 鼠标 Hover 到指令 OP Code,可以悬浮提示指令的二进制表示
- 地址跳转表达式支持有空格的 16 进制数字
- 支持打开任意进程的反汇编视图,默认跳转到上次记忆的地址处,没有则为 0 地址
- 每行后面支持显示备注(注释),目前针对数据行会显示其 ASCII 码
- 支持每一行在指令和数据两种展示方式之间切换
- Modules 视图
- 右键菜单 "Go Address to Disassembly View" 改为 "Open in Disassembly View",并修复其功能
- 增加右键菜单 "Open in Hex View"
- Variables 视图
- 寄存器列表增加 elr_el1、elr_el2
- 寄存器列表增加 currentel、elr_elx、ttbr0_elx、ttbr1_elx、lr(函数返回地址)
- 将 pstate 中的 nzcv 单独展示在寄存器列表中
- hexview
- address 按照 4kb 对齐起始地址添加下划线
修复:
- hexview
- 反汇编视图
- 反汇编视图地址跳转使用平滑滚动时,跳转位置存在不精准的情况
- Go to PC 后所在行没有高亮
- Variables 视图
其他:
0.3.0
发布时间:2023-08-23 15:46:47+08:00
新增:
- Modules 视图支持按 PC 查询其所在的 Module(只要在地址范围内)
- VM 上右键 Copy Address 将得到一个完整的 URL,如
phypin://127.0.0.1:8765?ssh=10022&vnc=5902&jupyterServer=8766&ipyKernelShell=8770&ipyKernelIopub=8771&ipyKernelStdin=8772&ipyKernelControl=8773&ipyKernelHb=8774
修复:
- 在反汇编视图里进行地址跳转,有时没有高亮目标地址所在行
其他:
0.2.0
发布时间:2023-08-21 15:01:36+08:00
新增:
- Modules 视图在宽度不够时对进程名、路径等进行省略展示,不再折行(保持风格简洁、美观)。对于省略的内容,用户可以鼠标悬浮查看完整内容。
- 新增 Command:Set Log Level,可动态调整日志级别
- 新增 Command:Clear Phypin Debug Data,可删除所有插件存储的数据,如 VM 地址、Stop Points 等。请谨慎操作,数据不可恢复!
修复:
- 断点实心红圈在 1080p 显示器上,如果放大窗口(Zoom In)会出现中心黑点
0.1.0
新增:
- 侧边栏视图:Phypin Image、VM Instances、Processes
- 底部 Panel:Modules
- Editor:Disassembly Editor、Hex Editor、Flow Graph Editor
| |