我希望将一些字符串输入导入到Windows命令提示符中的一个小C程序中。在bash中,我可以使用
$ printf "AAAAA\x86\x08\x04\xed" | ./program
基本上,我需要一个能够在命令提示符中转义十六进制数的工具。在命令提示符/PowerShell中是否有类似于printf的等效或相似命令?感谢您的帮助。
我希望将一些字符串输入导入到Windows命令提示符中的一个小C程序中。在bash中,我可以使用
$ printf "AAAAA\x86\x08\x04\xed" | ./program
"AAAAA{0}{1}{2}{3}" -f 0x86,0x08,0x04,0xed | ./program
\x08
在bash中确实是字符8的转义符,所以后面的例子是正确的。 - Joey我最近也遇到了同样的问题,并决定对于开发Windows漏洞利用程序的人来说,安装cygwin是值得的 :)
否则,可以构建一个小的C程序来模拟printf
的功能:
#include <string.h>
int main(int argc, char *argv[])
{
int i;
char tmp[3];
tmp[2] = '\0';
if (argc > 1) {
for (i = 2; i < strlen(argv[1]); i += 4) {
strncpy(tmp, argv[1]+i, 2);
printf("%c", (char)strtol(tmp, NULL, 16));
}
}
else {
printf("USAGE: printf.exe SHELLCODE\n");
return 1;
}
return 0;
}