防破解概述
1、破解软件的方法:
·反汇编调试 模拟出注册机的算法
·算法模拟不成 直接爆破 删除掉验证的代码
·根据程序注册成功之后写的注册项 生成出REG注册文件
2、软件加密方式
防破解主要是用于商业软件 加密注册 一般三种验证方式:
1、本地加密 2、网络验证 3、本地+网络验证
本地加密不需要联网就可以使用 但是防破解能力肯定不会很高 而且只能在一台电脑上使用
网络验证可以在多台电脑上使用 但是它需要联网
那具体加密方式该选什么呢?
就拿屏幕录像专家来说 网上他的注册机一堆一堆 但是不知道有没有人发现
用网上注册机生成的注册码注册之后录制时间长了 录像上会有 屏幕录像专家未注册
的水印 这样别人如果看了这个视频 就等于给屏幕录像专家做宣传
但是真正去购买的注册码 是不会出现这个水印的 不管我们有没有去购买正版注册码
反正他正版68块钱一套 这个也让他们赚不了多少 他们赚在哪里呢 ?
有那么多论坛找他们定做教程加密器啊
至于如何选 就得看你的意愿 像屏幕录像专家这个明显是放长线钓大鱼 他收68块钱 肯定
也有人买 但是更多人找他定做软件了
如果你是很想通过单单的卖这个程序赚钱 那么你可以使用 本地加密+网络验证的方式
如果你也想放长线钓大鱼 你可以试着免费出去(当然我这个等于白说),或者用单单的本地加密
或者网络验证
怎么去防 就得根据你的加密方式 来去防 这个我们这节课先不讲
选好加密方式是防破解的准备!!!!!!!!!!!!
3、防破解原理与方法
原理很简单 就是限制破解者去反汇编你的程序 调试你的程序 尽量的混淆他
不让他们轻易的看出你程序反汇编代码中的猫腻
方法:1、加壳 2、暗桩 3、在程序中加多个校验 在多个位置加入注册验证
4、防破解原则
·不要把太多的精力浪费在防破解上 做好软件功能才是第一
·尽量的去定做软件 不要开发商业的 可以开发免费的商业软件为自己带来更多的订单
·没有可以永远不被破解的软件
5、开发程序之前的准备
·一定要写一个很详细的开发规划 要精确到每一个窗口该实现什么样的功能
防破解之加壳
加强壳 强壳的话 脱掉是很难的 但是强壳一般都是收费的 一般1、2000RMB左右 如果真的想开发出去买一个不算什么
这里推荐几个: SE(强烈推荐 基本不会被破解http://www.safengine.com/)
不过这些都是加密壳 就是使用之后不需要你自己写加密 自动就给软件加上去了 不过这种因为开发出去的壳都是商业用途 所以破解者一般都有办法对付
我这里推荐加压缩壳之后易语言里在编写校验 压缩壳一般在易语言程序中使用之后会减小很多体积 因为易语言开发程序体积较大 压缩之后一般200多KB的空白界面程序
推荐压缩壳:北斗 这个压缩不错 我这里也下载了 北斗加壳之后 本身不报毒的也不会报毒(并不是百分之百) 像加密壳 有的就报毒
不管网络验证 还是什么验证 都可以加上一个压缩壳!
防破解之防爆破
爆破是一种很常见的破解方式 爆破之后的程序有如下特性:
1、体积会发生改变
2、MD5值会改变
3、CRC校验
爆破软件的原理:我们程序输入注册码之后 不管注册码对或错 会弹出信息框之类的 破解者就利用这个特点找到你判断注册码是否正确的代码 然后进行删除
爆破软件的流程:
1、首先脱壳 压缩壳直接使用PEID解压缩
2、脱壳之后用OD等反汇编软件进行反汇编
3、然后查看ascii码
4、记住输入错误注册码弹出的信息框的内容 比如说是 注册失败 4个字
5、在ASCII码找到 注册失败 4个字
6、双击更进 来到这4个字对应的地址
后面我们就不说太多 大家会知道 破解者就是从注册失败这4个字发现软件的注册秘密的 而且他们在爆破软件之前还会输入一次错误的注册码
根据爆破的特性 整理出如下好用防破解方法:
1、爆破后体积会改变 验证程序体积
2、爆破后MD5会改变 验证MD5 这里我推荐拿程序的MD5当做一些必不可少的数据使用 比如:MD5中的数字作为XX子程序的参数
3、加入一个时钟 如果X秒内不输入正确的注册码 程序自动销毁
其它的值也可以使用 例如:CRC SHA1之类 大家可以混合在一起使用
防破解之防调试
整理出如下方法:
1、插入花指令
2、加入检测OD WIN32DBG等调试软件的代码
3、给程序打乱码
4、检测父进程
5、记录代码执行时间
6、尽量把代码写乱
防破解之暗桩
暗桩在发布程序之前必须要设置 为软件被破解做准备!!!!
什么是暗桩?
所谓暗桩。。就是在你破解了注册或者登陆阶段后。。发现部分功能不可用……即在程序使用过程中还有检测注册和登陆情况的地方,如果检测不通过,则无法正常使用。
暗桩它具备的特点:
1、隐蔽性 2、实用性
比如暗桩:一个财务软件 破解者爆破了我验证的代码 不需要输入注册码了
但是我在录入财务信息的时候再进行一次注册项的验证 如果存入信息大于300条 就提示要输入注册码
其实形象的来说 暗桩就是在程序其他地方加入验证和功能的限制
暗桩触发之后怎么做? 不要太直接的让对方知道触发了暗桩
1、弹出注册窗口 要注册
2、可以判断其存入的财务数据条数 如果大于多少条 自动加密
3、可以直接关机 或者 清空回收站之类
一定不要使用什么侮辱性的话!!
暗桩不能设的太变态 过分 比如:绝对不能使用小磊说的格式化磁盘
这样的话 如果验证系统出了什么BUG 把正式版客户的磁盘也格式化了怎么办
造成的影响很差 软件的口碑也会很差 就很少会有人去使用你的软件
暗桩随处可以加 最好可以把暗桩子程序加在主功能DLL里 这样 他如果删除了DLL 功能也没法用了 一般可以添加在多个位置 加上不同的暗桩 随机检测
然后可以添加一个时钟 或者使用线程