[doc] 单片机应用程序的软件加密技术_第1页
[doc] 单片机应用程序的软件加密技术_第2页
[doc] 单片机应用程序的软件加密技术_第3页
[doc] 单片机应用程序的软件加密技术_第4页
[doc] 单片机应用程序的软件加密技术_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机应用程序的软件加密技术n2=recc()f=ii,20say.柯印时行距?”getprpict99readpi=i320/pr一1o)/22,20say每页打印多少条记录?.getpppict.99rangi.pi3,20say从何条记录开始打印getntrangl,n24,20say从何条记录开始打印getn2rangi.n25,20say打印多少份.getfreadsethlttorecno=ni.and.recn()<=n2gob0ttclea4,2oy正在打印请等待.setdevitop瑚ejeco,.0saycrm(96)+chr38+str(pr,2)+邮l(96)ff

2、ldowpalff<-fdotopy一1gowhil.not.eof()1,0saycm(27)+.ib+lbi2,.0saylb2+(2d+ia3.osaylai4,0sayla2nn=idowhilnn<-pp.and.not.eof0prow()+i,0sayla3prowo+i,osay&pskip,nn=nn+ienddprow()+i,osayla4prow()+2,l/2一10say”?str(y,2+.y=y+ll32o/pr一1,osay一i32o/pr,0sayejecenddff=ff+iendd.o,0saychr(96)+(舶.r(38)+20+c

3、hr(96).setdevitoscreuseretu参考文献1谢鑫华,谭扬林,陈宏明等,rdaaseiplus原理与应用,水利电力出版社,1988,3一单片机应用程序的软件加密技术安徽机电学院电气系一周4争一.亨i富,近年来单片机以它较高的性价比,在工业生产的过程控制和智能化仪器仪表等领域,越来越得到广泛的应用,已有不少新型的智能化产品相继问世,.并取得专利权.用单片机组成一个控制系统或智能化产品对,最大的特点是硬件结构简单,容易被仿制因此,对单片机的应用程序进行加密,使用户很难分析出源程序结构,阻止用户对系统的复制,这对广大单片机应用系统的研制者来说具有十分重要的意义.=赣.加技术单片机应

4、用程序常以机器语言形式存放在系统的fprom或rom中.对应用程序的加密就是使用户无法得到其程序结构和清单.机器语言级的姗密过程有硬件稚软件丽种方法.硬件椰密一般是通过改变系统硬件的结构或连线米对系统程序加以保密,但这种保密方法一般都可用逻辑分析仪,通过分析各硬件引脚间的逻辑关系,加以解密.因此,软件加密技术是_种常用的加密手段,而软件加密的技术构思多种多样,本文仅就笔者的工作实践体会,针对反汇编程序介绍几种适甩子mcs-48和mcs-5n单片机应用系程序的软件加密授术,使用户无法通过反汇编程序来得到程序清单,以实现对系统程序的保护.,(一)改变程序模块间的连接方式,实现对程序加密.1在单片机

5、磁用系统的程序编制中,常采用结构程序设计和模块化设计方法,一个系程序常由一个主程序和多个子程序构成.因此,我们可改变各模块之间的存放方式,来实现对程序的加密.1?在程序模块间插入加密字节81龟这种方法就是通过在两模螃的连接处有意插八加密字节,使反汇编程序无法反汇编出系统实际运行的程序.如有8013单片机两个应用程序模块mk1和mk2为:;,mk1100022retj100175db75h.1oo2eomovxa一dpt,r11003f574mov74,a_mk2100522ret在这两个模块连接处插八一个加密字节75h后,反汇编得到:;,mk11o0o22petl00175,eo75move0

6、h,#f5h110047422mova,#22h/mk2.;j可见模块mk2内容完全改变.在使用这种方法.时,关键是对加密字节的选择.选择时要考虑到可以造成下一模块的改变.通常选择二字节或三字一节指令的首字节作为加密字节,加到下一个程序模块前的一个或两字节中.一个程序i申各模块间选择多少加密字节,视具体情况而定.?2,使程序中的某些字节为两个程序模块共享若在两模块连接处,存在有重复数捂时,可使用共享技术来实现两模块之间的连接,造成反汇编程序输出错误程序清单如砉有8031单片机的两个程序模:i:mk3.mk4为:1-,?;mk310ifii”boajmp10e0h一1021e.o_lmovxa,

7、dptr1+一1022f574.mov74,.amk41024.ret,.i这两个搓_块连接处102oh单元与l021h-元的内容相同,.这样我们可利角共享技术,使1020h单元内容e0h为k3,mk4个模块同使用,使源程序的连接变为:,.,一主1mk310rfi1e0ajmp10e0hl1020e0?movxa,dptr1.1021f574mov7”4,akm4ll02322.pett,.j?8z则反汇编后源程序变为:,;:i01f1ie0ajmp1oeqhmk31021f574mov74,a11o2322.ret从而使源程序模:.jcmk4中的movxa,dptr指令摹失.(二)用返回指令

8、取代无条件转移指令,破坏对pc值的跟踪.采用上述的方法,可破坏反汇编程序输出的源程序清单,防止用户得到完整的程序结构,以实现对系统保护.但目前有些用户通过可以跟踪pc值内容的反汇编程序来获得系统程序清单.对这种反汇编程序,上述的两个方法将无能为力.但我们可用返回指令取代无条件转移指令的方法,来破坏反汇编程序对pc值的跟踪,实现源程序加密.如若85单片机某一程序申含有无条件转移指令为:,100:jmp2o4h;则可用如下的程序段来代替:1ooc7mova,psw.10117inca.102d7movpsw,a1035307anla,#07h,105admovr0,a10660adda,ro107a0.movr0,a108b004movro,#o4h10a培incro10bb002movro,#o2h.10d.22retr使用这种方法就是利用ret对pl程序状态字,不产生影响,帝psw又决定了堆栈指针的特性,首,先改变psw的内容,再将转移地址o204h送入堆栈中,再用ret来实现程序的转移,从而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论