文件中的数据,进行比对,判断校验是否正确 [5,6] 。 4 结论和未来工作 本文主要实现了授权、加壳和反调试三个模块相互配合 的软件保护框架,使得用户的软件保护比较全面和均衡。授 权模块尝试使用了USB Key来存储密钥等机密信息的方式, 把用户的授权和加密算法的密钥等信息存储到USB Key,同 时将常用的DES[3] 、3DES等加密算法抽象成授权和加密的接 口,在授权和加壳的模块中进行调用。软件加壳部分将PE结 构的重要信息进行处理,引入USB Key部分提供的加密接口, 使得针对PE结构的加密更加简洁,也通过程序模块之间配 合来实现程序的安全性。反调试模块主要是一些在调试原理 基础上的标志检测和调试事件的处理,同时也包括Windows OS提供的进程管理等一些方面的功能。这部分被编译成为静 态库,方便在汇编和C++程序中进行调用。 本文也尝试采用了一些特殊的技术,如结构化的异常处理、 文件或代码的校验等。这些技术的使用使得软件的安全性有很 大的提高,这些技术的使用使得软件的流程或行为产生了很大 的变化,使得软件的保护有意想不到的效果。Windows有很多 未公开的技术,也有很多优秀的技术机制,对这些技术的深入 研究和灵活运用,可在安全方面提供很大的帮助。另外,软件 安全的技术涉及到从程序到系统的各个层面,从高层的文件结 构、程序语言,到操作系统和处理器的机制,到处都渗透着软 件攻防的竞争和对抗,因此软件的安全和保护应当全面,形成 保护体系。软件安全保护技术的研究是一个长期的过程,需要 众多软件安全研究人员的共同努力。 |