I am an seasoned C# developer, with extensive knowledge in reverse engineering, disassembling. I have several shareware products of my own - your project feels kinda like eating my own dog food to me. ;)
I can secure your software using several commercial-grade protectors & obfuscators i.e. DotFuscator, SmartAssembly, Xenocode, Themida, Eziris and others. Additionally, (since you mentioned having multiple DLLs) I can bundle all the libraries & executables into a single packed .EXE file.
Let's face the truth: No software is uncrackable. Having said that, I can make your application well-protected - it will be extremely hard to circumvent or reverse engineer. At the very least, casual crackers will be thwarted.
I am highly skilled in software protection mechanisms. Moreover, I have written my own anti-debugging, anti-patching code (in CodeGear Delphi) for my own commercial applications. I believe I can deliver the best solution to your problem!
Thanks and have a nice day!