(self, argv: List[str])
| 8593 | |
| 8594 | @only_if_gdb_running |
| 8595 | def do_invoke(self, argv: List[str]) -> None: |
| 8596 | if len(argv) != 3: |
| 8597 | self.usage() |
| 8598 | return |
| 8599 | |
| 8600 | address = parse_address(argv[0]) |
| 8601 | length = int(argv[1], 0) |
| 8602 | key = argv[2] |
| 8603 | block = gef.memory.read(address, length) |
| 8604 | info(f"Patching XOR-ing {address:#x}-{address + len(block):#x} with {key!r}") |
| 8605 | xored_block = xor(block, key) |
| 8606 | gef.memory.write(address, xored_block, length) |
| 8607 | return |
| 8608 | |
| 8609 | |
| 8610 | @register |