前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于shudepb的搜索

powerbuilder程序防止破解的办法[1]_PowerBuilder_程序开发学院_希赛网 希赛网主页 · 在线阅读 客服热线:400-777-1218 文章 资料 帖子 博客 视频 图书 学员入口 视频课程 快速报名 软考在线辅导 软考面授 通信考试在线辅导 通信考试面授 PMP考试 计算机等级考试 C/C++/VC Java .NET/C# Delphi PB Web开发 PHP Python Perl Ruby JSP ASP 嵌入式开发 游戏开发 移动开发 数据库开发 您现在的位置:希赛网 > 程序开发学院 > PowerBuilder > powerbuilder程序防止破解的办法[1] powerbuilder程序防止破解的办法[1] www.educity.cn 作者:程序开发学院 来源:希赛网  2013年05月23日  文章评论   鉴于任何程序都运行cpu指令并可被反编译成汇编码,也就是说,理论上,程序都是在裸奔,所以天下无不可破之程序。所以这里讨论的防止,只是一定程度上的,比如提高破解难度,拖延时间,让破解者挫折感增加等等。   一.pb的现状   pb从5-12,其pbd文件,和dll文件格式的版本都为0600(pb5尚不知晓,还没找到pb5的程序),结构大致一样。所以pbkiller的作者只要还有时间,他可以在一到三个月就做出最新的版本。这个软件比起shudepb来说更灭绝人性,因为作者将其免费(最初好像也是要卖钱的,无奈,没有采用shudepb那样的网络计算,使得其被破解了。从这一点看也蛮有意思。),从而使得无数的好事者参与到破解的学习中。因为我们写的程序众多,高手只对商业价值高的软件感兴趣,而且以它为职业糊口,而初学者只是随便找个软件练手。我朋友有个软件被初学者拿来在里面放了一些新文件,其实根本没破解到,但是宣称为"破解版".破解方法写到:输入随便的注册码,提示出错,然后就得到真正的注册码了…如果不出错,多试几次即可。结果呢?程序根本就不在输入注册码的地方判断正确以否,你说搞笑不搞笑。pbkiller目前最高版2.5.8只支持6-9,我看过,代码反编译比较漂亮。错误肯定存在,但已经很完美了。   "错误"只有对自己的项目反向时才会头痛,对破解者而言,他们只想看注册部分的算法。   shudepb是商业版,而且几千块一套。这一定程度对pb有利,毕竟初学者是不会去买一套没用的工具来学习破解的。而且demo版它限制代码的长度,非注册版看不全代码。还真是厚道。所以如果你不打算应对反编译软件的话,那请把代码写在100行之后(具体是不是100行限制,自己测试看看)。这是最简单办法(pb10以上)。   至于"pbd"还原器,原理是用pb本身的方法得到dw的反编译代码。这个不叫做破解。pbd中的dw本来就可以直接用,而pb又有函数可以得到语法。这就没什么新鲜的了。pb的本身函数是不会提供功能给你能反编译得到源码的。是绝对不可能的。   在网上搜索破解pb程序的帖子,通用的说法是:程序没法用OD来调,而且pbvm里也不好跟,都是要用到pbkiller这个利器,这在一定程度上说明,对付菜鸟,使得其反编译成功的几率小一些,就能更好的保护自己辛苦劳动的软件。   目前几种破解的方法:   a. 看程序算法和思路,直接破解算法,公布算法或者写注册机。(如果代码一览无遗,这个方法其实最简单,但是也有很多菜鸟看不懂pb代码,还在网上到处问。可笑)   b. 有人尝试搜索pbd中的关键代码,用ue修改pbd中的字节。(这个有难度,做的人不多,而且多数菜鸟只限于pbkiller会用而已,对pbd文件不了解。据我自己观察:对pbd有了解的话,很多地方可以用ue直接改。),比如修改一个字节可以把+变成-,把=变成<>,有点恐怖。   c. 对于外部dll的调用,有破解者提议写假的dll来爆破之。让其返回一个已经注册过的序号的依据,如磁盘号。有所谓的免狗程序应该屏蔽了对狗的调用或者搞了假的dll.所以有必要多处验证文件的md5值。只要他没法修改pbd文件。   以下是我猜想的一些做法,是否切实可行,待大家提意见,一个软件总是新出时容易被破解,如果一年都没被破解,以后版本升级,变来变去的,破解也就更少了。   我晓得一个朋友的软件,他一年连出十多个版本,新版一出,两三天之内就被破。他用的是delphi写的,他真可怜。二进制编译的软件及asm之后也许更容易破解吧,只要调试就搞定了。就像pb一样,破解得非常快。   pb程序其实也占几个优势:多是商业软件,商业用户还是有购买的习俗。练手者不太容易找pb程序来破解,因为共享软件很多。一般是你的用户用得还可以,又不想给钱,就会有破解的念头。pb做的都是管理软件,破解高手对商业价值不高的软件不感兴趣。再者pb程序难以调试,知道的人都不想弄。加之sql之类的,显得异常繁杂,远没有破解一个二进制编译的,通用的,使用量大的软件有意思。   代理商破解的可能性更大。   二.我的几个构想的方法(都只针对增加难度,让静态pbd反编译难度加大,让pj者知难而退)   1.能采用machinecode方式的尽量用机器编译,单一exe文件,用pbkiller和shudepb都无法看到代码,只能看到变量。pj知难而退。   2.我有几个项目,代码超级大,在当初用pb10的时候就没法编译成机器码。现在的pb11因为有string和blob的bug没法编译成机器码,而pb12刚出来,还没测试。不过代码太多似乎没法编译成单一machinecode的exe.那就只能用p-code.   所以第二点就是欺骗,在程序下放跟exe同名的假的pbd文件。比如程序为main.exe,放一个假的main.pbd给pj者去调试。当然不一定是假的pbd,你随便找一个pbd,用ue删除一些二进制数字即可,做的跟真的一样。   pbd可以放在在window系统目录下,或者path定义的任何地方。或者之前文章也提到,写他几十个注册函数,放在不同的pbd里,到底是哪一个,只有你晓得,搞死他。librarylist也可以做做文章。因为同名对象,都依照lib顺序来查找。   3.程序启动时抓一个时间,启动结束后,抓一个时间,如果中途有停顿,是否可以判定在被调试,我想你可以删除他电脑上任何东西。反正都是破坏,别让他悠闲的调试程序。我作为一个写代码的人,我认为有必要这么做。他要QJ你,自然也允许你反抗。某个杀毒软件当年就这样把破解版搞得吐血。   4.注册码输入时,不做任何提示和判断。只是写一个标志,程序启动时在title那里显示为"正式版"或者注册版,但是实际上,我可以延期验证或者随机验证。呵呵,这样也许把破解者都搞得没办法。因为他只要输入一次注册码,不管是什么字符,都成了正式版。而至于什么时间验证,除非他有那个耐心,否则也觉得破解麻烦。对破解者而言,抓个特征值是个小case,而要一行一行地看代码,估计吐血而死。   5.ini中的注册码调入内存和真实注册码对比时,我认为将其复杂化后放入一个数组或者blob中,注册码不是在程序启动时,而是在多时,多点,多处,重复的校验。我的想法,在100个地方校验,其程序破解的难度就可能让pj者早退却了。   而且,把注册码和系列号都跟程序的变量或者功能,或者数据返回条数等挂钩,做的非常隐蔽,不再是体现在一个if比较的地方。那就能大大减少破解的可能。因为我们知道,破解者无法修改pbd,而且不熟悉pb代码。如果搞得太复杂,可能他早就不干了。   6.我以后发行程序准备放100个或者1000个pbd在程序下,破解者要反编译就去反吧。看到100个pbd,就算我搞pb几年我也知难而退了。看到1000个pbd,立即倒地吐血而死。   7.如果主程序不能编译成单一machinecode的exe,则某些关键功能可以用run外部程序方式来运行,而外部程序用pb单独编写一个小的程序,小的程序是完全能编译成功的。   8.费解算法和写法。比如把一个数放入数组,然后在其他地方,其他时候有意无意去改变,或者复制,移动,再到某些时间去执行某些操作。或者引发一些限制。破解变成去看你的代码,我想没人愿意继续下去。   9.如果代理商破解你的软件,你就让客户对他产生不信任即可。买他的破解版就会被骗钱!做到这个足矣。而且你得一棍子把他敲死。   10.发若干个自己做的"破解版",其实都是测试版,这样使用者找遍网上也下载不到真正的破解版。很多国内网站转载时都是煞有介事地称其为"破解版,绿色版,完全版",其实都是测试版,搞笑!   11.暗桩:检测用户越过注册部分,不动声色地做限制。或者在多处多时深层次的地方,或者细节的地方做限制。比如数据汇总等于0.或者是其他单据隐蔽的错误等。   12.攻击:生成病毒特征体,致使杀毒软件介入。或者删除自己,或者重启,因为重启不可阻止,而且破坏调试过程。   13.程序运行完,调用一个外部exe删除所有文件,包括main.exe和所有pbd和dll(如果他做一个假的dll,就会被删除,而程序启动时释放一个新的文件出来,永远只使用自己的文件。这样他修改dll和pbd都没用。)   14.必须研究和使用pbkiller和shudepb这两个工具,研究它们的bug,利用bug写关键代码,至少在它bug没解决之前是可以保护的。比如pbkiller对dec{4}的解析不出来(*提示:如对不同精度的数做赋值,则丢失精度,或者做数学运算等等,丢失精度后转为字符串或者blob),对longlong也解析不出来…都可以利用之。这两个工具还有很多很多的bug.[1] [2] 标签: PB PowerBuilder 本文标题:powerbuilder程序防止破解的办法[1] 本文链接:http://www.educity.cn/develop/159353.html 更多>> 程序开发学院:PowerBuilder 栏目最近更新 · PB中同时“继承”多个用户自定义数据窗口对象[1] · 在PB中怎样用rational teamtest · 在PB中实现数字的英文大写和中文大写[1] · PowerBuilder编程技巧四则[1] · 一个小老板眼中的开发工具— PB 杂谈[1] · PB开发Sybase数据库应用技巧点滴[1] · 带你轻松了解PB的主要特点 · 编程入门:PowerBuilder简介 · PB中消息对话框的居中显示[1] · 在PB中调用外部程序并判断其运行结束 · PowerBuilder制作IE风格的图标按钮[1] · SQL Server 7.0数据库的六种数据移动方法[1] 更多>> 程序开发资料下载:PowerBuilder资料下载 栏目最近更新 · 2005年三级网络的试卷题及标准答案2 · 计算机三级网络技术考前必备练习视频讲解(9) · 等考三级PC技术(2007年4月) · 三级网络考纲 · 2010年3月计算机等考三级PC技术笔试真题及答案下载(ZIP格.. · 三级网络技术笔试模拟163 · 三级计算机考试方法资料下载 · 网络 2008年4月计算机等级考试计算机等级考试三级网络真题.. · PB 9. 0实用教程源代码下载 · 计算机三级数据库技术考试大纲下载(ZIP格式) · 全国计算机等级考试笔试试卷(含答案和解析)——三级网络技术.. · 高数下载(ZIP格式) 主编推荐 · 电子书:信息系统项目管理师教程(第3版)· 2014年通信工程师考试培训:辅导与面授· PMP考试包过班常年招生,不过者全额退款 · 系统集成项目管理工程师考试面授培训 · 信息系统项目管理师培训:面授+在线辅导 · 系统分析师培训,顶级专家亲自授课与指导 更多>> PowerBuilder相关文章 · 使用PB限制应用程序只运行一次 · PowerBuilder编程技巧四则[1] · 在PB中实现数字的英文大写和中文大写[1] · PB中同时“继承”多个用户自定义数据窗口对象[1] · 一个小老板眼中的开发工具— PB 杂谈[1] · 带你轻松了解PB的主要特点 · 在PB中调用外部程序并判断其运行结束 · PowerBuilder使用自定义事件触发键盘Enter事件 · PB开发Sybase数据库应用技巧点滴[1] · 在PB中怎样用rational teamtest 更多>> 最新视频 &middot; 数据库系统工程师考试试题分析与解答(2004-2008年) &middot; Linux服务与应用视频教程 &middot; 网络规划设计师培训视频教程(2010版) &middot; 一级MS Office考试试题分析与解答(2007-2011年) &middot; 信息处理技术员培训视频教程 &middot; IT项目管理培训视频教程(高级篇) &middot; 信息系统项目管理师培训视频教程(2010版) &middot; 路由器和交换机配置培训视频教程 &middot; 初级通信工程师视频教程 &middot; 计算机专业英语培训视频教程 更多>> 最新帖子 &middot; 《NEC携手飞利浦争夺欧洲办公通信市场份额》评论 &middot; 《中国联通19日解禁10.6亿非流通股》评论 &middot; 《CommVault助力一汽大众提升数据管理效率》评论 &middot; 《武汉铁通“双抓双降”提升客户满意度》评论 &middot; 《中国联通寄发与中国网通合并交易通函》评论 &middot; 《中电信贵州试点电子商务 打造B2B2C模式》评论 &middot; 《跨省追踪破坏元凶幕后大战电脑“僵尸网络”》评论 &middot; 《无线广域网借“东风”》评论 更多>> IT知识问答 &middot; 为什么BLL层不能引用DAL层数据?该怎么解决 &middot; 关于竞赛图怎么证明至少有一个点能够一步或两步就能到达所.. &middot; display.dispose(),该怎么处理 &middot; EXSI5添加存储的步骤上面是EXSI5中添加存储的步骤 &middot; 几个惯用的检索排序算法的JavaScript实现 &middot; gwt异常GWT module 'xxx' may need to be (re)compiled &middot; 创建定时任务的时候,图形化界面生成的代码如何不可以在命.. &middot; View Canvas解决方案 &middot; 急SQL:通过查询组合字符串的有关问题 &middot; Wp7 android iPhone 小弟我该怎么选择呢 网站首页 关于希赛 希赛招聘 联系希赛 希赛网 版权所有 &copy; 2001-2014 湘ICP备10026015号 增值电信业务经营许可证湘B2-20070093