互联网软件如何防破解

     国内推广软件,你要面对的最大问题莫过于软件被破解了。很多软件作者反映说,原来软件在被破解前交费注册的人还不少,但被破解后收入就直线下降,连成本都收不回来。您想,有了免费的东西人们还交那个钱干什么?
    在这里,我借鉴了一个软件作者的防破解经验:发行1.0版时2.0版已经写的差不多的。发行1.0版时要把1.0版的防破解或者注册算法写的简单些等着别人去破解。一但出现1.0的破解,等待几周,这几周的时间足以使网上1.0的破解版遍天下。

然后,分析破解过程更改2.0版算法(层层加密,复杂再复杂),虽无法根除破解但可以浪费破解者的时间和耐力!一般情况下,在网上一搜你的软件已经有破解版了(1.0的)新的破解者很少会再去破解,何况2.0版本更复杂些。我的一个软件用了此法,

推出一月后被破解组织破解,公开破解过程及注册算法,并做成破解教程。其实破解从某种意义上说是帮我宣传了软件。我在一个月后推出早已经写好的新版本,还注册成了“特别版”以迷惑想要破解版的人。使用上述方法后至少在我更新了几次软件后的今天仍没出现破解。但在网上搜破解版、特别版、注册版到处都是,可没一个是真的。其实一些破解高手只是想试探自己的能力,破解一个软件后,一般会把目标定在下一个软件上。不过如果你的软件成为人手必备的工具,此法怕是不灵了。
 另外,从技术上讲也有一些防破解的方法。假设你的注册部分有300行,你可以分成30个inline函数调用(一定要inline),func1(),func2()... func30(). 将他们随意放到程序的各个部分,一定不能放在一起。不要用Memcpy等常用系统调用拷贝注册码,尽可能自己写,像Memcpy很好写,性能差点无所谓。经过编译后inline函数展开,注册部分和其他代码混在一起,他要写出注册机就很困难,因为要向在几十万甚至上百万汇编代码里找出有用的注册部分那简直就像是在大海里捞针。

另外注册码也不要放在一起,假设你的注册码是12位,千万不要用一个12位的数组放注册码,你可以在程序的不同位置定义12个全局字符变量,每个放一位,这样注册码在内存就不连续了。最好再加密处理一下(简单的字符异或就可以),验证时再解密。只要破解者找不到你验证结束的地方,暴力和Loader破解也没有可能。很重要的一点是不要用连续内存保存验证用到的变量,尽量将用到的验证临时变量分散定义在程序的不同处,再在验证中,不断转移一些值到其他变量中,对付暴力和Loader会比较有效。

没有必要用复杂的加密算法,更容易成为追踪的目标。只要你将注册部分隐藏的足够好,也没有漏洞,你花1天写的加密算法,破解者可能会花100-1000倍的时间破解。大部分人都会放弃。你将注册做在一起,就像将你的财宝放在现代保险箱里,虽然非常坚固难以解密,对于开锁高手两分钟就打开了。对于一些比较专业的破解者采用上面的方法也是很有效的但是,还是要避免一些低级失误例如:不要在内存中直接出现注册码和明显的注册码比较部分不要给用户太多的有关注册验证的信息,也不要接收到注册码后立刻就进行比较。在软件的不同功能处实现验证时的好处还有就是不会立刻执行到验证代码注册码,可以分多次验证,也可以分成几部分验证,还可以分成几层验证验证时,可以尽量多执行一些无用的操作,加上一些象递归之类难于调试追踪的代码,但在其中要穿插实现软件功能的代码,否则人家直接就跳了过去。反正就是越不引人注意越好,亦即越乱越好。其实要想彻底防止破解也是不现实的,除了研究一下破解方法,在发布前加壳外,并采用以上所说的方法外,不断升级程序也是比较好的方法。
总之,推广软件对于搞惯了技术的软件作者来说一开始会走一些弯路,但只要不断学习成功者的经验,不断吸取自己失败的教训,你也会成功的。最后,祝大家个个都成为共享高手。 
时间: 2024-11-14 19:53:51

互联网软件如何防破解的相关文章

.NET软件防破解方法源码混淆

其实我们只要在软件设计的关键几个环节,利用专业的控件进行保护,就可以保证软件的安全.我们可以在软件设计时和运行时对软件代码进行保护.在设计时的保护,主要的保护手段是,混淆源码:在运行时的保护主要的手段是加壳程序和授权控制.下面我们分别对混淆.加壳.授权控制的方法和采用的控件做一一讲解. 源码混淆 源码混淆就是通过对程序源码的分析,改变源码的原始面貌,降低源码可读性,可对函数甚至流程进行混淆.虽然目前很多开发工具都能进行简单的混淆,不过实用性不大,采用专业的混淆控件对程序源码能起到有效的保护,有些

【转】Android 防破解技术简介

http://www.cnblogs.com/likeandroid/p/4888808.html Android 防破解技术简介 这几年随着互联网的不断发展,Android App 也越来越多!但是随之而来的问题也越来越多,这其中比较令人头疼的问题就是:有些不法分子利用反编译技术破解 App,修改代码,之后再重新编译上传到应用商店!到时候,如果用户下载了这些应用,就可能造成个人信息或者金钱的丢失!所以,作为开发者的我们,有必要学习一些防止被破解的技术手段了! 简介 现在想要破解一个 App,

单机 & 弱联网手游 防破解、金币修改 简单措施

手游常用破解方法 对于一个弱联网或者单机游戏,可以从以下方面去破解: 1.找得到存档文件的,直接破解修改存档文件. 2.找不到存档文件,就在游戏运行时借助一些软件来修改数值,比如用各种修改器手游助手来修改金币. 3.找不到存档文件.数值还修改不了,就直接反编译,Java就看Java.C#就看IL.C++就看汇编. 文章转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn 手游防破解对策 好了,防破解我们也从以上方面来做 (或者还有其它

手游类App安全防破解攻略-先来做个漏洞分析吧

2014年6月初,爱加密高调推出免费自动化App安全检测平台,这是国内首家自动化智能App安全检测平台,也是爱加密推出的一个重磅产品,甚至在目前整个互联网行业,包括移动互联网行业还没有这样智能完善的服务平台出现,其应用方向和行业前景相当乐观.       只需一键,专业简单,让风险漏洞无处遁形 目前来说,移动应用开发者众多,他们可能不知道自己的应用是否安全,是否容易被他人破解进行二次打包.出于此类需求,爱加密推出爱加密免费漏洞分析平台.该平台集成了目前黑客最常用的各种破解方法与思路,模拟黑客攻击

新手如何制作防破解网络验证系统?

百宝云介绍 百宝云是一款云服务器产品,专为快速打造个人云端服务器的云应用产品.你不用懂任何高深的技术,只需要懂百宝云的脚本语言即可,百宝云的脚本语言支持中文开发和英文开发,一个开发菜鸟也能轻轻松松上手开发自己的网络服务,百宝云提供完善的全套服务.强大的第三方接口可以和任何开发语言对接,开发者无需变更自己熟悉的开发环境,仅仅需要按照百宝云语言规范,通过com组件,Get或者Post的方式即可轻松访问自己的云端服务器. 百宝云提供的不仅仅是一种虚拟机或者一个操作系统,而是全面的,统一规划的网络服务架

软件安全防破解之字符串加密

原文:http://bbs.84zcb.com/showtopic-3430.aspx 大家知道提示框和字符串是新手破解的关系,如果我们能将敏感的字符串进行加密传输,那么就可以杜绝90%以上的破解新手.下面以注册宝的安全码和软件编号几种不同的加密方法对比防山寨效果(易语言为例,其他语言类似) 明文未加密写法 .版本 2 ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

单片机 防破解 技术论述

单片机防破解,近几年专门针对于产品设计,最终在产品程序加密这一块,发现是一个非常实际的问题,公司研发产品几十万,竞争对手花几万破解复制你的产品,而其他竞争对手能够使用更低的成本复制已经被破解的产品,让你的产品在短短1个月内成为烂大街的货:在这种市场风气下非常阻碍具备创新能力公司的发展:因此在3个月各种询问以及沟通过程中,从如何破解单片机系统到如何防止破解进行说明,希望能够帮助具有相同需求的朋友:在此利用市场上破解率最高的STM32单片机来说明.一.破解单片机系统,分为两步:1.从单片机中将二进制

App山寨疯狂 爱加密Apk加密平台防破解

App山寨疯狂 爱加密Apk加密平台防破解,Android系统由于其开源性,眼下已占领全球智能机近80%的市场,远超微软的WP系统和苹果的IOS系统.然而也正是由于开源性,Android盗版App在国内横行泛滥,盗版App通过广告骚扰.窃取账号.盗取隐私.远程控制.恶意扣费.购物欺诈等影响用户的体验,侵害用户利益.文章出处:www.ijiami.cn App山寨疯狂 爱加密Apk加密平台防破解,面对严重的App山寨横行的现象,国内第三方针对Android应用加固的平台爱加密,致力于保护App安全

Unity3d 调用 C++ 函数 实现加密防破解 (Android向)

因为Unity 采用C# 作为主要语言,代码编译之后作为DLL存在与执行文件中,这就给我们带来很大的一个问题,反编译非常容易. 如何反编译Unity游戏的代码: Unity打包生成的安装包,我们随便下载一个游戏,解压APK,来到 assets\bin\Data\Managed 这个目录. Assembly-CSharp.dll Assembly-CSharp-firstpass.dll 你在游戏中编写的代码就存放在这两个dll中. 把dll拖放到MonoDevelop中,稍等片刻,就能看到dll