#include
int num1;
int num2;
int res;
static int add(void) {
res = num1 + num2;
printf("\nAnswer: %u", res);
}
static int sub(void) {
res = num1 - num2;
printf("\nAnswer: %u", res);
}
static int mal(void) {
res = num1 * num2;
printf("\nAnswer: %u", res);
}
static int div(void) {
res = num1 / num2;
printf("\nAnswer: %u", res);
}
void do_operator() {
char op[1];
printf("Enter an operator (+, -, *, /):");
scanf("%s", &op);
if (*op == '+')
{
add();
}
else if (*op == '*')
{
mal();
}
else if (*op == '-')
{
sub();
}
else if (*op == '/')
{
div();
}
else
{
printf("\nNo valid input: %s", op);
}
}
int main() {
printf("\nEnter number-1:");
scanf("%u", &num1);
printf("\nEnter number-2:");
scanf("%u", &num2);
do_operator();
return 0;
} 嘿,我是缓冲区溢出攻击的新手。我正在尝试运行此代码,当输入时,使用缓冲区溢出运行乘法函数\*,而不是加法函数+。我尝试了多种不同的方法,但没有成功缓冲区溢出利用给予代码执行乘法函数\*,但给定的运算符是加法函数+
|