They cant block packets. When you play, you send packets all the time. When you use a tool, you send packets. Its the same thing. They can try to block packet sending from external programs by adding encryption to the packets, but its only a matter of time until someone finds the encryption key and is able to send/receive packets.
For example.. L2.Net is an ingame/outgame bot that sends/receives packets from client. This is possible because "slothmo" (the programmer) found the blowfish key to decrypt/crypt packets.
Blocking packets is impossible, blocking programs isnt, but its easy to unblock, just recompile the source after changing some stuff and release it to people again.