Address Resolution Protocol [RESOLVIDO]

1. Address Resolution Protocol [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 17/07/2016 - 16:55h

Boa tarde pessoal... escrevi um rascunho de uma resolução de endereços (ARP), o código já está funcional como podem ver na imagem que o wireshark me retorna ao sniffar meu pacote http://i.imgur.com/rqwn1Uk.png e o alvo também responde normalmente.

O problema é que eu estou reestruturando este rascunho usando a ctypes do python só que está me devolvendo resultados inesperados com inteiros no lugar de bytes e o buffer acaba ficando ilegível e eu não sei porquê, Alguém poderia me ajudar nessa missão? Ou ao menos dizer onde estou errando, já estou 4 dias e não consigo nada além de mensagens de erro.

Rascunho --> http://pastebin.com/UK69erAf

Oque estou tentando fazer:
class ArpResponse(Structure):
_fields_ = [('eth_dst', c_ubyte),
('eth_src', c_ubyte),
('eth_pro', c_ushort),
('arp_hrd', c_ushort),
('arp_pro', c_ushort),
('arp_hln', c_ubyte),
('arp_pln', c_ubyte),
('arp_opr', c_ushort),
('arp_sha', c_ubyte, 6),
('arp_sip', c_ubyte, 4),
('arp_tha', c_ubyte, 6),
('arp_dip', c_ubyte, 4)]

def __init__(self, socket_bufer=None, *args, **kwargs):
super().__init__(*args, **kwargs)

self.socket_bufer = socket_bufer
self.src_address = pack('', self.arp_sip)

def __new__(cls, socket_buffer):
return cls.from_buffer_copy(socket_buffer)


@listeiro eu sei que você está lendo isso e manja de programação, ajuda esse noob cara! kkkkkkk


  


2. Re: Address Resolution Protocol [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 18/07/2016 - 02:09h

Resolvido, um simples erro de estrutura me deixou horas empacado, agora ficou funcional:
class ArpReplay(Structure):
_fields_ = [('eth_dst', c_char * 6), ('eth_src', c_char * 6),
('eth_pro', c_ushort), ('arp_hrd', c_ushort),
('arp_pro', c_ushort), ('arp_hln', c_byte),
('arp_pln', c_byte), ('arp_opr', c_ushort),
('arp_sha', c_char * 6), ('arp_sip', c_char * 4),
('arp_dha', c_char * 6), ('arp_dip', c_char * 4)]

def __new__(cls, socket_buffer=None):
return cls.from_buffer_copy(socket_buffer)

def __init__(self, socket_buffer=None, *args, **kwargs):
super().__init__(*args, **kwargs)
self.target_mac = hexlify(self.arp_sha)


Só falta estruturar o envio da requisição kkkkkkk







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts