查看: 1848|回复: 0

关于软件的加密和解密问题

[复制链接]

该用户从未签到

发表于 2008-8-5 10:58:16 | 显示全部楼层 |阅读模式
分享到:
最近菜农被阶级敌人欺负,无奈再举"红色黑客"的义旗...

在PC端的加密方面,人们一直寻求1个固定不变的"介质",并用它做为加密/解密的依据.

常用的有硬盘序列号(非逻辑序列号),网卡号,加密狗等等...

这是因为它们必须通过专用的编程接口来访问,并得到一组不变且每台不同的序列.

它们都不会因为硬盘的格式化而消失.

虽然他们在注册表存放的信息可以被更改,但通过专用的编程接口读出的数据

可以发现何处被更改,以达到保护软件合法的作用.

MCU端也一样,也要寻求一种不变的"介质",像1-Wire系列的激光刻制的全球唯一码, 还有STM32的唯一序列码(还未实践过,不知是否1片1号)

以上是从加密方的硬件配置来分析的,但作为解密方也有对付的良策...

PC端的加密比较困难,这主要是汇编代码是公开的,如同MCU被暴力解密后的汇编代码.

所以我们都应该站在汇编代码公开的基础上来讨论加密和解密问题,任何想依据

MCU芯片不被破解的想法都是徒劳的,也是单相思的~~~

故加密方应具备的"介质"---不变的唯一码(序列码)应该是必要的.

如果没有这些,"整盘/正片"的拷贝即成现实.

所以加密方在具备了"介质"后,还应该施加有关的代码,使其不能达到,"整盘/正片"拷贝的目的.

迫其对汇编代码进行改写(这是加密方不能阻止的~~~,但加密的目的已初步达到)

想通了---付出应该得到回报~~~(解密也是要劳动的~~~)

故施加防范代码就是加密方最需要做到的...

加密的理念有多种,菜农N十年来历来反对分枝判断~~~

可先行的软件大多采用这种分枝判断真伪,这就给解密者留下了突破口~~~

如果无分枝由将如何呢???

菜农一直坚持对输出流进行加密,这样就不会产生分枝.

举例WORD文档文件:

让任何人使用,但非正版用户看到的全是乱码~~~

难道这种理念不更气人码???哈哈~~~

做为解密方,如果不能"整盘/正片"的拷贝,那么他必定知道加密方施加了手段.

他们当然会采用"钩子"等"卑鄙"手段进行拦截,监听,最后直到破解.

所以,PC端加密还是很困难的~~~理论是解密永远加密的胜利者~~~

很无奈,事实就是如此...

在MCU端就相对好些,首先他要暴力破解芯片,从而拿到汇编代码.

然后通过对串行通讯的数据流拦截分析,对操作步骤的实践,对用户说明书的研究,对被控对象的相应动作表现等等...

这样的轮廓足已破解一半的流程...

所以加密方要少使用分枝,字符串,IO地址等敏感语句...

多用函数指针(散转),对字符串进行些简单的处理而不要直读.

IO地址也用指针(51是没办法了~~~PX,PX.x将告诉敌人自己在干什么~~~)


就写到这里吧~~~继续农忙...

总之不要想自己的程序不被破解~~~

说到另一层被破解应该感到"荣幸"~~~这也证明了你的程序的"伟大"~~~
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2024-12-28 20:43 , Processed in 0.124158 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.