前往Shuct.Net首页

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

关于PB反编译的搜索

破解一个古老PB酒店管理系统_rewqrewq_新浪博客 加载中… 加载中... http://blog.sina.com.cn/u/1401623893 [订阅][手机订阅] 首页 博文目录 图片 关于我 个人资料 rewqrewq 微博 加好友 发纸条 写留言 加关注 博客等级: 博客积分:0 博客访问:5,526 关注人气:0 获赠金笔:0支 赠出金笔:0支 荣誉徽章: 相关博文 更多>> 推荐博文 评论丨这份假的“双一流”大学名 养老院有空调不开让人心寒 还有多少挂羊头卖狗肉的“小黄帽 毛开云(2评奥运):里约奥运会 网约车获合法地位,监管须及时跟 取消事业编制打破千万人的“铁饭 孩子作文撒谎,根源到底在哪里 “10亿扶贫资金未用于扶贫”需 毛开云:谁来遏制暑期安全杀手? 日“新安保法案”将拿谁开刀? 查看更多>> 正文 字体大小:大 中 小 破解一个古老PB酒店管理系统 (2013-01-14 18:27:49)转载▼ 标签: 杂谈 今天我一个朋友用了一个网上搜索找到的酒店管理系统,当时以为破解了,但用了2个月之后,突然报错,说是程序过期了,于是找我想办法。 我于是去看了一下这个系统,下面叙述一下破解过程。 1.程序反编译 看到系统之后感觉是用PB做的,而且版本并不高,于是通过搜索找到了两个PB反编译程序,将程序反编译。 用到的第一种反编译程序忘了叫什么名字,这个程序是非注册版,每个文件只能看到前20、30行,不太好,而且是网络程序,不好破解,于是找其他反编译程序。 后来找到一个叫PBKiller的反编译程序,很不错,每个文件都能看得到。 2.寻找注册那部分程序 这个程序是绿色的,只要重装之后就没事了,于是判断应该就在*.db这个文件中实现注册的,即程序设计者将注册的过程放在数据库中了。 而且经过观察,发现每次登陆之后,整个文件夹中只有*.db这个文件更新过,所以注册功能很有可能在数据库中实现的。 3.安装PB 经过搜索,发现这个数据库是Sybase的ASA单机数据库。 由于不知道用什么客户端连接到这个数据库,所以就在网上搜索到了一个PB程序,相信PB一定可以连接到数据库。 PB现在使用的人很少了,PB安装程序挺难找的,但最后毕竟给我找到了,还对PB进行了注册,当然是否注册成功就不知道了。 4.连接ASA数据库 通过观察源代码,发现这个程序在注册表中写了一些内容,然后通过ODBC连接到数据库。 于是在PB中添加了这个ODBC源,这样就能够去连接数据库了。 刚开始连接的时候不知道数据库密码,只知道用户名是dba。 于是到源代码中找数据库密码,但是非常难找,源代码有几十万行,而且我对PB也不是很熟,对这个程序也不是很熟,所以只好想其他办法。 在网上搜索到了一个文章,说是破解ASA数据库的文章,破解方法就是通过UltraEdit修改数据库中的一些内容来实现的。 这个方法将数据库的登陆密码改成“sql”,虽然不知道原来的密码,但也相当于破解了。 在*.db文件中搜索44 42 41这个串,在文件中肯定含有很多这个串,找到前面有dbo、DBA字样,后面有SYS字样的就是,将后面的内容修改如下: 24 90 3D 40 7A F5 7C B1 CC DB 89 69 30 43 CF 00 2C E7 8B 3A BC 6C 7A CB DE 27 05 29 07 10 33 33 0A BE 00 3E BC 01 59 01 59 01 59 01 4E 01 4E 01 4E 17(有的人说最后一个是15,不是17,但我用17就可以) 再保存,即可用dba/sql来连接ASA数据库了。 5.修改数据库 通过观察源代码,发现这个程序中有个user_use表,这个表是放登陆信息的,将这个表中内容删除,即不再报需要注册。 6.将密码改回 再次将删除了数据之后的数据库密码改回,还是在上面修改的地方进行修改,将数据改回去。 24 DD 05 98 A7 B1 D6 09 7A CE 93 77 0E 40 C9 47 D4 C5 D3 5B 28 08 08 A4 A7 FB 20 73 71 A2 2C 34 07 9C 82 C5 B9 01 59 01 59 01 59 01 4E 01 4E 01 4E 15 这样密码就改成原来的密码了,程序还可以使用。 7.更好的破解方法 思前想后,这个方法不是太好,因为每隔3个月左右,达到一定登陆次数,该数据库就应该又会报错,所以得想一个更好的办法进行破解。 于是想到了trigger,将原来对user_use表进行操作的insert语句阻塞,换成其他语句,这样就不会再报注册的问题了。 程序如下: create table replace_insert_user_use (insert_user varchar(10), insert_date timestamp); create trigger tri_user_use instead of insert on user_use for each row begin insert into replace_insert_user_use values('test_user',getdate()) end; 将这个程序放到数据库中,应该就不会报错了。 以上就是破解过程,最后是用trigger阻塞insert,让程序不再向这个表中插入数据实现的相应操作。 特记录一下,以免万一破解没成功,下次忘了。 分享: 喜欢 0 赠金笔 --> 0 赠金笔 阅读┊ 评论 ┊ 收藏 ┊转载 ┊ 喜欢▼ ┊打印┊举报 已投稿到: 排行榜 加载中,请稍候...... 前一篇:ORA-00600 [13013]错误 后一篇:关于oracle并行的一些用法(zt) 评论 重要提示:警惕虚假中奖信息 [发评论] 评论加载中,请稍候... 发评论 登录名: 密码: 找回密码 注册 记住登录状态昵 称: 分享到微博 评论并转载此博文 匿名评论 发评论 以上网友发言只代表其个人观点,不代表新浪网的观点或立场。 < 前一篇ORA-00600 [13013]错误 后一篇 >关于oracle并行的一些用法(zt) 新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正 新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑 Copyright &copy; 1996 - 2016 SINA Corporation, All Rights Reserved 新浪公司 版权所有