ARP0c is an ARP redirector and bridging engine. ARP requests from various sources in a switched environment get false ARP response packets which point to the host running ARP0c.
Packets from these hosts are bridged with an internal engine to the real destination address to allow normal network operation and keep TCP connections alive.
Normal operation without interception may look like this:
+--------+ +--------+ +-------+ | HOST1 |- - - - -+ SWITCH +- - - - -| HOST2 | +--------+ +--------+ +-------+ | | ********* * YOU * <-- this host gets not packets *********Here you sit on a switched network, just getting ARP requests and other kinds of broadcasts without seeing any interesting packet. This is what a switch is supposed to do.
+--------+ +--------+ +-------+ | HOST1 |- - - - .+ SWITCH +. - - - -| HOST2 | +--------+ \--------/ +-------+ \ | / \ | / ********* * ARP0c * <-- this host gets all packets *********The fact that most systems use an initially received Ethernet frame as source for the ARP cache entry leads to one-way interceptions, where one of the communication partners sends the frames already to ARP0c and the other still uses the real ethernet address. This is not a problem because by the time the cache expires the other direction is intercepted too, or just create a seperate file to intercept the connection anyway.