1、用C语言实现对FOXPRO程序的加密用C语言实现对FOXPRO程序的加密杨懂峰,王绍军2,谭学元31.深圳市城市交通规划研究中心, 518031;2.湖南华南光电仪器厂, 4151053.北京科技大学信息工程学院, 100083)摘要:文章提出了FOXPRO程序加密的一种实用方法,具有较高的安全性,能防止程序被盗、拷贝、破密。关卜键词:FOXPRO;加密;解密;安全性0 概述利用 FO XPRO开发的管理系统保密性较差。开发人员在开发完成应用程序之后,对防止程序被盗、拷贝、破密等方面往往大费周折。常规做法是在主程序或相关的程序中嵌人口令识别程序,其方法固然可行,但对于有一般计算机操作经验的人员
2、来说,又显得软弱无力。本文就利用C语言实现对FOXPRO程序加密谈一谈看法。当用 FO XPRO开发的程序运行正确后,我们可利用FOXPRO本身提供的功能统一进行编译,形成一个“EXE”文件,然后用C语言对其文件进行全文加密。即用自己定义的一组序列字符与文件进行加、减、与、或操作,形成加密文件。件,这样就达到了保密的目的。因而最后交给用户的有三个文件。它们是解密文件、已进行加密处理的文件、组装运行执行文件。各个应用程序的原文件和调用方式如下所述:加 密 :( 文件名是CCI.Z.C )U de fi ne N ULL 0#i nc lu de ( s tdio.h )#i nc lu de(
3、stdlib.h )#i nc lud e(p rocess.h )# inc lu de ( io.h )static int DW7=8,5,9,1,3,8,6);/要 进 行 加密的自定义的序列main(int argc.charargv)F ILEfp。fl;if(fp =fopen(argv1.rb)=NULL)/要 进 行 加密的原文件igo toxy(20,8);printf( 原文件不存在!加密不能进行,请退1 加密方法具体 的操 作方法如下:首 先 ,把 FOXPRO的程序调试好,形成FOXPRO 的“EXE”可执行文件(如FOXB.EXE),然后对这个文件进行加密,变为加密
4、文件(FOXB.DAT),同时设置一个解密程序(文件名为CCZI_.E XE) ,可以对已加密的文件进行解密。再用C语言开发一个组装运行程序,把我们的解密过程、程序执行过程和删除解密程序的过程形成一个整体文出”):exit(0);if(f l= fopen(a rgv2, wb)=NULL)刀 加 密 后的文件gotoxy(20,8);printf(”形成新文件失败!不能工作请退出,);exit (0);int k; char ch,c;k=o;while(!feof(f p)if(ki6)k=0:c= fgetc(f p) :/加密处理、h =c + T)Wk;收稿日期:2的。一11-22.
5、34 .电脑与信息技术ii2001年第1期fputc(ch_fl);fclose(f p);f c losek十+; (fl) ; 调用方式:CCLZ FOXB.EXE FOXB.DATFOXB.E XE:FOXPRO的执行文件FOXB.D AT:加密后的文件2 解密方法解密:(文件名是:CCZ1.C#define NULL 0#include (stdio. h )#include (stdlib. h )#include(p rocess.h )# include (io. h )static int DW7=8,5,9,1,3,8,6);刀解 密 的 序 列 必须与加密序列相同ma in
6、(inta rgc,charargv)(FI LEfp ,fl;if(U p= fopen(a rgv1 , rb)=NULL)/要 进 行 解 密 的数据文件(go to xy (20.8);pri ntf “ 数据文件不存在卫加密不能进行,请退 出 ”) ;exi t( 0 ) ; if(f l=fopen(argv2,wb)=NULL)刀解 密 后 的 文 件(go to xy (20,8);pri ntf ” 形成新文件失败I不能工作请退出” );ex it( O) ; int k ;charc h,c; k=o;while!feof(f p)(if ( k)6)k=0;/解 密 处
7、理 过程正与加密过程相反#include (io. h )void WIN(int sx,int sy,int ex.int ey,int bk,int c ol or )(window (sx,sy,ex,ey);textbackground(bk);clrscr();textcolor(color);)main)(in( k;WIN (0,1.80,25,1,12);gotoxy(20,8);printf( 系统正在进行初始化,请等待“);k=system(”CCZL FOXB. DAT FOXGL.EX E ) ; / /解 密 过 程k=system(FOXPRO FOXGL.E XE
8、);刀调 用 FOXPRO程序k=system( DELF OXGL.E XE);刀 删 除 解密后的文件调 用 方 法:MAIN这 个 文 件是我们移交给用户的主执行文件:用户只要在命令提示符下打人MAIN.E XE就可完成解密、运行、删除等操作。制作安装盘:(文件名INSTALL.C )include (stdio.include (stdlib.h)h)# #c=fgetc Up );fputc(ch.fI);ch二c一DWk;k -l-+; fclose (fp ); Hose (fl); 调用方式:CCZL FOXB.DATFO X G I- E X EFOXB.D AT:己加密的文
9、件FOXGL.EXE:解密后的FOXPRO执行文件主调文件:(文件名MAIN.C )#include (stdio. h)#include (stdlib. h#include (process.h、#include(p rocess.h )# include (io. h )voidW IN( ints x,ints y,inte x,inte y,in tb k,in tc ol or )(window (sx,sy,ex,ey);textba ckground( 6k);clrscr();textcolor(color);main ( )(int k;WIN(0.1,80,25,1,12
10、);gotoxy(20,8);k=system (c:”);k=system (md c:馆I);k=system(md c:准1 dbf);k=system(copya :main.ex ec :gl );k二system( copya :clzl.ex ec :馆1);k=system( copya :foxb.da tc :g1_);k=system(copya :readme.ex ec :g1_);电脑与信息技术2001年第1期35k=system(a:arjea:dbf.ar jc : gldb f ) ;调用 方 法:A:IN STALL这种 操 作 的前提是把要移交给用户使用的
11、三个文件和操作说明文件存放在A盘根目录下,把数据库文件存放在A盘的DBF目录下。给用户安装时只要使用INSTALL就可完成整个程序的安装运行。3 结束语通 过 以 上加密过程形成的加密文件是任何反编辑的软件不能进行反编辑的,若有人要对其进行破密也非三言二语就能达到目的,从而达到对软件的一种保护。但同时我们也应该知道,这种加密文件是不能直接运行的,在运行时需要解密,解密的过程是加密过程的反向操作,运行完毕之后再删除这个文件,从而达到保密目的。上述的加密程序不仅适应FOXPRO的程序,而且适用于对数据库加密和其它软件的加密,可以给用户开发程序形成一种安全保护。上述操作的4个C语言程序是用TC2.
12、0编写,FOXPRO程序是用FOXPRO FOR DOS 2.5编写,均已运行通过。参考文献:1 Foxpro 2.6语言详解.学苑出版社,1994.2 Visual C十+使用速成.清华大学出版社.1996.(上接第17页)4 LNX与UCI的区别LNX和UCI都是MATRIXx表 3部程 序 接 口 。 但 在使 用 过 程 中 ,两种机制的使用方 法 不 同 、 程 序 调 用 的 出 发点不同、Xmath在 调 用 过 程 中 所 扮 演 的 角 色也不同,从表3提供的外可看出这两种接口机制的区别。LN X与UCI的特征比较比较数据结构函 数创建运行UCI启动Xmath;LNX被Xma
13、th启动使用相同的数据结构 externTypeUCI:必须使用函数XmathStart和XmathStop;一定不能使用函数XmathMainLNX:必须使用函数XmathMain:一定不能使用函数XmathStart和XmathStop用户程序必须包括头文件xmathlib.h ;必须连人Xmath.libUCI:利用命令一call program -name开始调用XmathLNX:LNX程序可以像其它MatliScrip:函数一样使用5 结论LN X 和 UCI技术很好地实现了专业化仿真软件与通用编程语言的无缝联接。这种接口技术既是众多专业化软件拓展市场的一种手段,也是软件发展的趋势。
14、不过,LNX和Uci的接口技术仍嫌复杂,还应进一步简化。对用户来说,简单实用才是他们选择的标准。参考文献:仁1 IS I.M ATRIXxV ersion6 .X Document.I ntegrated21仁3谭浩强.C程序设计.清华大学出版社.1996.李薇.徐国标.O penGL人门与提高.西南交通大学出版社.1998.4 Sun Z ha ow ei. X uG uo do ng .Th e i nt eg ra teds ystem forsim u la ti on an d evaluationLin Xiaohui. Can Xibindesign.of theAdvances in Engineering Software.analyse. systemsmall satellite.2000(31):437-44 3 .SE.B fernandez.J ie Wu.a nd Haifeng Qian. ACOMBIN ED FUNCTIONAL AND OB J EC TORIENT APPROACH TO SOFTWARE DESIGNInternational J ournal o f (Applications.2000.22(2):,omputersSystem.36.Inc. 1998.电脑与信息技术2001年第I期_
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1