Yank/Paste

Radare2 has an internal clipboard to save and write portions of memory loaded from the current io layer.

This clipboard can be manipulated with the y command.

The two basic operations are

  • copy (yank)
  • paste

The yank operation will read N bytes (specified by the argument) into the clipboard. We can later use the yy command to paste what we read before into a file.

You can yank/paste bytes in visual mode selecting them with the cursor mode (Vc) and then using the y and Y key bindings which are aliases for y and yy commands of the command-line interface.

  1. [0x00000000]> y?
  2. Usage: y[ptxy] [len] [[@]addr] # See wd? for memcpy, same as 'yf'.
  3. | y! open cfg.editor to edit the clipboard
  4. | y 16 0x200 copy 16 bytes into clipboard from 0x200
  5. | y 16 @ 0x200 copy 16 bytes into clipboard from 0x200
  6. | y 16 copy 16 bytes into clipboard
  7. | y show yank buffer information (srcoff len bytes)
  8. | y* print in r2 commands what's been yanked
  9. | yf 64 0x200 copy file 64 bytes from 0x200 from file
  10. | yfa file copy copy all bytes from file (opens w/ io)
  11. | yfx 10203040 yank from hexpairs (same as ywx)
  12. | yj print in JSON commands what's been yanked
  13. | yp print contents of clipboard
  14. | yq print contents of clipboard in hexpairs
  15. | ys print contents of clipboard as string
  16. | yt 64 0x200 copy 64 bytes from current seek to 0x200
  17. | ytf file dump the clipboard to given file
  18. | yw hello world yank from string
  19. | ywx 10203040 yank from hexpairs (same as yfx)
  20. | yx print contents of clipboard in hexadecimal
  21. | yy 0x3344 paste clipboard
  22. | yz [len] copy nul-terminated string (up to blocksize) into clipboard

Sample session:

  1. [0x00000000]> s 0x100 ; seek at 0x100
  2. [0x00000100]> y 100 ; yanks 100 bytes from here
  3. [0x00000200]> s 0x200 ; seek 0x200
  4. [0x00000200]> yy ; pastes 100 bytes

You can perform a yank and paste in a single line by just using the yt command (yank-to). The syntax is as follows:

  1. [0x4A13B8C0]> x
  2. offset 0 1 2 3 4 5 6 7 8 9 A B 0123456789AB
  3. 0x4A13B8C0, 89e0 e839 0700 0089 c7e8 e2ff ...9........
  4. 0x4A13B8CC, ffff 81c3 eea6 0100 8b83 08ff ............
  5. 0x4A13B8D8, ffff 5a8d 2484 29c2 ..Z.$.).
  6. [0x4A13B8C0]> yt 8 0x4A13B8CC @ 0x4A13B8C0
  7. [0x4A13B8C0]> x
  8. offset 0 1 2 3 4 5 6 7 8 9 A B 0123456789AB
  9. 0x4A13B8C0, 89e0 e839 0700 0089 c7e8 e2ff ...9........
  10. 0x4A13B8CC, 89e0 e839 0700 0089 8b83 08ff ...9........
  11. 0x4A13B8D8, ffff 5a8d 2484 29c2 ..Z.$.).