NationalSecurityAgency / ghidra

Ghidra is a software reverse engineering (SRE) framework
https://www.nsa.gov/ghidra
Apache License 2.0
50.45k stars 5.77k forks source link

Mark failfast/int 29 as noreturn #2542

Open justanotheranonymoususer opened 3 years ago

justanotheranonymoususer commented 3 years ago

Describe the bug int 29 isn't marked as noreturn in the decompiler.

To Reproduce Steps to reproduce the behavior: Let me know if an example driver is needed.

Expected behavior The flow in the decompiler ends at int 29.

Screenshots image

Environment (please complete the following information):

sad-dev commented 3 years ago

Not handling fastfail properly leads to messy decompilation, as the stack pointer is treated as 'variable'.

I tried for a while to modify the sleigh, but the best I got was to make int 29 return immediately. It does not seem possible to directly specify a call to noreturn function