|
|
|
|
|
by boricj
655 days ago
|
|
> Trying to extend the input handling that never had this handling, unless the original is 50% NOPs, mean writing a new implementation at the end, and having the old implementation jump out and back. While traditional in-place binary patching does require contorting the modifications within the original program's memory layout, it's not the only option. If you have the ability to make the program's code and data relocatable again, you can leave out the parts that you want to modify, write replacements in source code form and let the toolchain mend everything back together. That technique has a higher upfront cost (the reverse-engineering work still has to be done on top of this), but it's far less finicky to perform. Personally, I've developed this capability with a Ghidra extension that exports object files, but that patching technique is so esoteric I don't even know if it has a name. |
|