我开始学习漏洞,并决定编写一些简单的程序来编写#34;播放"用它。 代码非常简单: scanf("%s",& var1); strcpy(buffer,var1);
我在windows xp上编写了程序并在ollydbg上运行它。发现我可以覆盖SEH,但是当我运行程序时,它会在cmd提示符下打开,我无法粘贴十六进制代码(漏洞利用),只能删除ascii字符。 例如:我需要超过十六进制0x90,但如果我超过它,它将被视为ascii" 0x90"。我尝试粘贴像\ x90这样的东西,但同样的交易,cmd和程序将其视为ascii字符。
那么,我怎样才能在cmd提示符下将我的hexed shellcode输入到程序中
答案 0 :(得分:0)
听起来你想要strtoul
,它会将十六进制字符转换为二进制字符。
unsigned long int strtoul(const char *nptr, char **endptr, int base);
unsigned long long int strtoull(const char *nptr, char **endptr,
int base);