请教高手:如何防止别人对我编的软件(生成的XXX.exe)进行反编译?

解决方案 »

  1.   

    根本不必担心,VB程序编译为本机代码后,不能被反编译。(记住,不要编译为P代码,这是可以被反编译的)我现在知道能被反编译的语言有:java、vfp
      

  2.   

    请教fxy_2002(阿勇)兄:
      能不能讲一下怎样才是将VB程序编译为本机代码,怎样又是编译为P代码?能不能再讲具体点,具体如何操作?十分感谢!
      

  3.   

    我目前用的是VB下“文件”菜单下的“生成XXX。.exe”,请问,这属于您说的前一种还是后一种?能反编译吗?
      

  4.   

    在“工程 属性”中,有一个“编译”页,里面就有“P代码”和“本机代码”的设置。
    VB6默认就是本机代码编译!
      

  5.   

    MSDN中有关于这个设置 的详细说明:------------------------------------------------------
    “编译”选项卡(“工程属性”对话框)
       该选项卡设置工程编译时的条件。选项卡选项
    “编译为 P-代码”用 p 代码来编译工程。存储在 .vbp 文件中的设置值将被覆盖掉。“编译为本机代码”用带有选定最优化的原码来编译工程。存储在 .vbp 文件中的设置值将被覆盖掉。 “快速代码优化”- 通过指示编译器在速度和大小之间首选速度,使 .exe 和 .dll 文件的速度最快。编译器可以减少许多功能上跟机器码序列相同的构造。在某些情况下,这种不同提供了用大小来换取速度的权衡交换。
    “小代码优化”- 通过指示编译器在速度和大小之间首选大小,来使 .exe 和 .dll 文件最小。编译器可以减少许多功能上跟机器码序列相同的构造。如果不选中这个选项,代码可能就会大一些,但是速度会更快一些。
    “非优化”- 无优化地编译。
    “流行的 Pentium Pro™”- 优化所创建的代码,优化方向是使之更有利于 Pentium Pro™ 处理器来处理。如果在程序中使用了这个选项,则意味着仅仅是为 Pentium Pro™ 处理器所创建的代码。用此选项产生的代码仍然可以在更早期的处理器上运行,但是工作起来性能不是那么好。
    “创建符号化调试信息”- 在可执行文件或者 DLL 文件中产生符号调试信息。用此选项创建的可执行文件可以用 Visual C++ 或者具有 CodeView 风格调试信息的调试器来调试。设置这个选项将为可执行文件产生一个带有符号信息的 .pdb 文件。 
    “高级优化”显示“高级优化”对话框。“DLL 数据地址”给程序设置一个基地址,从而覆盖 .dll 文件的缺省位置(在 0 X 10,000,000 处)。操作系统首先试图在指定的或者缺省的位置加载一个程序。如果没有足够空间,那么系统将重新定位该程序。