Ищем базовый пример обратной оболочки в C (++) - PullRequest
2 голосов
/ 24 июля 2009

Я пытаюсь найти базовый пример обратной оболочки на C или C ++,

В основном я хочу написать код для имитации следующего сценария netcat:

Listener:
------------------
C:\nc -L -p 80

Client
--------------
C:\nc 127.0.0.1 80 -e cmd.exe

Для когоне говорит netcat:

Это означает, что я хочу перенаправить стандартный ввод и вывод из cmd.exe в сетевой поток и обратно. Таким образом, пользователь из удаленного ящика может запустить cmd.exe с удаленного компьютера.

Я ищу пример кода C / C ++ для этого?

1 Ответ

2 голосов
/ 24 июля 2009

netcat - это то, что либо принимает (при работе в качестве сервера), либо открывает (при работе в качестве клиента) сокет. Все, что введено в stdin, записывается в сокет. Все, что читается из сокета, записывается в stdout. Любые ошибки записываются в stderr.

Это основа. Похоже, вы используете его в Windows и подключаете стандартный ввод-вывод к командной оболочке. Я не уверен, почему / что это делает для вас, поэтому я пока проигнорирую это.

В любом случае, вам нужно написать приложение, которое принимает / открывает сокет, писать в... и т. д. (см. параграф 1).

В Интернете есть много материала, объясняющего, как это сделать. Окончательный ответ на ваш вопрос зависит от того, почему вы хотите это сделать (то есть почему бы просто не использовать netcat), хотите ли вы хорошее POSIX-совместимое приложение, которое будет работать на любой платформе или что-то, что только для Windows (и, возможно, использует WindowsКомпоненты пользовательского интерфейса) и другие вопросы.

Я рекомендую начать с поиска в Google что-то вроде программирования сокетов в c , программирования сокетов в c ++ или Программирование сокетов Windows .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...