热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

易语言程序加密的基本准则与技术要点

易语言程序加密的基本原则涉及多种技术和策略。早期的加密方法主要是在软盘上创建非标准磁道,并在这些磁道中存储关键数据,例如解密密钥等。现代加密技术则更加注重算法的安全性和数据的完整性,以确保程序在运行过程中不被轻易破解。

点击阅读原文




二.易语言程序加密的原则

早先人们的加密方法是通过在软盘上格式化一些非标准磁道,在这些磁道上写入一些数据,如软件的解密密钥等等。这种软盘成为“钥匙盘”。软件运行时用户将软盘插入,软件读取这些磁道中的数据,判断是否合法的“钥匙盘”。

软盘加密还有其它一些技术,如弱位加密等等。

随着近年来软盘的没落,这种方法基本上退出了历史舞台。新的软件加密技术也越来越多了。

1.加密前要考虑周到且严密

说实话,有很多人在易语言论坛上发贴,说自己用易语言编写的软件有了破J,还非常高兴,有人用才会被破J,但我想,如果是很高兴的这样子,除非你的软件技术含量很低,或你是微软,想被别人破J,您不应该高兴,这有点象别人打了你一耳光,你还很高兴,你的知识产权或著作权已被奸人侵犯了,性质很恶劣,后果很严重。除了拿起法律武器,劳命伤财,还有就是加强加密方式。

如果被制作出注册机,情况是最糟糕的,作者需要全部更换全部用户的注册KEY文件,工作量相当地相当地大。因此一个好的软件保护发布前必须考虑周到,而且是面面俱到,否则出一个新版,发现一个破J,再出一个新版去修正,那样的事情是极其弱智的。

2.需要加密的内容要制定一个计划

一开始不明白如何加密的易语言用户,一般就找一下论坛上关于注册的例程套用到自己的程序中,认为这样就是加密了,实际上本节所要讲的是制作一个学习计划,将所有需要用到的知识与软件都收集到,这个计划就是一个加密计划,也是本书所要讲述的。

3.加密时制作好文档,以备以后的修改

在加密中有可能使用了多处加密,因此需要将文档写好,以防止以后忘记,实际上您可以在易语言中使用备注的方式作以说明,这些备注在编译时是不会被编译进目标EXE文件中的,大家可以放心写,同时也节省了写外部文档的时间。以后如果找时,可以直接搜索找到加密的地方。

4.发布前问一下是否可以正式发布软件了

制定一个风险评估标准,以考验一下程序的风险性,被破J的可能性,如果你是破J者,在不知道如何加密的情况下会如何去破J这个软件。

有一个参考的评估标准在下面。

共享软件注册加密自我评测表

评测方法:以下问题,若答案为是加1分。

1. 是否加壳?

2. 是否采用两种以上的不同的工具来对程序进行加壳/压缩?

3. 是否有软件自身的完整性检查功能?(CRC校验或其他)

4. 与软件保护相关的字符串是否有进行加密处理?

5. 是否采用了比较成熟的密码学算法?

6. 是否有多处验证点,调用多个不同函数或判断多个不同全局标志进行注册验证?

7. 是否有随机验证的功能?

8. 是否采用了在线验证功能?

9. 注册过程中是否尽量少地给用户提示信息?

10. 是否不依赖于GetLocalTime( )、GetSystemTime( )这样众所周知的函数来获取系统时间?

11. 是否有伪破J功能?

12. 是否在软件中嵌入了反跟踪的代码?

13. 是否对校验函数命名做了刻意隐蔽?

14. 是否将注册码、安装时间记录在多个不同的地方?

15. 是否在校验时故意加入冗余干扰代码来误导解密者?

16. 是否有自己独特的防破J措施?

建议:得分在6分以上才可以正式发布软件!
推荐阅读
  • 应对.avast后缀勒索病毒:全面指南
    本文详细介绍了.avast后缀勒索病毒的特性、感染途径、恢复方法及预防措施,旨在帮助用户有效应对这一威胁。 ... [详细]
  • 探索古典密码学:凯撒密码、维吉尼亚密码与培根密码
    本文深入探讨古典密码学的基本概念及其主要类型,包括替换式密码和移位式密码。文章详细介绍了凯撒密码、维吉尼亚密码和培根密码的工作原理及加密解密方法。 ... [详细]
  • 本文探讨了在QT框架中如何有效遍历文件内容,并解决了一个常见的错误,即文件内容读取为空时弹窗无法正常显示的问题。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • Java实现文本到图片转换,支持自动换行、字体自定义及图像优化
    本文详细介绍了如何使用Java实现将文本转换为图片的功能,包括自动换行、自定义字体加载、抗锯齿优化以及图片压缩等技术细节。 ... [详细]
  • RedHat 系统下配置国内 YUM 源以替代官方收费源的方法
    本文详细介绍如何在 RedHat Linux 中安装并配置 YUM 包管理器,并通过使用国内镜像源来解决因未购买官方服务而导致的更新源限制问题。 ... [详细]
  • 解决vCenter vSphere HA初始化失败的问题
    本文探讨了在集群中遇到的所有vSphere HA主机状态显示‘无法正确安装或配置vSphere HA代理’错误的情况,并详细介绍了排查与解决步骤,包括检查HA初始化错误及安装HA代理的常见故障排除方法。 ... [详细]
  • 理解CLASSPATH环境变量及其在Java类定位中的作用
    本文详细探讨了CLASSPATH环境变量的功能,特别是在早期版本的JDK中如何通过设置该变量来指定Java类的位置,以及现代JRE如何简化这一过程。 ... [详细]
  • Python数据类型6 字典
    字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包 ... [详细]
  • 深入解析Android中的SQLite数据库使用
    本文详细介绍了如何在Android应用中使用SQLite数据库进行数据存储。通过自定义类继承SQLiteOpenHelper,实现数据库的创建与版本管理,并提供了具体的学生信息管理示例代码。 ... [详细]
  • 本文探讨如何利用Java反射技术来模拟Webwork框架中的URL解析过程。通过这一实践,读者可以更好地理解Webwork及其后续版本Struts2的工作原理,尤其是它们在MVC架构下的角色。 ... [详细]
  • 本文探讨了在C语言编程中,如何有效避免多文件项目中的重定义问题,通过合理使用预处理器指令和extern关键字,确保代码的健壮性和可维护性。 ... [详细]
  • Java 架构:深入理解 JDK 动态代理机制
    代理模式是 Java 中常用的设计模式之一,其核心在于代理类与委托类共享相同的接口。代理类主要用于为委托类提供预处理、过滤、转发及后处理等功能,以增强或改变原有功能的行为。 ... [详细]
author-avatar
百脑汇惠州店_956
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有