关于VB.NET的注册码机制与反破译

关于VB.NET的注册码机制与反破解
各位大大,最近我写了一个程序,加上了注册码功能

每次登录,程序会通过HTTP POST的方式和服务器验证注册码,登录后还会有个线程发送心跳包是否一码多机在使用。

并且使用了动态加密的方式,避免了封包篡改实现破解。


但,现在我比较担心别人使用汇编,逆向工程啥的破解我的软件

我用WINHEX看了一下自己软件的EXE文件,发现我自己的函数和控件都是明文的,感觉很容易就会被破解。

我想请教一下,VB.NET写的程序究竟要怎么才能防止被破解呢? 加壳软件加壳后就运行不了了,很无解,自己又对破解和反破解一无所知。 

我希望各位大大能给我点思路,究竟怎么才能做好一个大致的反破解呢? 不求固若金汤,但是也不希望太轻易的就被破解掉了。


------解决方案--------------------
可以用混淆工具对.NET程序加密,增加它反向工程的难度。特别是将函数、变量等用无意义的名字替换,降低反编译后的代码可读性。但是任何程序,只要被CPU执行,都可以被反汇编,是否会被破解只能看你的程序的价值了,像著名的商业软件(Photoshop、Windows、AutoCAD、Oracle等等)没有一样可以避免被破解的厄运。
------解决方案--------------------
vs有自带的混淆工具Dotfuscator,可以混淆你的程序,降低反编译难度
------解决方案--------------------
http://download.csdn.net/detail/dalmeeme/3355504

另外建议使用1.7版本的intellilock,网上搜下,有破解版。