Введите шестнадцатеричные значения в командную строку Windows

Я начал изучать эксплойты и решил написать какую-нибудь простую программу, чтобы «поиграть» с ней. Код действительно прост: scanf("%s", &var1); strcpy(буфер, var1);

Я закодировал программу на Windows XP и запустил ее на ollydbg. Обнаружил, что могу переопределить SEH, но когда я запускаю программу, она открывается в приглашении cmd, и я не могу вставить шестнадцатеричный код (эксплойт), только символы ascii. Например: мне нужно передать шестнадцатеричный код 0x90, но если я его пройду, он будет считаться ascii "0x90". Я пытался вставить что-то вроде \x90, но то же самое, cmd и программа считают это символами ascii.

Итак, как я могу ввести свой шестнадцатеричный шеллкод в программу в командной строке cmd?


person Dan    schedule 25.06.2014    source источник


Ответы (1)


Похоже, вам нужен strtoul, который преобразует шестнадцатеричные символы в двоичный.

   unsigned long int strtoul(const char *nptr, char **endptr, int base);

   unsigned long long int strtoull(const char *nptr, char **endptr,
                                   int base);
person merlin2011    schedule 25.06.2014
comment
Не совсем, я не хочу модифицировать программу, но найду способ ввести шестнадцатеричный символ в scanf (в командной строке Windows) - person Dan; 25.06.2014