Tho*_*ini 6 c reverse-engineering compiler-optimization
我正在尝试学习如何逆向工程软件和所有技巧,以便在编译器优化之前了解代码的样子.
我发现了几次这样的事情:
if (a < 0)
a = -2147483648 - a;
Run Code Online (Sandbox Code Playgroud)
我原本以为它是一个abs():下溢,所以你得到正值.但由于a是否定的(见if),这相当于:
if (a < 0)
a = -2147483648 + abs(a);
Run Code Online (Sandbox Code Playgroud)
这将是一个非常小的负数,而不是绝对值a.我错过了什么?