3 ms·
I think the real fix is to set all registers to a canary value at the start of int main(), and then when exiting check the canary value is still there. If anyt
by pifm_guy 4y ago
I think the real fix is to set all registers to a canary value at the start of int main(), and then when exiting check the canary value is still there.
If anything has messed with any registers without permission, you crash and collect as much data as possible about any injected dll's.
Then you correlate these to find the culprits, and for each you contact the authors of the DLL and figure out a way to block the injection of any unfixed versions that cause crashes.
- TillE 4y agoCode can be injected anywhere. You'd have to add checks to every single function.
- andreareina 4y agoAny good function upstream of the bad one that also uses the same register will mask the issue
- ip26 4y agoEach runtime function call would probably need its own unique value, perhaps stashed to memory.