前往Shuct.Net首页

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

关于PBKILLER的搜索

【原创】PB程序(成功进销存 3.5专业版)破解过程 - 看雪安全论坛 看雪安全论坛 > Windows > 『软件调试逆向』 【原创】PB程序(成功进销存 3.5专业版)破解过程 用户名 记住 密 码 忘记密码? KSSD 注册账号 搜索论坛 日历事件 论坛帮助 --> 『软件调试逆向』 [综合性论坛]本版讨论的主题包括:调试逆向、系统底层、商业保护、虚拟机保护、.NET平台等安全相关的话题。 转到页面... 该主题: "【原创】PB程序(成功进销存 3.5专业版)破解过程" 因在一定的时间里没有任何回复而自动关闭。如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。 主题工具 显示模式 sunsjw 普通会员 资 料: 注册日期: Dec 2005 帖子: 621 积分:23 --> 精华: 1 现金: 137 Kx 资产: 137 Kx--> 致谢数: 1 获感谢文章数:1获会员感谢数:1 1 2007-07-27, 15:21:12 【原创】PB程序(成功进销存 3.5专业版)破解过程 PB程序(成功进销存 3.5专业版)破解 标 题: 【原创】PB程序(成功进销存 3.5专业版)破解 作 者: sunsjw 时 间: 2007-07-27,14:36 链 接: http://bbs.pediy.com/showthread.php?p=338482#post338482 成功软件《进销存》3.5专业版是专业的进销存管理软件,非常适用于中小型企业的管理。该软件的3.03版曾和全国最大的U盘生产商朗科进行捆绑合作,在广大用户反馈的基础上推出了3.5版本,针对同类型的软件,该软件是针对中国人做的软件,非常符合中国的国情和使用习惯。成功软件《进销存》3.5专业版有完善的库存,销售管理系统,非常方便的查询平台和报表体系。软件不需要加密狗,下载后直接安装就可以使用,未注册的版本限制了只能输入300条数据. 听朋友说这个软件要1000 RMB,没有钱怎么办?拿来给我这菜鸟练练手,PB的东西从来没有搞过有点心虚,还好有PBKILLER真是个好东西,源码都可以看得到,就直接分析它的注算法吧。 用PBKILLER打开该程序的几个PDB文件研究下,发现在cgsw.pdb文件里是它的窗体文件。在里面找啊找,找到了w_reguser注册窗体,明显看到cb_ok按钮,看下Events里的clicked事件里的代码 我们只看关键代码如下 xxnr = "注册完成,谢谢!" f_userxy(chname,chtel,chsn,chid) if zhspass = 9999 then xxnr = "注册成功,谢谢!" parent.p_user.picturename = "regok.bmp" else if (((((zhspass = 7471) or (zhspass = 7472)) or (zhspass = 7473)) or (zhspass = 7474)) or (zhspass = 7475)) then xxnr = "注册完成,谢谢!" parent.p_user.picturename = "regok.bmp" else xxnr = "注册不成功,请再试试,如果还不成功,请咨询您的软件供应商," end if end if 哈哈,太简单了,只要zhspass=9999,7471,7472...7475就可以注册成功。那就找找在哪里给zhspass赋的值,往上看,f_userxy(chname,chtel,chsn,chid)这个函数有点特别,肯定这个东西里面就是注册算法了,去看看去。 用PBKILLER打开cgsf.pdb文件,找到f_userxy这个函数,打开看看源码吧。 string dq_id string dq_name string new_zf string new_js string new_as string new_xh string dq_sn string chname string chtel string chsn string chid string lmm long i long dqh long jsq long srbz long qs long qs2 decimal maincd decimal mainxh decimal id boolean fhz = false string qlw string hlw string newid srbz = 0 dq_id = trim(softid) dq_id = left(dq_id,len(dq_id) - 2) dq_id = right(dq_id,len(dq_id) - 2) maincd = 0 dq_name = trim(username) + trim(usertel) maincd = f_cdjs(dq_name) new_zf = string(maincd) new_zf = reverse(new_zf) maincd = dec(new_zf) if bbmc = 0 then qs = 128 else if bbmc = 1 then qs = 118 else if bbmc = 2 then qs = 253 else if bbmc = 3 then qs = 168 else if bbmc = 4 then qs = 136 else if bbmc = 5 then qs = 138 else if bbmc = 6 then qs = 126 else if bbmc = 7 then qs = 188 else if bbmc = 8 then qs = 135 else if bbmc = 9 then qs = 118 else if bbmc = 10 then qs = 158 else if bbmc = 12 then qs = 116 else if bbmc = 18 then qs = 129 else if bbmc = 28 then qs = 135 end if end if end if end if end if end if end if end if end if end if end if end if end if end if maincd = maincd * qs maincd = maincd + 256 dq_sn = trim(softsn) for jsq = 1 to len(dq_sn) step 2 new_js = new_js + mid(dq_sn,jsq,1) next for jsq = 2 to len(dq_sn) step 2 new_as = new_as + mid(dq_sn,jsq,1) next for jsq = 1 to len(new_as) new_xh = new_xh + mid(new_as,jsq,1) new_xh = new_xh + mid(new_js,jsq,1) next mainxh = dec(new_xh) if bblx = "2" and bbmc = 3 and bbfs = 2 then qs2 = 128 else if bblx = "1" and bbmc = 2 and bbfs = 2 then qs2 = 208 else if bblx = "2" and bbmc = 2 and bbfs = 2 then qs2 = 178 else if bblx = "3" and bbmc = 2 and bbfs = 2 then qs2 = 132 else qs2 = 138 end if end if end if end if mainxh = mainxh * qs2 mainxh = mainxh - 280 zhspass = 1 if bbmc = 1 then yhxl = 2 else yhxl = 1 end if fhz = false for i = 1 to 99 newid = string(maincd + mainxh) qlw = left(newid,2) hlw = right(newid,2) qlw = string(dec(qlw) * i) hlw = string(dec(hlw) * i) if len(hlw) = 1 then hlw = "0" + hlw end if newid = left(newid,len(newid) - 2) newid = right(newid,len(newid) - 2) newid = qlw + newid + hlw if newid = dq_id then //爆破点(我们要把它改成不等于) zhspass = 9999 //这个地主给zhspass赋值了,下面还有哦。 yhxl = i fhz = true exit else newid = string(maincd + mainxh * 3) qlw = left(newid,2) hlw = right(newid,2) qlw = string(dec(qlw) * i) hlw = string(dec(hlw) * i) newid = left(newid,len(newid) - 2) newid = right(newid,len(newid) - 2) newid = qlw + newid + hlw if newid = dq_id then zhspass = 7471 //这个地主给zhspass赋值了 yhxl = i fhz = true exit else newid = string(maincd + mainxh * 6) qlw = left(newid,2) hlw = right(newid,2) qlw = string(dec(qlw) * i) hlw = string(dec(hlw) * i) newid = left(newid,len(newid) - 2) newid = right(newid,len(newid) - 2) newid = qlw + newid + hlw if newid = dq_id then zhspass = 7472 //这个地主给zhspass赋值了 yhxl = i fhz = true exit else newid = string(maincd + mainxh * 11) qlw = left(newid,2) hlw = right(newid,2) qlw = string(dec(qlw) * i) hlw = string(dec(hlw) * i) newid = left(newid,len(newid) - 2) newid = right(newid,len(newid) - 2) newid = qlw + newid + hlw if newid = dq_id then zhspass = 7473 //这个地主给zhspass赋值了 yhxl = i fhz = true exit else newid = string(maincd + mainxh * 7) qlw = left(newid,2) hlw = right(newid,2) qlw = string(dec(qlw) * i) hlw = string(dec(hlw) * i) newid = left(newid,len(newid) - 2) newid = right(newid,len(newid) - 2) newid = qlw + newid + hlw if newid = dq_id then zhspass = 7474 //这个地主给zhspass赋值了 yhxl = i fhz = true exit else newid = string(maincd + mainxh * 2) qlw = left(newid,2) hlw = right(newid,2) qlw = string(dec(qlw) * i) hlw = string(dec(hlw) * i) newid = left(newid,len(newid) - 2) newid = right(newid,len(newid) - 2) newid = qlw + newid + hlw if newid = dq_id then zhspass = 7475 //这个地主给zhspass赋值了 yhxl = i fhz = true exit end if end if end if end if end if end if next return fhz 注册算法大家自己分析啊,本来我想写个注册机,可是看看前面几个变量bbmc,bblx确定不下来,算了,还是来个爆破吧。PBKILLER这个东西确实是个好东西,可是不能修改文件,郁闷了啊,因为PB的东西是pcode所以要找到爆破点还是有难度啊。看看代码 if newid = dq_id then //爆破点(我们要把它改成不等于) zhspass = 9999 //这个地主给zhspass赋值了,下面还有哦。 yhxl = i fhz = true exit else 代码中有常量9999出现,好办了,那我们就在代码中找找这个数了,9999转换成16进制270F,在PB里表示成0F27,找到了这个数,那么if newid = dq_id then 肯定就在它前面的不远处了,我们就可以修改了啊。好开始用winhex在cgsf.pdb文件里找找,一共找到4个,到底是哪一个呢,我也不知道。那就用笨一点的办法了,就是把0F27全陪替换成8888,然后打开PBKILLER查看cgsf.pdb的y_userxy函数发现zhspass已经不在等于9999了,而是等于34952,好了再把刚才替换成8888的再挨个替换成0F27,每替换一个用PBKILLER重新打开cgsf.pdb文件查看f_userxy函数中zhspass是不是改回原值9999了。如果是的话就找到了。我已经找到了在cgsf.pdb文件的偏移0004FF43处。(有人问为什么要替换成8888,不为什么,因为8888这个数在原始文件里没有出现过)内容如下: 0004FF30: 00 04 00 AA 00 00 00 00 00 02 00 B6 08 1C 01 11 0004FF40: 00 31 00 0F 27 00 00 8B 00 01 00 7D 00 00 00 1C 看到没0F27上面有个AA,我们把AA改成BA保存哦。再用PBKILLER打开cgsf.pdb文件查看f_userxy函数里的的newid = dq_id已经变成了newid <> dq_id,好了找开软件注册吧,随便输入注册码,序列号都能注册成功啊!哈哈,爆破成功!!! 好了把cgsf.pdb这个文件发给我朋友。收功。。。 又有人问,你怎么知道把AA换成BA就是不等于呢? 今天公司有事情就先写到这里,星期一再写怎么知道把AA抱成BA,好了闪人。 --> 此帖于 2007-07-27 15:23:31 被 sunsjw 最后编辑 [公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮! sunsjw 查看公开信息 访问 sunsjw 的个人网站 查找 sunsjw 发表的帖子 查找 sunsjw 发表的所有主题 查看 sunsjw 发表的精华帖 kanxue 坛主 资 料: 注册日期: Apr 2004 帖子: 11,666 积分:99 --> 精华: 7 现金: 4771 Kx 资产: 4771 Kx--> 致谢数: 35 获感谢文章数:50获会员感谢数:245 2 2007-07-27, 19:53:20 解释性语言保护确实是件头疼的事,PB,JAVA,VFP… [公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮! kanxue 查看公开信息 访问 kanxue 的个人网站 查找 kanxue 发表的帖子 查找 kanxue 发表的所有主题 查看 kanxue 发表的精华帖 sunsjw 普通会员 资 料: 注册日期: Dec 2005 帖子: 621 积分:23 --> 精华: 1 现金: 137 Kx 资产: 137 Kx--> 致谢数: 1 获感谢文章数:1获会员感谢数:1 3 2007-07-27, 22:18:48 接上面的,怎么知道把AA改成BA呢!其实PB的东西我也不懂,不知道PB的pcode和X86指令的对应关系,可能PBKILLER的作者比较熟悉吧。让他来破这个软件肯定很轻松。那怎么办?还是笨办法,自己来写个PB的程序来看看,以下是我写的PB代码工程名:xy string x string y integer m if x<>y then m = 9999 endif if x=y then m=9999 endif 程序写完了,用PB编译,我们的程序里也有个xy.pdb。下面我们用winhex打开xy.pdb在里面查找0F27,一共找到两个,那们就分析这两个地方前面的代码有什么不同的地方,这两个代码块大部分都是一样的,唯一不一样就是前面那个是BA,后面这个是AA,这个大家都知道什么意思了吧,我就不说了,睡觉去了。。。 [招生]"麦洛克菲"内核驱动开发培训3月15日开课,看雪会员报名优惠200元! sunsjw 查看公开信息 访问 sunsjw 的个人网站 查找 sunsjw 发表的帖子 查找 sunsjw 发表的所有主题 查看 sunsjw 发表的精华帖 hjzhjz 初级会员 资 料: 注册日期: Apr 2006 帖子: 27 精华: 0 现金: 200 Kx 资产: 200 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 4 2007-07-27, 22:49:42 哪里有PBKILLER下载啊? [招生]"麦洛克菲"内核驱动开发培训3月15日开课,看雪会员报名优惠200元! hjzhjz 查看公开信息 查找 hjzhjz 发表的帖子 查找 hjzhjz 发表的所有主题 Nisy 中级会员 资 料: 注册日期: Mar 2006 帖子: 544 积分:93 --> 精华: 5 现金: 105 Kx 资产: 105 Kx--> 致谢数: 4 获感谢文章数:3获会员感谢数:10 5 2007-07-28, 07:07:19 好文章,绝妙的修改思路。 PBKILLER下载:http://www.pediy.com/tools/Decompilers.htm [公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮! Nisy 查看公开信息 访问 Nisy 的个人网站 查找 Nisy 发表的帖子 查找 Nisy 发表的所有主题 查看 Nisy 发表的精华帖 ynboyinkm 初级会员 资 料: 注册日期: Mar 2006 帖子: 435 精华: 0 现金: 200 Kx 资产: 200 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 6 2007-07-28, 23:52:25 pb的程序怕怕,源代码都看到了~~ [招生]15PB软件安全培训第3期3月10日开课,看雪会员报名6折优惠(16,800元)! ynboyinkm 查看公开信息 查找 ynboyinkm 发表的帖子 查找 ynboyinkm 发表的所有主题 hxssjy 初级会员 资 料: 注册日期: May 2007 帖子: 24 精华: 0 现金: 193 Kx 资产: 193 Kx--> 致谢数: 1 获感谢文章数:0获会员感谢数:0 7 2007-07-29, 09:34:53 有一些地方源代码看不懂,怎么办啊.有没有学习源代码的教材啊 [招生]"麦洛克菲"内核驱动开发培训3月15日开课,看雪会员报名优惠200元! hxssjy 查看公开信息 查找 hxssjy 发表的帖子 查找 hxssjy 发表的所有主题 sunsjw 普通会员 资 料: 注册日期: Dec 2005 帖子: 621 积分:23 --> 精华: 1 现金: 137 Kx 资产: 137 Kx--> 致谢数: 1 获感谢文章数:1获会员感谢数:1 8 2007-07-29, 11:52:29 教程只有自己去学PB了,不过好像没什么前途了。我也是从来没有学过PB,不过语言都是相通的。 [招生]15PB软件安全培训第3期3月10日开课,看雪会员报名6折优惠(16,800元)! sunsjw 查看公开信息 访问 sunsjw 的个人网站 查找 sunsjw 发表的帖子 查找 sunsjw 发表的所有主题 查看 sunsjw 发表的精华帖 ggttttgg 初级会员 资 料: 注册日期: Jun 2006 帖子: 111 精华: 0 现金: 213 Kx 资产: 213 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 9 2007-07-29, 12:33:15 用od 不能破解這個程序的嗎........ [招生]15PB软件安全培训第3期3月10日开课,看雪会员报名6折优惠(16,800元)! ggttttgg 查看公开信息 查找 ggttttgg 发表的帖子 查找 ggttttgg 发表的所有主题 sunsjw 普通会员 资 料: 注册日期: Dec 2005 帖子: 621 积分:23 --> 精华: 1 现金: 137 Kx 资产: 137 Kx--> 致谢数: 1 获感谢文章数:1获会员感谢数:1 10 2007-07-30, 10:30:50 od破起来有点难,一直在PB的虚拟机打转转,还不如直接分析源码方便。 [招生]15PB软件安全培训第3期3月10日开课,看雪会员报名6折优惠(16,800元)! sunsjw 查看公开信息 访问 sunsjw 的个人网站 查找 sunsjw 发表的帖子 查找 sunsjw 发表的所有主题 查看 sunsjw 发表的精华帖 添加到书签 Digg del.icio.us StumbleUpon Google 百度搜藏 QQ 书签 雅虎收藏 该主题: "【原创】PB程序(成功进销存 3.5专业版)破解过程" 因在一定的时间里没有任何回复而自动关闭。如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。 &laquo; 上一主题 | 下一主题 &raquo; 主题工具 显示可打印版本 显示模式 平板模式 切换到混合模式 切换到树形模式 发帖规则 您不可以发表主题 您不可以回复帖子 您不可以上传附件 您不可以编辑自己的帖子 论坛论坛启用 vB 代码 论坛启用 表情图标 论坛启用 [IMG] 代码 论坛规则 论坛跳转 --> 用户控制面板 悄悄话 收藏夹 会员在线状态 搜索论坛 论坛首页 初学者园地 『求助问答』 『经典问答』 『资料导航』 Windows 『软件调试逆向』 『编程技术』 『C32Asm』 『MDebug』 『安全工具开发』 『加壳与脱壳』 『CrackMe&ReverseMe』 移动平台 『Android 开发』 『Android 安全』 『iOS安全』 『Windows Phone安全』 信息安全 『密码学』 学术会议版 『WEB安全』 『漏洞分析』 『云计算安全』 『外文翻译』 『资源下载』 职场风云 『招聘专区』 『职业生涯』 『15PB培训专区』 论坛生活 『茶余饭后』 『安全资讯』 『论坛活动』 6)PEDIY Crackme竞赛2009 7)看雪十周年专版 8)腾讯公司2010软件安全竞赛 9)2011 Exploit Me竞赛 安全图书 『图书项目版』 《加密与解密(第三版)》 《C++反汇编与逆向分析技术揭秘》 《Android软件安全与逆向分析》 『图书出版商』 『电子工业出版社』 『机械工业出版社』 站务管理 『论坛版务』 相似的主题 主题 主题作者 论坛 回复 最后发表 成果分享 【原创】XX迷你进销存医药版注册码算法分析(适合初级) csshrb 『软件调试逆向』 30 2010-02-19 21:15:10 【原创】****计算系统5.71破解过程 YagerM 『软件调试逆向』 4 2007-09-10 19:20:58 【原创】[aCaFeeL之破解我3]破解过程及算法分析 haoshuaioo 『CrackMe&ReverseMe』 20 2007-06-01 11:45:29 【原创】openCanvas V4.0.6e plus 汉化绿色版破解过程 laowanghai 『软件调试逆向』 4 2007-05-25 17:10:23 rFactor 1.250 破解过程详述 noword_forever 『软件调试逆向』 17 2007-03-26 08:54:17 所有时间均为北京时间, 现在的时间是 01:07:02. -- VBB3 -- Wap -- 大字体 -- English -- 简体中文 -- 繁體中文 联系我们 - 看雪学院 - 文字模式 - 返回顶端 &copy;2000-2013 看雪学院(PEdiy.com) |关于我们 |京ICP备11035376号 微信公众帐号:ikanxue 手机客户端: