前言

大家好,我是喵叔,一名开发政企项目多年的资深程序员,目前在广联达从事招投标软件项目的开发。这套课程是我今年主推的 地铁 系列课程的第二个专题,也是该系列的首个收费专题。之所以写这个防破解的专题,是因为我今年在做技术咨询的过程中有相当一部分的人问我怎么防止自己的桌面端产品被破解。因此我利用空余时间总结出了一些防破解的知识和方法,以专题的形式发出来。下面我们就来大致了解一下本专题的结构和内容。

Tip:地铁系列专题主打文章简短,因此每篇文章的阅读时长我会控制在地铁运行两站到三站的平均时长。

零、课程结构

  1. 入门
    在入门阶段,我们通过课程的 前言来对防破解专题有个大致的了解。并且通过注册码原理这节课掌握注册码的实现原理。这两篇文章尤其是第二篇文章,对于我们理解和掌握后面的课程至关重要。
  2. 做个计算器
    在这一阶段,首先开发一个简单的计算器,接着学习如何获取计算机的硬件信息(cpu编号、硬盘编号和主板编号等),然后利用获得到的硬件信息(主要是硬件编号)来实现注册码的生成,最后我们就要完整的实现一机一码的功能,并且讲解如何防止共享机器码。
  3. 开始防破解
    在第三阶段,我们就开始防破解了,我们首先要了解破解和防破解相关的知识,接着要了解杀毒软件为什么会对我们开发的软件误报,其次讲解怎么解除杀毒软件的误报,然后讲解如何绕过我们前面设计的注册机,接下来就要开始反编译我们设计的计算器了,最后我会通过四篇文章来讲解如何一步一步的增加破解难度。
  4. 不怕被破解
    第四阶段,我们要掌握在软件被破解后我们该如何反击。

    一、大致内容

    在本专题中主要讲解如下内容:

  5. 软件破解、防破解、加密以及反编译的相关知识;
  6. 杀毒软件误报与误报特征,以及如何解决误报;
  7. 通过不同技术手段来提高软件破解难度;
  8. 当软件被破解后如何进行行之有效的反击。

    二、特别说明

    在这里我要特别说明一下,首先本专题所讲的内容并不能保证软件100%的防破解,其次也不能保证软件100%的不被杀毒软件误报,最后因为本专题部分文章涉及破解相关内容,因此请不要尝试破解非自己开发的软件(商业软件和非商业软件都不行)。

    三、面向人群

    本专题主要面向 C# 开发人员,以及对软件防破解感兴趣的人员,当然如果你其他编程语言的开发人员也没关系,因为本专题主要传达的是软件防破解的思想,并非特意针对 C# 语言。

    四、如何学

    学好这门课程,你要:

  9. 具有任何一门可开发桌面软件的编程语言的基础;
  10. 按照每篇文章代码一步一步的敲出来;
  11. 千万不可跳课;
  12. 自己动手做一遍。