回 帖 发 新 帖 刷新版面

主题:[讨论] 用“维护精灵”压缩成的.EXE文件能防反编译吗?

由于我原来用的防反编译软件出了问题,今天研究了一天用“维护精灵”压缩软件,感觉使用方便,压缩成的.EXT文件字节更少,所以感觉很好,但不知防反编译的本事如何,特发此帖,与各位高师讨论,望不吝赐教。

回复列表 (共78个回复)

31 楼

诚恳接受大家的意见,“Vfp编译软件”已在文档中去掉“真编译”字样。

“Vfp编译软件”提供了另外一种解决方案,大家可以把它和目前流行的Vfp加密软件对比一下,就知道各自的优缺点了。

个人认为,目前流行的Vfp加密软件的加密强度依赖于加密壳的强度,一旦找到壳的突破点,几乎可以100%还原得到源代码。

而“Vfp编译软件”的强度依赖于系统的复杂程度,如果系统足够复杂,使用的变量名、过程(函数)名足够多,其代码混淆功能使反编译出来的代码的可读性差,难于理解。汇编语言一级的反编译是无法阻止的,但其反编译出来的汇编代码的可读性肯定比Vfp源代码差很多。真正研究汇编代码的应该都是高手了,他首先要考虑一下这个软件值不值得去研究,如果高手都要去研究你的软件,那就恭喜你了,你的软件肯定已经很流行了,功能很多、很复杂、很全面了,你的主要问题是再推广、提高服务质量、不断推出新版本等,反编译、解密问题是次要的,微软的操作系统、办公软件不就是这样流行起来的吗,说到底这已经不是一个技术问题,你可以把这个看似不利的问题向着对自己有利的方向发展。

如果你的软件功能太简单了,看一下你的操作流程,一般的程序员都可以“依样画葫芦”给你再编一个出来(不管用什么语言),加密问题也是可有可无的事。

32 楼

做大型工程,变量名都要按方便可读来定义,否则以后很难维护。若想增加被反编译之后的理解难度,在编译之前用自己做的工具去修改变量名,而不是象CCB2000说的在编程序时就把变量名搞乱(小系统可以)。

再说,现在没有工具去反编译老王的加密和CCB2000的加密,一般人无法辨别他们之间谁更优秀。但明智的VFP的加密软件的作者只是宣称:现在流行的反编译工具不能解密。而自称真编译的肯定不会比老王的好,因为他连常识都没有搞明白,或者是他故意把别人搞糊涂。

33 楼

读了以上两篇,
感到受益匪浅。

34 楼

乌鸦兄有些误解,编程时仍然使用有意义的变量名,代码混淆是在“编译”时自动处理的。

Vfp编译软件也有一个简单的壳,因为简单,所以刚放到梅子论坛,第2天就被脱壳现了原形。但是,脱壳得到的是形如:
FUNCTION a1
b1()
RETU c1()
的代码而已,真正的代码隐藏到dll文件里运行。

高手也指出了,dll里是调用_Execute运行包含一些宏替换的几乎是明文的代码,容易破解。目前,这个问题已改进,大部分代码以经过加密变形的代码运行。

Vfp的反编译问题,其它语言也有这个问题,如Java、C#,它们目前的解决方法也是代码混淆(把变量名、函数名替换为无意义的名称)。为什么它们不怕反编译呢,我想还是系统做大、做复杂以后,就算反编译出经过混淆处理的代码(甚至开源,给你源代码)都难于理解。况且,反编译后学点东西可以,如果完全照抄别人的代码还有侵犯版权的嫌疑。

所以,把软件做大、功能做多、做完善才是最终目标。这样,软件可以卖个好价钱才是硬道理,就算送人也有个人情。当然,在国内目前的环境下,加密还是很重要的。

35 楼

[quote]所以,把软件做大、功能做多、做完善才是最终目标。这样,软件可以卖个好价钱才是硬道理,就算送人也有个人情。当然,在国内目前的环境下,加密还是很重要的。[/quote]
看到CCB2000弟的这句话,心里觉得轻松些。

36 楼


[em45][em45][em45][em45][em45]

37 楼

楼主辛苦,发一个给试试看如何?谢谢!

邮箱:f_xm2000@21cn.com

38 楼

你好:
    你是说发一个用“维护精灵”加过密的文件给你,你试一下能否解密吗?
    还是你也要一个“维护精灵”?

39 楼


呵呵,当然是需要维护精灵了,谢谢!麻烦发一个给我,再次感谢:
f_xm2000@21cn.com

40 楼

[quote]
呵呵,当然是需要维护精灵了,谢谢!麻烦发一个给我,再次感谢:
f_xm2000@21cn.com[/quote]
维护精灵已经寄出多个,都如石沉大海,但愿能听到你的回音。

我来回复

您尚未登录,请登录后再回复。点此登录或注册