开发背景

又一次是因为需求激励而开始的集中精力学习-开发模式。
开发,并且迭代了数个版本的管理系统面临扩大规模的应用需求,因此软件保护版本管控就必不可少,而首先想到的就是做一个注册机,首先将软件保护起来,进行一台计算机一个授权码的操作,这样至少就不会无节制地扩散。

这里插一句题外话:软件/产品的产权对于个人或者公司来说都是很重要的,一旦开发的软件进入产品化流程,那么产权意识就应当引起重视,并不是一个Demo随便扩散的意识了。当然,这和开源精神是不矛盾的,我后面也会对软件的架构、各模块进行分析,各接口进行介绍,因为软件开发的技术点是共享的,否则我也不可能在几天“折腾”出这样的授权工具。


软件授权注册工具介绍

  • 提取计算机唯一识别信息;
  • 整合提取信息生成【请求码/机械码】;
  • 加密策略支持;l 将【请求码】对应到相应版本的加密策略下,生成【注册码】;
  • 一个注册码仅对一台计算机授权有效。

说起软授权、注册这样的字眼,肯定大家第一反应想到的核心就是:加密。是的,加密是一个很关键的节点,对于软件的可复杂或可简单的级别区分,就在加密的难易程度上了,什么样的算法加密?md5、base64、RSA非对称加密……甚至是异或、加一减一,都是你所选择的安全加密策略
当然,再厉害的算法,理论上是可以破解的,但是引入破解成本变量,有些算法在现实上就可以认为不可破解。不过我更偏向于从另一个角度考虑,安全——并不就纯粹依靠技术的力量可以实现的,而是依赖规则的制订,界限的分明,也就是这一篇分享要重点介绍的注册软件的流程。正是因为有流程上的划规矩,定界限,安全加密策略才能作为整个流程上的节点,去夯实架构,而不是唯一的防火墙,单薄地支撑安全。
这也是我后期会秉承开源精神,分享API和一些关键代码的原因,因为安全重点不在于单一的某个节点,而在于整个框架的组合而带来的安全性。

  • 以下是一个最简化的注册软件使用场景描述:

    在使用原理上就是这么简单,而国内外接触的一些专业软件的授权,像微软Office,SkylineGlobal等专业且庞大的授权,其应用场景的原理也如此,而专业且高级的原因是因为各个节点都有专业的研究和投入,不只是加密算法,也包括授权策略的丰富(授权时间、授权支付等)、版本的管控、硬件信息提取、跨平台支持等等因素。
    所以,授权注册工具,是一个可大可小的工程,我现在做的也并非要一步到位的丰富,个人知识有限,仅能最大限度地在软件设计上将各个模块提炼出来,支持扩展性。

从界面上介绍流程

  1. 用户打开软件(未授权):

  2. 用户发送【授权版本号】+【请求码】到管理员处(任意渠道);

  3. 管理员使用授权工具进行授权:

    授权工具可使用同级目录下的【RegisterCfg.json】进行简单定制化配置:
    图标路径、标题、当前生成策略版本号。

{   "LOGO_ICON" : "Logo_ico.ico",   "LOGO_TITLE" : "CCMS-RegisterManager",   "VERSION_NUM" : "6CD6FEFA-A532-4B6E-9E9F-9F8306D58EC5"
}
  1. 管理员对应加密版本策略生成对应【注册码】:
  2. 用户收到【注册码】后输入,点击确定,若匹配,则正常进入正版授权软件:

    授权成功情况,OK后正常进入【被保护的软件】。(注:若无授权时间策略保护,则无需每次注册)

错误情况,(无法启动被保护软件,直到输入正确验证码)


明确各个节点的流程介绍

RegisterCore节点:

细分节点:

  • 加解密库
  • 安全加密策略机制
  • 设备信息提取

WarrantDialog节点:

细分节点

  • 验证逻辑
  • 交互窗口
  • 本地验证存取与解析

用笔和纸画出来的方法,最大激发了头脑风暴,随后再用专业工具整理出来就是工作量的问题了。
(若字写得太丑,画得太不清楚请见谅,联系我,及时改进)


下期预告

结合最后两幅图的“头脑风暴”画法,将节点梳理清楚了,下一节则重点结合图,介绍API、代码。同时分享在开发中遇到的一些技术难点和坑。

联系我

欢迎提出问题、交流技术,本人经验尚浅,尽最大能力去学习、理解、梳理,而后分享,若有纰漏请联系我,共同学习。
若有相关的需求开发或需要提供API,欢迎联系。

授权注册-软件保护工具(1):聊聊流程相关推荐

  1. 钉钉注册阿里云账号全流程

    最近需要阿里云服务器,使用手机钉钉APP注册好像可以省去实名认证步骤,扫一扫即可注册简单方便,阿小云分享详细注册流程: 使用钉钉注册阿里云账号,手机钉钉APP扫一扫即可注册阿里云账号,云钉一体允许阿里 ...

  2. .net core 源码解析-mvc route的注册,激活,调用流程(三)

    .net core mvc route的注册,激活,调用流程 mvc的入口是route,当前请求的url匹配到合适的route之后,mvc根据route所指定的controller和action激活c ...

  3. 四款主流测试工具的测试流程

    主流测试工具的测试流程 WinRunner 1 启动时选择要加载的插件 2 进行一些设置(如录制模式等) 3 识别应用程序的GUI,即创建map(就是学习被测试软件的界面) 4 建立测试脚本(录制及编 ...

  4. ETL工具Informatica开发流程 综合应用 电信通话计费系统开发项目案例10

    一.准备数据源 在Oracle数据库中创建 OLTP用户导入源数据 oracle_oltp_data.sql 在Mysql数据库中创建表,插入产品相关数据 mysql_product_data.sql ...

  5. 最新国外YouTube油管申请开通收益从注册到收款整体详细流程!

    什么是Youtube? Youtube是全世界最大的视频平台,也是最世界大部分国家的最大视频平台,它的流量非常的惊人. 每个月的访问量320亿人次左右,相当于每天都有10亿人次来访问youtube,它 ...

  6. 微信小程序手机授权注册号接口TP6

    手机号授权注册 小程序前台js里 getPhoneNumber (e) {wx.login({success:ret=>{console.log(ret.code);wx.request({ur ...

  7. 下次再也不用清理注册表工具了

    测试软件装得越来越多,最近也发现电脑越来越慢了,总写做一些处理,清理了空间,整理了碎片,还是不太爽,最后还是试了一下清理注册表.        几年前用过一次清理注册表的工具,好像是兔子吧,不太记得了 ...

  8. 《硬件仿真(Emulation)EDA工具前端设计流程》

    硬件仿真(Emulation)EDA工具设计流程总结,仅介绍必要设计步骤,具体详细步骤由于公司机密,暂不详细说明. 文章目录 前言 1. Emulation 1.1 什么是Emulation 1.2 ...

  9. 产品和设计师的福利! 作图工具、原型流程、截图工具大集合

    产品和设计师的福利! 作图工具.原型流程.截图工具大集合 2019年01月17日 17:30:00 weixin_33920401 阅读数:5 设计工具 Acorn - 一个像 PS,全面的功能集的图 ...

最新文章

  1. windows server2008R2故障转移群集
  2. C++tim Sort提姆排序的实现算法(附完整源码)
  3. PS教程第三课:PS界面
  4. JQuery 加载 CSS、JS 文件
  5. 【英语学习】【Daily English】U13 Holiday L01 I have been waiting for it for ages!
  6. [原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等...
  7. 对Chrome自动发送邮件插件的改进
  8. 网络-网络编程模型步骤
  9. jmeter+ant+jenkins接口自动环境搭建
  10. 串口调试助手哪个好用_哪个员工考勤系统好用?选择打卡助手就对了
  11. 环境配置《安装gcc编译器》
  12. 新手如何使用JavaScript读取json文件
  13. Java面试----2018年最新Struts2面试题
  14. 配电室智能辅助控制系统
  15. 在unity中使用Excel表格
  16. 不踩雷不将就 京东智能产品30天无忧退
  17. 如何横扫棋坛?AlphaGo 先随机扔了一个骰子
  18. BUUCTF刷题记录 Harley Quinn
  19. 任务调度之Elastic-Job
  20. MPSOC之8——启动及错误处理

热门文章

  1. threejs加载obj文件
  2. 四大顶级PE 四大投行(顶级PE/VC/IB)
  3. 华为云搭建web服务器(WordPress)
  4. 80386读书笔记之保护虚拟地址存储方式(二)
  5. 【IoT】 产品设计:微信小程序如何适配不同机型
  6. MBus协议详解(一)
  7. python开发mbus程序_MBUS 和MODBUS 什么关系啊
  8. 基础薄弱考生考研英语初期复习方法推荐
  9. TensorFlow图片分类示例
  10. python量化策略——最简单的动量策略,简单趋势追踪策略