Я работаю над некоторыми тестами уязвимостей с помощью Visual Studio 2019, и мне сложно получить этот последний.
Я видел, что есть еще один пост об этом, но я хотел бы получить aritmeti c переполнение в данном случае, в частности, без плавающей точки.
Я перехожу к объяснению проблемы:
Зная, что unsigned char имеет диапазон от 0 до 255, я намерен превышают нижний диапазон. Чтобы достичь этого, я использовал для l oop, чтобы я мог следить за поведением программы с точками останова и отладчиком.
Я провел аналогичный тест с Arithmeti c Overflow, и произошло то же самое, из-за этого я был вынужден преувеличить операцию arithmeti c, чтобы окончательно превысить верхний предел и получить, наконец, переполнение. Поэтому я думаю, что сам компилятор выполняет какие-то переделки, чтобы предотвратить такие сбои и таким образом «защитить» программиста.
Это код:
int main()
{
unsigned char a = 10;
printf("%hhu\n", a);
for (int cont =100; cont > 0; cont--)
{
a -= 1;
}
printf("%hhu\n", a);
return 0;
}
Я бы например, с одной стороны, чтобы иметь возможность получить недополнение aritmeti c, а с другой стороны, знать, является ли это какой-то функциональностью визуальной студии и можно ли каким-либо образом отключить ее, так как я хотел бы компиляция кода как такового, без какой-либо корректировки.
Всем спасибо! До скорой встречи.