「加密与破解」单机软件 离线加、解密实现思想(加密篇)(单机版加密软件)

「加密与破解」单机软件 离线加、解密实现思想(加密篇)(单机版加密软件)

前言:这里不是教你如何破解别人的软件,也不是教你编程。而是通过口语化的方式和各位讨论应用程序加解、密的思想和应对方法。 程序员其实都明白,无论什么语言其核心语法就那么几十条,掌握一门开发语言也不是非常难。程序即方法,一个工作如何实现,重要的是理清逻辑,方法会了,程序实现不过是用程序语法描述逻辑而已。就好像我多年前不会python,我用其他语言的思想一条一条百度python的对应语句,几天也就入门了。

言归正传,这篇文章就是讨论实现方法的——

Windows单机应用软件加密(授权)一直是软件行业的重要课题,通过网络授权目前是最安全的,但这不是本文讨论的内容。本文讨论的是单机软件没有网络,如何最大化防止破解,又如何被破解的?以我之矛攻我之盾,今天咱们就来左右手互博。

一、加密

最常见的就是:软件生成一个“机器码”也可能叫申请码,其实都是一回事,原理就是软件收集本机CPU、硬盘、主板、网卡等唯一信息算出来的一串字符。用户将这串机器码交给我们软件开发商,我们将“注册码”告诉用户,从而实现软件注册。

1、机器码

这里有个平衡点需要程序员掌握,你把所有硬件信息都拿出来生成机器码,后期可能会导致一个问题,用户升级电脑某个配件时,这个机器码就失效了。你对应以“机器码”生成的密钥(注册码)也失效了,还得给用户重新发放注册码,平白无故增加工作量。

所以也并不是硬件信息集成越多越好,你要考虑哪些配件被升级的可能性最大? 按经验升级最频繁的顺序应该是:硬盘、cpu、内存、主板。由此可见最不经常升级的可能就是网卡(一般网卡还是板载的),似乎以网卡信息为机器码比较妥当,可是网卡Mac被人为修改的难度很低,所以安全性不高。 用什么硬件生成机器码,就需要您根据实际情况平衡了。

特别提醒一点,无论是用CPU、网卡还是硬盘ID去生成机器码,都需要注意,这些配件在电脑中并非唯一,尤其是服务器设备,CPU、网卡、硬盘可能会有很多,也有随时增加或卸下的可能,所以计算机器码的时候需要规避这个问题。比如:枚举所有同类设备取其第一个……否则这部分功能的稳定性可能会出现问题。

「加密与破解」单机软件 离线加、解密实现思想(加密篇)(单机版加密软件)

应用软件常见注册界面

2、注册码

所谓注册码其实就是一个可逆加密的过程,暂时放弃上面的机器码,假设你现在是某团购网的程序员,你要给用户手机下发一条5位数的美食消费码,你该怎么办?这5位数如何生成?如何确保消费者不会篡改其中一位而去白吃白喝?

这就是典型的加密及可逆化过程,例如——

5位数:34579 拆开后为:3 4 5 7=19 取结果最后一位,最后形成34579这个消费码。这就是算法和可逆(虽然商用算法可能更复杂、极度保密),但其原理就是这样。

回到咱们的注册码机制:当我们得到用户的机器码以后,就可以通过某种可逆算法为用户生产注册码了,到了这个阶段作为开发人员需要有个宏观思维,不能把目光局限于当前软件,多想想后期有了其他软件,是否也需要加密和授权措施?所以开发加解密模块时尽量照顾到以后的其他软件。我的密钥机制大体是以下结构生成的注册码——

【机器码 软件名 授权方式 授权值 授权时间 注册码有效期】

将上述内容进行AES DES加密后得出注册码。客户软件得到注册码后,首先逆向处理注册码,将其分解待用:

1、判断机器码是否匹配:不匹配则表示该注册码为伪造。

2、软件名是否匹配:不匹配则表示这个注册码不是本软件(当前版本)的。

3、授权方式:一般包括试用、永久授权、按次授权、按时间授权、工程测试等等

4、授权值:是对授权方式的补充,例如设置按时间授权,这里就得写个时间值。如果按次授权这里就要写数字。

5、授权时间:这里一般放一个毫秒级时间戳,主要防止用户提交完授权后,反复提交,比如:用户购买了按次授权的软件,你也给他了一个99次的注册码,他把软件用了几次,然后又用这个注册码重新注册一次,剩余次数又变成99次了。 授权时间的时间戳其实充当一个唯一ID的作用,一旦这个注册码使用了,就再也无效了。

6、注册码有效期:和上面授权时间异曲同工,主要限制用户应在多少时限内使用这个注册码,如果超过时限,则自动失效。

以上1-6的注册码验证逻辑都在客户软件内预置,最大限度保证了机器码本身的可靠性。

「加密与破解」单机软件 离线加、解密实现思想(加密篇)(单机版加密软件)

我的注册机原型界面

二、应用

经过上述步骤,假设应用软件已经被正式授权,可以正常使用了。软件启动按照预设逻辑,第一步读取授权文件、第二步检查授权文件的密钥是否正确。

一般软件商存储授权文件有三个地方:

1、最常见的是c盘users文件夹里当前用户的AppData下,在windows7以后这里几乎是所有应用软件存储临时文件的首选,优点是写入文件方便、没什么容量限制(C盘有多大你就写多大)。缺点是这里几乎是公开的秘密,授权文件写到这里和就在你软件目录下其实区别不大,都会很容易被人找到。

2、次之是注册表,在这里存软件信息的慢慢少了,因为注册表写入需要权限,容易被杀毒软件拦截,另外写入字符长度也有限制,不利于较长的加密串和软件信息。

3、加密狗:这个玩意现在用得比较少了,主要还是存储授权文件。优点是可以保证授权文件的安全(无论是移动、复制、编辑、覆盖)都会导致失效。缺点是加密狗太麻烦了,如果用加密狗还真不如用在线认证呢。

综上:单机加密无论最终采用什么形式,大体逻辑都是为软件运行的设备授权,然后把授权文件存在某个角落,软件每次启动根据预设的逻辑读取授权文件完成鉴权

对于单机离线加密您还有什么更好的方案欢迎讨论。

欢迎浏览下一篇文章:看我又是如何破解上述加密手段的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年12月20日 下午12:05
下一篇 2022年12月20日 下午12:19

相关推荐

  • 财务软件往来账(往来账款管理软件)

    以往来账款管理软件 随着企业规模的不断扩大,以往来账款管理软件已经成为了许多企业必不可少的工具。这种管理软件可以帮助企业更好地管理过去和未来的订单,确保订单的及时交付和跟踪,从而提…

    科研百科 2024年6月7日
    61
  • 2019项目管理

    2019项目管理 2019年是一个充满挑战的一年,全球疫情肆虐,各种项目面临着前所未有的挑战。在这样的背景下,2019年项目管理实践面临着新的机遇和挑战。本文将从以下几个方面探讨2…

    科研百科 2024年8月15日
    50
  • 河南打造全省“互联网 智慧党建”融平台 党员教育驶上信息化“高速路”

    本报郑州讯 (通讯员 豫组轩)今年以来,河南省委组织部积极推进互联网与党员教育深度融合,实施了以省级主导的“互联网 智慧党建”融平台为主体、各地探索的 “互联网 党务 政务 服务”…

    科研百科 2023年1月1日
    368
  • 蓝图已绘就 奋进正当时丨智能技术“加持” 项目建设加速推进(绘蓝图启新程共奋斗)

    当物联网、大数据、云计算、人工智能、BIM技术遇上建筑业,会发生怎样的“化学反应”?在项目建设中如何达到“人、机、料、法、环”的最优配置和利用?张家窝镇体育公园项目在智能技术“加持…

    科研百科 2022年10月15日
    342
  • 科研项目采购管理

    科研项目采购管理 科研项目采购管理是科研项目中至关重要的一环,它关系到科研项目的顺利进行和成果的质量。合理的采购管理可以优化科研项目的成本结构,保证项目进度和质量,提高项目的成功率…

    科研百科 2024年10月22日
    0
  • 协同办公管理系统(协同办公系统首页)

    协同办公系统首页 随着数字化时代的到来,企业对于协作和沟通的需求越来越高。因此,协同办公系统成为了现代企业必不可少的工具之一。今天,我们向您介绍一款功能强大的协同办公系统,它可以帮…

    科研百科 2024年8月27日
    41
  • 亮“红”品牌 担“绿”使命——岳阳县积极探索林业党建特色

    华声在线12月7日讯(通讯员 周年)今年来,岳阳县林业局党委紧紧围绕“党建引领、绿色发展”目标,以推深做实林长制为重点,以“红心护绿”党建品牌为抓手,推动党建和业务工作深度融合、互…

    科研百科 2023年1月17日
    284
  • 如何面试项目管理人员

    如何面试项目管理人员 面试项目管理人员是一个关键的步骤,因为这将决定这个职位是否值得申请。在面试过程中,需要注意以下几点,以确保面试的质量和准确性。 1. 了解职位要求 在面试前,…

    科研百科 2025年1月7日
    0
  • 科研项目管理存在问题(科研项目管理问题)

    科研项目管理问题科研项目管理问题这一类研究的是课程科学与技术,包括学科知识和计算机科学等相关领域。而现在则是教材与专业理论并存的学术类学科。它是教育部的特色学科,是我国高等学校招生…

    科研百科 2024年7月31日
    64
  • 红圈项目管理软件

    红圈项目管理软件: 高效协作的利器 随着数字化时代的到来,项目管理已经成为了企业工作中不可或缺的一部分。而红圈项目管理软件则是其中非常优秀的一种。本文将介绍红圈项目管理软件的特点和…

    科研百科 2024年7月22日
    73