En el post anterior implementamos la estructura de nuestro protocolo, en esta segunda parte veremos como utilizarlo.
Ahora vamos a implementar el envío y la recepción de paquetes con nuestro protocolo, por parte del servidor además explicaremos cómo evaluar los campos del protocolo para responder según el identificador de la pregunta. Por parte del cliente explicaremos cómo acceder a un field del protocolo y mostrarlo por pantalla.
Modificamos el main del cliente, quedando el código como se muestra a continuación:
client.py
def main():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_DPORT))
socketsr1 = StreamSocket(s, Pedro)
packet_to_send = Pedro(direction=0, service=1)/PedroReqYourName(name_number=NAME)
ans = socketsr1.sr1(packet_to_send, timeout=2, verbose=False)
server_name = ans.getlayer("PedroRespYourName").sprintf("%own_name%")
print('Server name: {}').format(server_name)
s.close()
except Exception as client_error:
print('Error: {}').format(client_error)

En éste mi primer post, os hablaré acerca de cómo poner en práctica las habilidades de hacking de una persona. Para ello existen múltiples plataformas que permiten que cualquiera mediante una serie de desafíos con diferentes niveles de dificultad, obtenga una visión de su nivel en cuanto a habilidades de seguridad informática se refiere.