都是作者偷懒惹的祸! (1千字)
作者没有将调试信息去掉,Method 有源代码的存在,导致被人轻易发现。对大多数面向对象的语言来说,总是对象与事件对应的,表单的空壳都可以给别人轻易得到(VB、DELPHI、VFP等),我们最关心的是代码泄露问题。表单代码加密的方法大概有以下几种:
1、去掉调试信息。
经过这种方法处理后的表单,在VFP的设计环境中看不到代码的存在,且修改后的表单不能正常保存,直至反编译者的硬盘充满为止。但经过重新编译再打开表单就可以看到所有代码。 Compile Form *.SCX
2、重复步骤一,把“重新编译可见代码”的后门堵上。
方法 A:修改代码指针,表单照样正常运行,但无论你怎么再重新编译,照样看不到代码;
方法 B:在 Method 中设下“陷阱”,表单可正常运行且不会让别人看到代码,但只要反编译者企图用重新编译表单的方法来获取源代码的话,表单会自动破坏,再次打开表单时VFP会说是一个无效的编译表单然后退出;
方法 C:在表单中加入伪事件,也就是平常所说的Anti技术了,可以令REFOX反编译时内存溢出,UNFOXALL在反编译时出现蓝屏,使用VFP重新编译时VFP出现非法操作;
方法 D:给编译后的表单作“手术”,采用明文类REFOX8 I+的代码偏移,理论上可做 4295033104 种(位)不同的偏移,不进行(懂得)复位计算的反编译者当然无从下手了。^_^
当然,你可以把A、B、C、D整合在一起用,这样肯定会令反编译者大感头疼,即使对手是一个很有经验的反编译者。最后,祝VFP作者们好运!
Aming
于广州寒冷的夜,想着 Lynn 和惦着 YY 的夜
