Previously, PATE had no PLT stub-finding heuristics for PPC32, which meant that PATE would crash whenever it tried to execute code that invokes a PLT stub. While it is difficult in general to predict what the layout of a .plt section will be on an arbitrary PPC32 binary, we can at least give PATE some plausible heuristics that were derived from the target1-self binary.
Previously, the code in Pate.Discovery.PLT hard-coded heuristics that were specific to AArch32, so this patch needed to cargo-cult some code from https://github.com/GaloisInc/macaw/pull/320 in order to appropriately generalize the code to other architectures.
Previously, PATE had no PLT stub-finding heuristics for PPC32, which meant that PATE would crash whenever it tried to execute code that invokes a PLT stub. While it is difficult in general to predict what the layout of a
.plt
section will be on an arbitrary PPC32 binary, we can at least give PATE some plausible heuristics that were derived from thetarget1-self
binary.Previously, the code in
Pate.Discovery.PLT
hard-coded heuristics that were specific to AArch32, so this patch needed to cargo-cult some code from https://github.com/GaloisInc/macaw/pull/320 in order to appropriately generalize the code to other architectures.