4 ms·
When the difference between correct code and a pretty bad bug can be one instruction[1], I'm not sure if "anyone who can read a control flow graph" is going to
by conradev 10y ago
When the difference between correct code and a pretty bad bug can be one instruction[1], I'm not sure if "anyone who can read a control flow graph" is going to be able to find implementation flaws (intentional or not).
[1] https://youtu.be/5pAen7beYNc?t=13m51s https://youtu.be/5pAen7beYNc?t=13m51s
- tedunangst 10y agoAnd how are things any different reading source code? The disassembled binary CFG is either going to branch on greater than or greater or equal, exactly like the source code. If you won't see the bug in the CFG, you won't see the bug in the source.
- conradev 10y agoThis is a valid point. Both the source code and the CFG can hide bugs pretty easily. I would argue that reading source code is much easier, though. For example, if you are auditing code written in a memory-safe language, you don't need to look for memory corruption bugs. You also have an audit trail for all source code changes.
- tptacek 10y agoIt's not like this code was originally written in Haskell. Come on.
- deleted 10y ago[deleted]