最近,我尝试使用点破坏来利用我的XP VM的漏洞。问题是,我已将地址函数指向另一个函数地址(在本例中为函数arc injection(R)),但当程序跳转到函数" arc injection(R)" ,GDB告诉我R是地址0xbalbala超出范围?我知道这可能与变量的范围有关。任何人都可以告诉我如何使用点blobbering跳转到一个函数并使用它的参数?非常感谢你。
void ArcInjection(char *R)
{
printf("In ArcInjection()\n");
system(R);
}
void (*FuncPtr)(int,int, char **);
这是交换机的一部分:
case 5:
ArcInjection(Command);
break;
case 6:
FuncPtr(argv[++i][0]-48,argc,argv); // I changed the address this function pointed to to the address of case 5, but in this case case 5 cannot use its argument Command, which has been defined in the main program.