Kod:
format pe console
section '' readable writeable executable
entry $
push 0
push x
push 0
push src
call [pcap_findalldevs_ex]
add esp,16
mov eax, [x]
mov eax,[eax+4]
push 0
push 0
push 1000
push 0
push 100
push eax
call [pcap_open]
add esp,24
sub esp,100
mov ebp,esp
mov byte [ebp+0],1
mov byte [ebp+1],1
mov byte [ebp+2],1
mov byte [ebp+3],1
mov byte [ebp+4],1
mov byte [ebp+5],1
mov byte [ebp+6],2
mov byte [ebp+7],2
mov byte [ebp+8],2
mov byte [ebp+9],2
mov byte [ebp+10],2
mov byte [ebp+11],2
lea edx,[ebp+11]
mov ecx,88
fill:
mov byte [edx+ecx],0
loop fill
push 100
push ebp
push eax
call [pcap_sendpacket]
add esp,12
add esp,100
xor eax,eax
ret
f db '%p',13,10,0
ff db '%s',13,10,0
src db 'rpcap://',0
x rd 1
section '' import readable
dd 0,0,0,RVA wpcap_name,RVA wpcap_table
dd 0,0,0,RVA msvcrt_name,RVA msvcrt_table
dd 0,0,0,0,0
wpcap_table:
pcap_findalldevs_ex dd RVA _pcap_findalldevs_ex
pcap_open dd RVA _pcap_open
pcap_sendpacket dd RVA _pcap_sendpacket
dd 0
msvcrt_table:
printf dd RVA _printf
dd 0
wpcap_name db 'wpcap.dll',0
msvcrt_name db 'msvcrt.dll',0
_pcap_findalldevs_ex db 0,0,'pcap_findalldevs_ex',0
_pcap_open db 0,0,'pcap_open',0
_pcap_sendpacket db 0,0,'pcap_sendpacket',0
_printf db 0,0,'printf',0
niestety sendpacket zwraca -1, czemu?