Недавно я сам придумал тот же вопрос и решил, что для тех, кто разрабатывает эксплойты 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;
}
Программа обрабатывает только строки "\ xAB \ xCD", но не должно быть затруднительно расширять ее для обработки строк "AAAAA \ xAB \ xCD", если это необходимо.