精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VFP>>〖相关讨论〗>>〖加密〗>>对 VFP 开发的系统进行加密是否必要?

主题:对 VFP 开发的系统进行加密是否必要?
发信人: hunter__fox(雁回西楼)
整理人: hunter__fox(2002-03-16 20:47:23), 站内信件
    对于加密应用程序,我比较倾向于"无需加密"的看法。
    从两个角度来看,我认为都没有必要加密。

    第一,从代码的维护来看,加密后的文件当然不利于反汇编,但加密是什么原
理?
一般都是通过改动一些机器码来实现,如,将短跳转换为长跳转等等。
    也有修改程序的其它特征代码来进行的。这些做法对系统的修改可能是不稳定的。
    而我们一旦使用加密工具,那么,将来我们需要再次修改其中代码时,就只有在
有源代码的情况下才能进行--------一个系统交付后,使用方不一定会认真做这件事
的,而作为一个开发者,我们也不可能将你所写的所有代码全部保存起来。这时,如
果不能反汇编,我们该怎样?我们可能需要全部重来一次。而重复的工作是不是让人
讨厌?

    第二,从加密与解密开看,一个编译器,无论如何,总可写出相应的反编译工具
来。96年时十分流行一种加密工具,可对任何EXE文件加密,声称加密后不可反汇编,
也可防止调试工具通过机器码来跟踪与调试。可是,在当年年底,网络上就出现了一
种针对它的反加密工具,使它完全失去了用处。再看看国外那些大公司的软件,若不
是为了数据的安全,也没使用什么加密编译。Windows 系列,Office 系列,好象都是
没有加密的。

    一个好的程序,可通过其它方法来作到别人难以解读的。以下方法,我们可跟据
自已的能力和目的来选用一种或几种。

    若会VC,我们可将一些功能做成API函数,放在DLL中,别人也就不能用UNFOXALL
之类反编译软件来看来到核心的东西了。
    我们可以在代码中使用一些比较少用的命令,或某些命令的特殊用法,前者可加
长他人解读的困难,后者可引解读者直入岐途。
    我们还可以打一些关键性语句存入一个表格,使用时用宏替换来进行,一般人就
会对之束手无策(表格存放编译后的代码,即PRG的FXP文件内容,表格可编入EXE中)。
    对于一些公司标志等信息,可在代码中多用宏替换,这些常量在一个头文件中声
明,编译后却替换到代码中了,他人想复用代码的工作量也大了。

    如果我们的代码不好,别人还不想看呢,别人想看我们的代码,也是因为我们的代
码写的好呀!多这一角度看,心情也会好些的。

    LUNX之所以受人欢迎,不就是因为它的源代码完全公开吗?
    写程序的人有相当一部分是通过代码进行相互之间的交流的......


----
作者:hunter__fox雁回西楼
※ 来源: 网易虚拟社区 广州站.
※ 个人天地 流水情怀[ccbyy] 灌水精英 NO:003

※ 编程开发 VFP[VFP] 

[关闭][返回]