Integer overflow
اعدادی که با طول ثابت ذخیره میشن، مثل int زبان c که ۴ بایته میتونن overflow شن، یعنی از یک سمت بازه ای که میتونن نمایش بدن خارج بشن و بپرن به اون سمت بازه. مثلا یک عدد علامت دار ۴ بیتی که با روش مکمل ۲ ذخیره بشه میتونه بازه بین 8- تا 7+ رو نشون بده. جمع زیر باعث overflow شدن یه عدد علامت دار میشه که به روش مکمل ۲ ذخیره شده.
0111 (7)
0001 (1)
+-----
1000 (-8)
برای یک مثال بعدی، اگه یک عدد بدون علامت رو در نظر بگیریم، این عدد با overflow شدن نزدیک صفر میشه (اعداد ۴ بیتی بدون علامت میتونن بین ۰ تا ۱۵ باشن).
0011 (3)
+1110 (14)
------
1 |0001 (1)
|
|----> overflowed
چالش مرتبط¶
https://play.picoctf.org/practice/challenge/49
نویسنده