如何通过递增和递减单个字节来修改光标下radare2中的机器码?

How to modify machine code in radare2 under the cursor by incrementing and decrementing single bytes?

在 Radare2 中,应该可以在可视模式下,在光标处于活动状态(按 c)的情况下递增和递减原始机器代码的单个字节。在这样做的同时,它应该实时更新新的 assembled 机器代码,例如将 0x50 递增到 0x51、0x52 等应该会产生各种 PUSH 操作码。

我以为这是通过按 + 和 - 分别递增和递减来完成的,但我发现它不起作用。我也发现很难在手册中找到此特定信息。

我是不是记错了,从以前的版本开始,还是从那时起它就变了?

注意,我不是在问如何使用 "wa" 或类似命令来执行此操作 assemble 新的汇编语句,我只是想增加和减少单个字节作为一种方便的方式即时更改机器代码。

环境

  • Radare2: 4.5.0-git 24843 @darwin-x86-64 git.4.4.0-125-g561989265 提交:5619892652d7dce87458d77962777331c28275a6 构建:2020-05-04__09:53:49
  • 系统: macOS Catalina 版本 10.15.4

解决方案

  • 使用 "open(s) file in write mode"
  • 的“-w”标志启动 radare2
user@host:~$ r2 -w /file/to/analyze.x
  • 分析文件:
[0x100001060]> aaaa
  • 使用光标切换到视觉模式:
[0x100001060]> Vpc
  • Plus/Minus 到 increment/decrement 操作码:
+
-

示例