欢迎来到天天文库
浏览记录
ID:58606962
大小:5.21 MB
页数:70页
时间:2020-10-18
《世上最完整的软件安全解释以及实例.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、世上最完整的软件安全解释以及实例--------------------------------------------------------------------------作者:_____________--------------------------------------------------------------------------日期:_____________第2章软件安全本章介绍如何对应用软件进行保护:●简单实现软件的功能、时间、日期次数、路径限制;●软件的防拷贝方法;●软件的注册;●软件的补丁、汉化;●软件的防篡改、加密方法;●软件的加密。这
2、是本章涉及的问题。2.1软件安全概述软件安全(SoftwareSecurity)是指在软件在受到恶意攻击的情形下依然能够继续正确运行及确保软件被在授权范围内合法使用的思想。软件安全在于保护软件中的智力成果、知识产权不被非法使用,包括篡改及盗用等。研究的内容主要包括防止软件盗版、软件逆向工程、授权加密以及非法篡改等。采用的技术包括防篡改技术、授权加密技术等方法。共享软件是以“先试后买”的方式销售的具有版权的软件,根据软件开发者的授权,可以先免费下载试用共享软件的试用版本,认为满意后再通过本站向软件开发者付费成为注册用户,享用完整的功能和服务,共享软件的保护尤其涉及到本章的内容。
3、2.2共享软件功能限制共享软件常用的功能保护包括日期限制、按钮或菜单功能限制、连续运行时间限制、运行次数限制、设置水印等。1、日期限制通常的做法是安装程序预先将终止日期设置在某个位置,可以是注册表、磁盘受保护扇区、某个文件中。程序每次运行时,先检测日期。检测日期可以通过调用函数或取网络时间。1)取本机时间voidGetLocalTime(LPSYSTEMTIMElpSystemTime);lpSystemTime是一个SYSTEMTIME类型结构,可以得到本机的时间。2)获取网络时间用前面的方法提取时间,但用户可以修改时间,虽然我们可以HOOK函数SetLocalTime来禁
4、止修改时间,但还是可以通过BIOS时间。下面的代码使用套接字向网络时间服务器发送请求,获取时间。structNTP_Packet{intControl_Word;introot_delay;introot_dispersion;intreference_identifier;__int64reference_timestamp;__int64originate_timestamp;__int64receive_timestamp;inttransmit_timestamp_seconds;inttransmit_timestamp_fractions;};BOOLGetNet
5、Time(SYSTEMTIME&newtime){WORDwVersionRequested;WSADATAwsaData;//初始化版本wVersionRequested=MAKEWORD(1,1);if(0!=WSAStartup(wVersionRequested,&wsaData)){WSACleanup();returnFALSE;}if(LOBYTE(wsaData.wVersion)!=1
6、
7、HIBYTE(wsaData.wVersion)!=1){WSACleanup();returnFALSE;}//这个IP是中国大陆时间同步服务器地址,可自行修改SOCKE
8、Tsoc=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);structsockaddr_inaddrSrv;addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(123);NTP_PacketNTP_Send,NTP_Recv;NTP_Send.Control_Word=htonl(0x0B000000);NTP_Send.root_delay=0;NTP_Send.root_dispersion=0;NTP_Send.reference_identifier=0;NTP_Send.reference
9、_timestamp=0;NTP_Send.originate_timestamp=0;NTP_Send.receive_timestamp=0;NTP_Send.transmit_timestamp_seconds=0;NTP_Send.transmit_timestamp_fractions=0;if(SOCKET_ERROR==sendto(soc,(constchar*)&NTP_Send,sizeof(NTP_Send),0,(structsockaddr*)&addrSrv,sizeof(a
此文档下载收益归作者所有