科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道共享软件防破经验(2)

共享软件防破经验(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在软件的破解方法里,“暴力破解”(俗称“暴破”)算得上最为普及且行之有效的方式了。对于这种盗窃“知识产权”的行为深恶痛绝,因此将一些个人的防“暴破”经验共享出来,与大家交流和学习。

作者:QQread 2008年1月21日

关键字: 加密软件 加密技术 加密 文件加密 文件夹加密 加密工具

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

 2.除了“加壳”处理外,最好在软件开发的过程中嵌入反跟踪代码,防止“暴破”工具找到软件的注册漏洞。
软件的反跟踪方式较多,比较常见的有利用花指令随机改变关键代码的内存地址。下面看一个例子。

  程序最初的源代码如下:
start_:
xor eax,1
add eax,2
jmp label1
label1: xor eax,3
add eax,4
xor eax,5
end start_

  先将源程序进行编译,然后用W32Dasm进行反汇编,得到的反汇编结果与源代码相同。接着我们将上述源程序作如下修改:
start_:
xor eax,1
add eax,2
jnz label1 \\注意这里,用两句条件跳转代替了:jmp label1
jz label1
db 0E8h \\注意这个无用的字节和源程序的区别
label1: xor eax,3
add eax,4
xor eax,5
end start_

  再把源程序进行编译,然后用W32Dasm进行反汇编。由此得到如下结果:W32Dasm反汇编的结果和事先写的汇编指令不一样,从反汇编的结果中已经无法理解程序的“真实”功能了。这是因为上述改动在W32Dasm的反汇编工作中做了“错误指引”,从而使得它犯下错误。

 

  注册认证部分的源程序是“破解组织”进行“暴破”的突破口,注册认证算法的难易度直接影响软件被“暴破”的几率。增加注册认证算法的难度可以从以下方面入手。

  1.选择相对复杂的算法进行注册开发(现行的加密算法中可以选择RSA算法)。当然,最好的方法还是自己编写算法。如果采用一些常见的密码学的算法,这跟引狼入室没有多大的区别,毕竟这些常见的算法已经被“暴破”高手们研究透彻了,哪里还有安全可言,而采用自己设计的算法就不同了,人的思维有所区别,这就在很大程度上增加了破解的难度。

  2.检查注册信息代码编写得越分散越好。如果将注册模块编写到一起,就好比将财宝放在保险箱里,虽然非常坚固难以打开,但对于开锁高手而言,一旦打开它,里面的财宝尽失。具体的操作方法是:软件在注册时,不要让其调用同一个函数或判断同一个全局标志。

  3.在检查注册信息的时候插入大量的无用运算代码。这样做的目的是误导解密者,让他们以为找到了真正的破解方法,在尝试以后却发现无效。这好比战场上的士兵用“迷彩服”与稻草来伪装自己一样,敌人很难发现他们到底在哪里。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章