| 8564 | |
| 8565 | @only_if_gdb_running |
| 8566 | def do_invoke(self, argv: List[str]) -> None: |
| 8567 | if len(argv) != 3: |
| 8568 | self.usage() |
| 8569 | return |
| 8570 | |
| 8571 | address = parse_address(argv[0]) |
| 8572 | length = int(argv[1], 0) |
| 8573 | key = argv[2] |
| 8574 | block = gef.memory.read(address, length) |
| 8575 | info(f"Displaying XOR-ing {address:#x}-{address + len(block):#x} with {key!r}") |
| 8576 | |
| 8577 | gef_print(titlify("Original block")) |
| 8578 | gef_print(hexdump(block, base=address)) |
| 8579 | |
| 8580 | gef_print(titlify("XOR-ed block")) |
| 8581 | gef_print(hexdump(xor(block, key), base=address)) |
| 8582 | return |
| 8583 | |
| 8584 | |
| 8585 | @register |