重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
理论上,任何软件都可以被反编译,只是时间问题。与汇编、C语言比较VB6属于比较难反编译的了,如果不是做商业软件,学一种编程语言的作用是能方便工作,提高效率。
成都创新互联公司主要从事成都网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务港口,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
VB6编译器确实过时了,而且VB6有自身不足,但是一般软件还是可以做的,而且比VB.net要小很多,VB.net的优点是很多东西都是现成的,比如菜单,可以直接设置出各种效果来,用VB6就要掌握API和自绘技术,或者借用第三方控件。但是通过这样可以提高自己的编程水平,缺点是开发效率低。
如果是vb 的话,基本没有必要加壳,因为vb是不能反编译的,反编译出来的都是汇编码,破解的话不比重写一个新的简单多少。
vb.net可以反编译,一般都是混淆器,.net加壳很多都会不稳定,慎用。
无论加不加壳,代码带内存中运行都是一样的,都可以通过内存调试的方式破解。
最安全的加密方式是虚拟机,基本上无解,不过,代价嘛。。。。。。
VB是直接编译成机器代码的,基本不用顾虑被他人反编译的问题。
如果你说的是VB.NET,那么它是被编译成中间语言的,则可以使用VS提供的一个混淆器阻止他人反编译。
如果说 VB3、VB4 还有可能的话,那么 VB5、VB6 反编译就是完全的痴人说梦了,VB6 已经不是纯粹的解释性语言了,根本不可能反编译出完整的源代码,对于这种语言写出来的程序,只能获得中间语言或低级语言。一般来说 VB6 都是 P 代码,而 P-Code 的代码逆向回来只能自己看,机器是识别不了的。
举个例子:
比如在 VB6 中有一句代码 : MsgBox "Decompile Test."
那么反编译出来的结果就是:
(代码太长不贴,这里贴主要的)
...
mov dword ptr [ebp-58], 004012E4 ; 这里把 "Decompile Test."的地址弄进去了。
...
call dword ptr [MSVBVM60.__vbaVarDup]; 可以清楚的看出来,复制了一份变量的句柄。因为VB里字符串指向的是内存地址。
...
call dword ptr [MSVBVM60.#595] ; 这一句弹出了MsgBox.这里如果跟进去的话是一大堆API 。
...
所以正常反编译(学汇编语言和计算机编译原理去吧)的话,看到段了就会知道这是一个 Msgbox 函数,但是具体显示的内容是什么,那是根本看不出来的。
P.S. 针对楼上[你不懂就别乱说]说的插一嘴,未加壳的 .NET 为何能被反编译出源代码,那是因为 .NET 是托管,而托管有中间语言,所以它的源代码被编译成 msil 这种中间语言而非像 VB6 直接编译成机器语言了。
真正反编译是不可能的,不管是P代码还是本机代码,不加壳也反编译不了,至于什么.net反编译,更是痴人说梦!网上虽有一些反编译软件,但是顶多把你用了哪些控件找出来,至于代码就无能为力了