解决有关缓冲区溢出的界限

时间:2015-09-30 01:58:16

标签: c function-pointers buffer-overflow

最近,我尝试使用点破坏来利用我的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.

0 个答案:

没有答案