The BRK is a lie

The bug

IDA thinks that BRK on ARM64 doesn't stop the execution flow.

The consequences

Programs often use BRK to crash when something wrong happen (assert fail, security condition unmet etc.), to crash the program or let the analyst attach it's debugger. As IDA thinks that the execution continue after the BRK, this break all its analysis. This can be especially painful to fix especially if the BRK is just before an address table or in the middle of a function.

The support answers (and why they are wrong)

I'm not sure stopping the flow on BRK is a good …

read more...