当前位置:首页 » 编程软件 » pb反编译破解

pb反编译破解

发布时间: 2024-10-30 05:13:02

① powerbuilder程序防止破解的办法[1]

鉴于任何程序都运行cpu指令并可被反编译成汇编码 也就是说 理论上 程序都是在裸奔 所以天下无不可破之程序 所以这里讨论的防止 只是一定程度上的 比如提高破解难度 拖延时间 让破解者挫折感增加等等

一 pb的现状

pb从 其pbd文件 和dll文件格式的版本都为 (pb 尚不知晓 还没找到pb 的程序) 结构大致一样 所以pbkiller的作者只要还有时间 他可以在一到三个月就做出最新的版本 这个软件比起shudepb来说更灭绝人性 因为作者将其免费(最初好像也是要卖钱的 无奈 没有采用shudepb那样的网络计算 使得其被破解了 从这一点看也蛮有意思 ) 从而使得无数的好事者参与到破解的学习中 因为我们写的程序众多 高手只对商业价值高的软件感兴趣 而且以它为职业糊口 而初学者只是随便找个软件练手 我朋友有个软件被初学者拿来在里面放了一些新文件 其实根本没破解到 但是宣称为 破解版 破解方法写到 输入随便的注册码 提示出错 然后就得到真正的注册码了…如果不出错 多试几次即可 结果呢?程序根本就不在输入注册码的地方判断正确以否 你说搞笑不搞笑 pbkiller目前最高版 只支持 我看过 代码反编译比较漂亮 错误肯定存在 但已经很完美了

错误 只有对自己的项目反向时才会头痛 对破解者而言 他们只想看注册部分的算法

shudepb是商业版 而且几千块一套 这一定程度对pb有利 毕竟初学者是不会去买一套没用的工具来学习破解的 而且demo版它限制代码的长度 非注册版看不全代码 还真是厚道 所以如果你不打算应对反编译软件的话 那请把代码写在 行之后(具体是不是 行限制 自己测试看看) 这是最简单办法(pb 以上)

至于 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 所以有必要多处验证文件的md 值 只要他没法修改pbd文件

以下是我猜想的一些做法 是否切实可行 待大家提意见 一个软件总是新出时容易被破解 如果一年都没被破解 以后版本升级 变来变去的 破解也就更少了

我晓得一个朋友的软件 他一年连出十多个版本 新版一出 两三天之内就被破 他用的是delphi写的 他真可怜 二进制编译的软件及a *** 之后也许更容易破解吧 只要调试就搞定了 就像pb一样 破解得非常快

pb程序其实也占几个优势 多是商业软件 商业用户还是有购买的习俗 练手者不太容易找pb程序来破解 因为共享软件很多 一般是你的用户用得还可以 又不想给钱 就会有破解的念头 pb做的都是管理软件 破解高手对商业价值不高的软件不感兴趣 再者pb程序难以调试 知道的人都不想弄 加之sql之类的 显得异常繁杂 远没有破解一个二进制编译的 通用的 使用量大的软件有意思

代理商破解的可能性更大

二 我的几个构想的方法(都只针对增加难度 让静态pbd反编译难度加大 让pj者知难而退)

能采用machinecode方式的尽量用机器编译 单一exe文件 用pbkiller和shudepb都无法看到代码 只能看到变量 pj知难而退

我有几个项目 代码超级大 在当初用pb 的时候就没法编译成机器码 现在的pb 因为有string和blob的bug没法编译成机器码 而pb 刚出来 还没测试 不过代码太多似乎没法编译成单一machinecode的exe 那就只能用p code

所以第二点就是欺骗 在程序下放跟exe同名的假的pbd文件 比如程序为main exe 放一个假的main pbd给pj者去调试 当然不一定是假的pbd 你随便找一个pbd 用ue删除一些二进制数字即可 做的跟真的一样

pbd可以放在在window系统目录下 或者path定义的任何地方 或者之前文章也提到 写他几十个注册函数 放在不同的pbd里 到底是哪一个 只有你晓得 搞死他 librarylist也可以做做文章 因为同名对象 都依照lib顺序来查找

程序启动时抓一个时间 启动结束后 抓一个时间 如果中途有停顿 是否可以判定在被调试 我想你可以删除他电脑上任何东西 反正都是破坏 别让他悠闲的调试程序 我作为一个写代码的人 我认为有必要这么做 他要QJ你 自然也允许你反抗 某个杀毒软件当年就这样把破解版搞得吐血

注册码输入时 不做任何提示和判断 只是写一个标志 程序启动时在title那里显示为 正式版 或者注册版 但是实际上 我可以延期验证或者随机验证 呵呵 这样也许把破解者都搞得没办法 因为他只要输入一次注册码 不管是什么字符 都成了正式版 而至于什么时间验证 除非他有那个耐心 否则也觉得破解麻烦 对破解者而言 抓个特征值是个小case 而要一行一行地看代码 估计吐血而死

ini中的注册码调入内存和真实注册码对比时 我认为将其复杂化后放入一个数组或者blob中 注册码不是在程序启动时 而是在多时 多点 多处 重复的校验 我的想法 在 个地方校验 其程序破解的难度就可能让pj者早退却了

而且 把注册码和系列号都跟程序的变量或者功能 或者数据返回条数等挂钩 做的非常隐蔽 不再是体现在一个if比较的地方 那就能大大减少破解的可能 因为我们知道 破解者无法修改pbd 而且不熟悉pb代码 如果搞得太复杂 可能他早就不干了

我以后发行程序准备放 个或者 个pbd在程序下 破解者要反编译就去反吧 看到 个pbd 就算我搞pb几年我也知难而退了 看到 个pbd 立即倒地吐血而死

如果主程序不能编译成单一machinecode的exe 则某些关键功能可以用run外部程序方式来运行 而外部程序用pb单独编写一个小的程序 小的程序是完全能编译成功的

费解算法和写法 比如把一个数放入数组 然后在其他地方 其他时候有意无意去改变 或者复制 移动 再到某些时间去执行某些操作 或者引发一些限制 破解变成去看你的代码 我想没人愿意继续下去

如果代理商破解你的软件 你就让客户对他产生不信任即可 买他的破解版就会被骗钱!做到这个足矣 而且你得一棍子把他敲死

发若干个自己做的 破解版 其实都是测试版 这样使用者找遍网上也下载不到真正的破解版 很多国内网站转载时都是煞有介事地称其为 破解版 绿色版 完全版 其实都是测试版 搞笑!

暗桩 检测用户越过注册部分 不动声色地做限制 或者在多处多时深层次的地方 或者细节的地方做限制 比如数据汇总等于 或者是其他单据隐蔽的错误等

攻击 生成病毒特征体 致使杀毒软件介入 或者删除自己 或者重启 因为重启不可阻止 而且破坏调试过程

程序运行完 调用一个外部exe删除所有文件 包括main exe和所有pbd和dll(如果他做一个假的dll 就会被删除 而程序启动时释放一个新的文件出来 永远只使用自己的文件 这样他修改dll和pbd都没用 )

必须研究和使用pbkiller和shudepb这两个工具 研究它们的bug 利用bug写关键代码 至少在它bug没解决之前是可以保护的 比如pbkiller对dec{ }的解析不出来(*提示 如对不同精度的数做赋值 则丢失精度 或者做数学运算等等 丢失精度后转为字符串或者blob) 对longlong也解析不出来…都可以利用之 这两个工具还有很多很多的bug

lishixin/Article/program/PB/201311/24595

热点内容
九九乘法表php 发布:2024-11-23 12:04:36 浏览:762
微信h5缓存更换二级域名 发布:2024-11-23 12:04:36 浏览:204
nba2k22手游安卓版在哪里上线 发布:2024-11-23 12:03:44 浏览:506
怎么用我的电脑远程连接服务器 发布:2024-11-23 11:57:33 浏览:144
ue4材质不编译 发布:2024-11-23 11:51:08 浏览:241
超微服务器主板如何使用独显 发布:2024-11-23 11:45:46 浏览:830
Linux下C语言应用编程 发布:2024-11-23 11:43:41 浏览:901
源码批量修改 发布:2024-11-23 11:32:01 浏览:603
关联表查询sql语句 发布:2024-11-23 11:29:56 浏览:169
androidaudiousb 发布:2024-11-23 11:18:59 浏览:254