常用的软件加密方法

上传人:飞*** 文档编号:54150790 上传时间:2018-09-08 格式:PDF 页数:36 大小:75.12KB
返回 下载 相关 举报
常用的软件加密方法_第1页
第1页 / 共36页
常用的软件加密方法_第2页
第2页 / 共36页
常用的软件加密方法_第3页
第3页 / 共36页
常用的软件加密方法_第4页
第4页 / 共36页
常用的软件加密方法_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《常用的软件加密方法》由会员分享,可在线阅读,更多相关《常用的软件加密方法(36页珍藏版)》请在金锄头文库上搜索。

1、本文 为全中文 编写,不需要有PE 文件格式知 识,不需要掌握汇编 或 C 语言的 编 程技巧,一些加密算法直接由易语言提供,特殊的加密算法大家可以翻译 C 语言代 码、汇编 代码或 VB代码。本文中将“ Cracker”一词翻译为 “奸人”,意 为“奸邪小人”之义。本人 对 破解者一向深恶痛绝,有人 说 中国的 软 件 发展中破解者有一份功劳 ,可我 说这话 不对,看看因盗版而产生的微 软对 操作系 统及软件 业 的垄断,国内 软件业在盗版的 夹缝 中生存,如此下去,软件作者没有收益,将不再会有优秀的 软件推出。防止盗版,匹夫有责 ,我想通 过本 书的推出可以加 强易语言用 户的加密能力,将

2、盗版杀死在大家共同的手中。随着采用易 语言 编制程序的人 们越来越多,写一个软件易被奸人破解的情况也越来越多了,有个 别用户 甚至于 怀 疑易 语言是否有安全性。从技术性上来 说 ,我只能 说加密技 术与编程语言无 关,一个 编程语 言的安全性一般指所生成的机器码是否 稳 定、可靠,而不是防破解方面,如果想要很好地防止破解,那么掌握一 门加密技 术 是非常必要的。本书考虑到使用易 语言的用 户大部分 对 PE 文件 结极不太熟悉, 因此没有采用很底层的方法去教学,而是采用与易语言直接表达的方式试图说 明如何加密。本书基本上是按以下的顺序 进行讲解的:破解技 术反破解技 术 1 反破解技 术 2

3、 反破解技 术 3 防改文件文件名 验证LOGO 图片验证窗口 标题验证防改文件大小暴破加壳后数据 签名验证加壳后 CRC 验证文件大小 验证防调试花指令反调试 模块反调试 支持 库内存注册机不进行判断 ,用循 环代替字符串打乱器及时清内存算法注册机RSA 算法数值计 算支持 库其他多处验证 点随机 验证命名刻意 隐蔽本书是集体 创作作品,并集成了多位作者的公开著述,在此一并表示感谢。其中部分文字内容根据易 语言的特性作了修正。文中不署这些作者的姓名,以防止奸人对他们的软 件的刻意破解。本章整理:麻辣教师目录易 语言软件加密技 术1 一易 语言程序加密的目的5 1保持 软件的完整性5 2、保

4、护软 件开发 者的 权益5 二易 语言程序加密的原则5 1加密前要考 虑周到且 严密5 2需要加密的内容要制定一个计划6 3加密 时制作好文档,以备以后的修改6 4 发布前 问一下是否可以正式发布软件了6 三防止程序内容被更改7 1防止 软件名称被更改7 2防止窗口 标题 被更改7 3防止 LOGO 图片被更改8 四防止内存注册机8 1不要使用 简单 判断9 2采用 MD5 对比9 3多注册 码拷贝9 五防止文件被暴破10 1常用加壳 软件介 绍10 2加壳后文件大小验证14 3加壳后数据 签名 验证14 4加壳后CRC 验证15 六防 调试 方法16 1易 语言的花指令16 2反 调试 模块

5、的使用17 3反 调试 支持 库的使用17 4通 过检查 父进程得知是否被调试 了18 5使用多 线程19 七注册机制19 1 简单 注册原理19 2 RSA 算法注册20 3数 值计 算支持 库27 八 给奸人一些教 训27 1 给破解者的教 训27 2 给破解版使用者的教训30 3行 为不要 过火30 九网 络验证 法30 1 实现 的原理30 2存在的几个 问题31 十加密狗加密31 1加密狗的 选用32 2加密狗加壳法33 3加密狗写存 储器法33 十一加密算法策略(暗桩 )34 1易数据 库密码怎 么泻 露了34 2利用吴氏加密算法37 3海 岛挖宝38 4随机 验证39 5不同 权

6、限验证40 6忽悠型的GHOFFICE过滤词语验证 代码41 7 伪验证 技术43 8定 时验证 、延 时验证 、客 户数据集累 验证44 9 验证 与专业 知识 相结吅技 术44 10伪装,用易 语言写自有支持库44 11绝妙的暗 桩设 置45 12发布不完整版本45 13程序、数据 结吅加密技 术45 14自定 义 算法46 15加密框 图46 附录 1 加密已形成密码学48 附录 2如何用 简单 方法防止破解49 附录 3 代码 与数据 结吅技 术50 (正文)一易 语言程序加密的目的在此有必要 说明一下 为何要 为自己的程序 进行加密,初 步认为 有以下两点:1保持 软件的完整性这里包

7、括了文件名不被更改,文件版权信息不被更改,文件尺寸不被更改。很多 时候有的奸人拿到您的软 件,他可以将文件名更改,将文件版权 信息的字符串或图片更改,然后放上自己的东西,如放上病毒可以对其他 电脑 造成破坏,如果放奸人的弹 出广告收益的是奸人,而不是作者。相反,使用这 些软件的用 户 反而将作者痛骂一通,造成声誉上的损失。因此 处于保 护自己的完整 权益来 说,也是有必要保护软 件的完整性。例如 QQ 软件,曾出 现过 多款个人行 为的补丁版,更改了QQ 的一些信息与界面,为此 QQ公司十分 头痛,以后的一些事大家也知道,现在看是破解QQ 的很少了,而且在安装QQ 新版本 时,它会 检查 是否

8、有破解 补丁存在,如果存在就不运行。2、保 护软 件开发 者的 权益也许你会 说,一个不被破解的软件一定是一个没有加密的软件,那 么 看看下文您就会知道,那只是一个理想中的事情,除非您是有钱 了没有事干的人,否则您 开发软 件的目的是什么我是很 难知道的。无论是个人 还是公司,如果生产一个 软件得不到收益,以及后继开发资 金的鼓励,那么无疑这个软件是很 难再 开发 下去的。 这样 的例子很多很多,我不想举例,国内已出现了很多 软件的破解版,而一旦出现了破解,那 么所造成的 损失是非常大的。二易 语言程序加密的原则早先人 们的加密方法是通过 在 软盘 上格式化一些非标准磁道,在 这 些磁道上写入

9、一些数据,如软件的解密密 钥等等。 这种软盘 成为“钥匙盘” 。 软件运行 时用户 将软盘 插入, 软件读取这些磁道中的数据,判断是否吅法的“钥匙盘” 。软盘 加密 还有其它一些技 术 ,如弱位加密等等。随着近年来 软盘 的没落, 这种 方法基本上退出了历史舞台。新的 软件加密技 术也越来越多了。1加密前要考 虑周到且 严密说实话 ,有很多人在易语言 论坛 上发贴 ,说自己用易 语言编 写的 软件有了破解,还非常高 兴,有人用才会被破解,但我想,如果是很高兴的这样 子,除非你的软 件技 术含量很低,或你是微软,想被 别人破解,您不应该 高兴,这 有点象 别人打了你一耳光,你还很高 兴,你的知

10、识产权 或著作 权已被奸人侵犯了,性质很恶 务,后果很 严 重。除了拿起法律步器,劳 命伤财 ,还有就是加 强加密方式。如果被制作出注册机,情况是最糟糕的,作者需要全部更换全部用 户的注册 KEY文件,工作量相当地相当地大。因此一个好的软件保 护发 布前必 须 考虑周到,而且是面面俱到,否 则出一个新版, 发现 一个破解,再出一个新版去修正,那样的事情是枀其弱智的。2需要加密的内容要制定一个计划一开始不明白如何加密的易语 言用 户,一般就找一下论坛 上关于注册的例程套用到自己的程序中, 认为这样 就是加密了,实际 上本 节 所要 讲的是制作一个学习计 划,将所有需要用到的知识与软件都收集到,这

11、个 计划就是一个加密计划,也是本 书所要 讲述的。3加密 时制作好文档,以备以后的修改在加密中有可能使用了多处 加密,因此需要将文档写好,以防止以后忘记,实际 上您可以在易语言中使用 备注的方式作以说明, 这些备注在 编译时 是不会被 编译进 目标 EXE 文件中的,大家可以放心写,同时也节 省了写外部文档的时间 。以后如果找时 ,可以直接搜索找到加密的地方。4 发布前 问一下是否可以正式发布软件了制定一个 风险评 估 标准,以考 验一下程序的 风险 性,被破解的可能性,如果你是破解者,在不知道如何加密的情况下会如何去破解这个软件。有一个参考的 评估标准在下面。共享 软件注册加密自我评测 表评

12、测 方法:以下 问题 ,若答案 为是加 1 分。1. 是否加壳 ? 2. 是否采用两 种以上的不同的工具来对程序 进行加壳 /压缩 ?3. 是否有 软 件自身的完整性检查 功能?( CRC 校验 或其他)4. 与软件保 护相关的字符串是否有进行加密 处理?5. 是否采用了比 较成熟的密 码学算法?6. 是否有多 处验证 点, 调 用多个不同函数或判断多个不同全局标志进行注册 验证 ?7. 是否有随机 验证 的功能?8. 是否采用了在 线验证 功能?9. 注册 过程中是否尽量少地给用户提示信息?10. 是否不依 赖于 GetLocalTime( )、GetSystemTime( )这样 众所周知

13、的函数来获取系 统时间 ?11. 是否有 伪破解功能?12. 是否在 软件中嵌入了反跟踪的代码?13. 是否 对校验函数命名做了刻意隐蔽?14. 是否将注册 码、安装 时间记录 在多个不同的地方?15. 是否在校 验时 故意加入冗余干扰代码来误导 解密者?16. 是否有自己独特的防破解措施?建议:得分在6 分以上才可以正式发布软 件!制作者:中国共享软件联盟?lcraz 收藏分享00 0 顶 踩 wit0240 发短消息加为好友wit0240 当前离 线UID115411 帖子 438 精 华 2 积分 661 鲜花 0 个 鸡蛋 0 个 铜币 18 个 银币 53 个 金币 0 个阅读权 限

14、50 来自 华 夏免 费 版在 线时 间 246 小 时注册 时 间 2007-1-16 最后登 录2010-5-2 高中三年 级帖子438 积分 661 鲜花 0 个 鸡 蛋 0 个 铜币18 个银币53 个 金币 0 个注册 时间2007-1-16 最后登 录 2010-5-2 沙发发表于2009-1-28 12:20 | 只看 该作者三防止程序内容被更改从本 节开 始,已 进入讲解加密的正 题,但可能章 节不必 这样 划分,即按加密/破解的方法来划分,如防反 调试 ,反跟踪,反。但笔者觉得,从一个一个小的知识点的 进入是非常重要的。下面的有些内容是我请教了酒桶醉死的经验 后总结 的,在此

15、表示感谢。1防止 软件名称被更改这里是枀 为简单 的方法:判断(到大写(取执行文件名()= “ 我的程序 .EXE”)在上述中, 为何使用到“判断”命令,而不是“如果”命令呢,大家可以想一下,“判断”命令的代 码安全性要比“如果”命令高,这 里不会 举出一个 汇编 的例子,只要说明一下即可。即“判断”命令是多重分支结 极, 这样 就增加了被破解的难度,因此,大家一定要注意这样一件事情,就是在进行加密比 较时 一定不要使用比较的 语句,那 样 很容易被奸人使用破解工具下断点,那 么正确的做法 应该 是如何的呢, 请看下面代 码 :计次循 环首(到数 值(是否注册成功() ) , )全局 _注册成

16、功= 1 计次循 环尾()通过上面的代 码可以看出, 这 里没有使用判断语句,而采用了一个循环命令去参与。 其中“是否注册成功() ”确 实是返回了一个 逻辑值 ,但通 过 “到数 值() ”命令后就会被为 0 或 1 之间的一个数字,会用易语言的人都知道,一个循环命令中,如果循环数为 1,会执 行循 环中的命令,否 则为0 不 进入循 环。生成机器 码后,奸人会很 难找到判断的 汇编码 ,大大加 强了保护性。上述的基本方法是有了,但请 您将 这个方法 隐藏于您的程序代码行的某一深 处,实际 上加密是各 种方法的 综吅, 现在所教的只是其中的一种,大家要将多种加密方式用于一个软件之中。这需要大量的 时间 学习与体会。加密第 1 定理:“如果()”语句一定不要出现在加密算法中。加密第 2 定理:用“循环 ”类命令代替判断语句。2防止窗口 标题 被更改窗口 标题 是否被 别人更改 这 个也可以通 过与上述同 样的方法 实现验证 。判断( _

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号