前往Shuct.Net首页

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

关于shudepb的搜索

【原创】pb程序调试初探 - 看雪安全论坛 看雪安全论坛 > Windows > 『软件调试逆向』 【原创】pb程序调试初探 用户名 记住 密 码 忘记密码? KSSD 注册账号 搜索论坛 日历事件 论坛帮助 --> 『软件调试逆向』 [综合性论坛]本版讨论的主题包括:调试逆向、系统底层、商业保护、虚拟机保护、.NET平台等安全相关的话题。 转到页面... 该主题: "【原创】pb程序调试初探" 因在一定的时间里没有任何回复而自动关闭。如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。 第 1 页,共 4 页 1 234 > 主题工具 显示模式 本站声明:看雪论坛文章版权属于作者,受法律保护。没有作者书面许可不得转载。若作者同意转载,必须以超链接形式标明文章原始出处和作者信息及本声明! lzqgj 中级会员 资 料: 注册日期: Apr 2004 帖子: 311 积分:1 --> 精华: 6 现金: 207 Kx 资产: 207 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 1 2007-05-10 22:48:15 【原创】pb程序调试初探 标 题: 【原创】pb程序调试初探 作 者: lzqgj 时 间: 2007-05-10,22:48:15 链 接: http://bbs.pediy.com/showthread.php?t=44277 软件名称:职称英语学习帮手(综合类) 破解工具:OD,shudepb,pbkill,winhex 破解目的:自用 最近要考职称英语,下载了个职称英语的软件来学习。 未注册的版本只能阅读每个部分第一篇,可惜我的银子不够,只好拿它开刀。 打开程序目录,顿时傻眼:PB程序。关于PB程序的调试可以说网上几乎还没有,可见非常困难。 没有反编译工具几乎是不可能完成的任务。而即使是反编译出来,如果编程功力不够,也很难看出注册方法和写注册机。 而爆破关键跳转目前在网上我还没有搜到跳转的机器码是什么。 调试过程的那个辛苦啊,我只想说:破解=运气+毅力。真的,运气可能是第一位的。 先找工具反编译。试了pbkill,只得到一堆if...else...end if之类的,一句代码也没有出来(可能是pbkill试用版吧?) 在网上又搜到另一个反编译工具shudepb,使用确实很好,支持全局搜索,大大方便找关键代码。 全局搜索提示:"对不起,你尚未注册,只能阅读每一部分的第一篇文章!欢迎注册!",找到以下代码: //Has been Shielded. index = PARENT.ddlb_text.finditem(PARENT.ddlb_text.text,1) index ++ IF index > 1 AND gb_register = FALSE THEN //3 PARENT.ddlb_text.text = PARENT.is_etitle messagebox("提示","对不起,你尚未注册,只能阅读每一部分的第一篇文章!欢迎注册!") THIS.setfocus() RETURN END IF //3 ls_text = PARENT.ddlb_text.text(index) IF ls_text = "" THEN //10 index -- PARENT.ddlb_text.text = PARENT.ddlb_text.text(index) RETURN END IF //10 PARENT.ddlb_text.text = PARENT.ddlb_text.text(index) PARENT.ddlb_text.triggerevent(selectionchanged!) RETURN 这个就是点击“下篇”按钮时的过程,判断是否大于第一题和是否未注册,两者条件都满足时跳出NAG。 gb_register是个全局变量,是否注册的标志。再次搜索gb_register可以找到很多赋值语句,说明程序多处进行校验。 注册过程就不贴了,感觉还是比较复杂,我没看明白,只好想到用爆破的方法。于是艰苦的调试过程开始了。 众所周知,PB程序类似于VB的pcode,是解释执行的,调试时在pbvm80.dll中转, 与pcode又有很大不同,你几乎找不到程序在什么地方进行比较,什么地方根据比较结果进行跳转(至少没有人公开过)。 用OD载入程序,运行,点“下篇”弹出NAG,回到OD,F12暂停,Alt+F9运行,回到程序点确定,程序中断, 不断F8单步执行(按住不放好了),最终发现程序在下面一段反复执行: 10CEEB52 MOV ECX,DWORD PTR SS:[EBP-20] 10CEEB55 XOR EAX,EAX 10CEEB57 ADD ECX,EDX 10CEEB59 MOV AX,WORD PTR DS:[ECX] 10CEEB5C LEA EAX,DWORD PTR DS:[EAX+EAX*2] 10CEEB5F SHL EAX,2 10CEEB62 MOV EBX,DWORD PTR DS:[EAX+10DF2B84] 10CEEB68 LEA EDX,DWORD PTR DS:[EDX+EBX*2+2] 10CEEB6C MOV DWORD PTR DS:[ESI+14],EDX 10CEEB6F MOV EDX,DWORD PTR SS:[EBP-24] 10CEEB72 PUSH EDX 10CEEB73 LEA EDX,DWORD PTR SS:[EBP-E8] 10CEEB79 PUSH EDX 10CEEB7A PUSH EDI 10CEEB7B PUSH ECX 10CEEB7C PUSH ESI 10CEEB7D CALL DWORD PTR DS:[EAX+10DF2B80] --->关键,程序解释入口 10CEEB83 MOV DWORD PTR SS:[EBP-4],EAX 10CEEB86 MOV EAX,DWORD PTR DS:[EDI+24C] 10CEEB8C ADD ESP,14 10CEEB8F TEST EAX,EAX 10CEEB91 JE SHORT PBVM80.10CEEBAA 10CEEB93 PUSH EDI 10CEEB94 MOV DWORD PTR SS:[EBP-4],1 10CEEB9B CALL PBVM80.10CEE640 10CEEBA0 ADD ESP,4 10CEEBA3 MOV DWORD PTR SS:[EBP-18],EAX 10CEEBA6 TEST EAX,EAX 10CEEBA8 JE SHORT PBVM80.10CEEBBF 10CEEBAA MOV EAX,DWORD PTR DS:[ESI+38] 10CEEBAD TEST EAX,EAX 10CEEBAF JE SHORT PBVM80.10CEEBB8 10CEEBB1 MOV DWORD PTR SS:[EBP-4],0 10CEEBB8 MOV EAX,DWORD PTR DS:[ESI+18] 10CEEBBB TEST EAX,EAX 10CEEBBD JE SHORT PBVM80.10CEEB41 根据对pcode的了解,猜测10CEEB7D CALL DWORD PTR DS:[EAX+10DF2B80]即是程序解释的入口。 不断跟踪发现解释原理是这样的:根据EAX值的不同,程序call到不同位置执行不同任务, 如读取程序的代码,然后解释执行程序等。 猜测当EAX=2AC或0C或18时,会读取原程序代码,等于其它一些数值时会执行原程序。 不能直接在10CEEB7D处下断,因为一返回程序就会中断。 于是对“下篇”按钮下WM_lbuttonup消息断点,点击后中断,返回OD,在10CEEB7D处下断,F9运行。 当EAX不等于2AC或0C或18时跟F7进去看看。经过n次(未统计,估计>200), 终于在EAX=93C时找到了需要的代码,跟进去程序为: 10D967B0 MOV ECX,DWORD PTR SS:[ESP+C] 10D967B4 PUSH EBX 10D967B5 PUSH ESI 10D967B6 PUSH EDI 10D967B7 MOV ESI,DWORD PTR DS:[ECX+10E] 10D967BD XOR EBX,EBX 10D967BF LEA EDX,DWORD PTR DS:[ESI-38] 10D967C2 MOV DWORD PTR DS:[ECX+10E],EDX 10D967C8 >MOV EDI,DWORD PTR DS:[ESI-1C] 10D967CB MOV EAX,DWORD PTR DS:[EDX] 10D967CD CMP EAX,EDI --->对应index > 1的比较 10D967CF MOV EAX,1 10D967D4 SETG BL --->对应index > 1的比较 10D967D7 MOV WORD PTR DS:[EDX],BX 10D967DA MOV BL,BYTE PTR DS:[EDX+4] 10D967DD TEST AL,BL 10D967DF JNZ SHORT PBVM80.10D967EA 10D967E1 TEST BYTE PTR DS:[ESI-18],AL 10D967E4 JNZ SHORT PBVM80.10D967EA 10D967E6 XOR EDX,EDX 10D967E8 JMP SHORT PBVM80.10D967EC 10D967EA MOV EDX,EAX 10D967EC MOV ESI,DWORD PTR DS:[ECX+10E] 10D967F2 OR DH,5 10D967F5 POP EDI 10D967F6 MOV WORD PTR DS:[ESI+4],DX 10D967FA MOV EDX,DWORD PTR DS:[ECX+10E] 10D96800 POP ESI 10D96801 POP EBX 10D96802 MOV WORD PTR DS:[EDX+6],7 10D96808 MOV EDX,DWORD PTR DS:[ECX+10E] 10D9680E MOV WORD PTR DS:[EDX+1A],0 10D96814 MOV EDX,DWORD PTR DS:[ECX+10E] 10D9681A ADD EDX,1C 10D9681D MOV DWORD PTR DS:[ECX+10E],EDX 10D96823 RETN 继续跟踪,当EAX=804时,跟进得到如下代码: 10D95580 MOV ECX,DWORD PTR SS:[ESP+C] 10D95584 PUSH EBX 10D95585 PUSH ESI 10D95586 XOR EBX,EBX 10D95588 MOV ESI,DWORD PTR DS:[ECX+10E] 10D9558E LEA EDX,DWORD PTR DS:[ESI-38] 10D95591 MOV DWORD PTR DS:[ECX+10E],EDX 10D95597 MOV AX,WORD PTR DS:[EDX] 10D9559A >CMP AX,WORD PTR DS:[ESI-1C] --->对应gb_register = FALSE的比较 10D9559E MOV EAX,1 10D955A3 SETE BL --->对应gb_register = FALSE的比较 10D955A6 MOV WORD PTR DS:[EDX],BX 10D955A9 MOV BL,BYTE PTR DS:[EDX+4] 10D955AC TEST AL,BL 10D955AE JNZ SHORT PBVM80.10D955B9 10D955B0 TEST BYTE PTR DS:[ESI-18],AL 10D955B3 JNZ SHORT PBVM80.10D955B9 10D955B5 XOR EDX,EDX 10D955B7 JMP SHORT PBVM80.10D955BB 10D955B9 MOV EDX,EAX 10D955BB MOV ESI,DWORD PTR DS:[ECX+10E] 10D955C1 OR DH,5 10D955C4 MOV WORD PTR DS:[ESI+4],DX 10D955C8 MOV EDX,DWORD PTR DS:[ECX+10E] 10D955CE POP ESI 10D955CF POP EBX 10D955D0 MOV WORD PTR DS:[EDX+6],7 10D955D6 MOV EDX,DWORD PTR DS:[ECX+10E] 10D955DC MOV WORD PTR DS:[EDX+1A],0 10D955E2 MOV EDX,DWORD PTR DS:[ECX+10E] 10D955E8 ADD EDX,1C 10D955EB MOV DWORD PTR DS:[ECX+10E],EDX 10D955F1 RETN 找到比较代码还是不能爆破的,因为这些代码是在pbvm80.dll中,程序的正确运行是需要它的。 还要找到原程序的代码并修改。这个可没有现成经验。 我的修改思路是将index > 1改成index > 99999(随便你修改),(gb_register是变量,不容易修改的) 在10D967C8 >MOV EDI,DWORD PTR DS:[ESI-1C]处观察ESI-1C的值为A09420,对A09420下硬件写入断点, 运行时会中断很多次,在最后中断在10D9559A >CMP AX,WORD PTR DS:[ESI-1C]的前一次看, 得到程序读入1F30658处的值(即0),在数据窗口中显示为: 01000000390001000300F40931000100000039000100010006,用Winhex打开程序,搜索, 找到地址:0013AC27处,修改0100为FFFF,保存。 再次运行程序,点下篇,没有NAG了吧? 实际程序还没有爆破完全,但是功能限制已经取消了。 小结一下: 10CEEB7D CALL DWORD PTR DS:[EAX+10DF2B80] 是PB程序解释入口,EAX值不同代表不同功能 我猜测EAX=93C时比较是否大于,EAX=804时比较逻辑值是否相等。 其它的值代表的含义希望大家继续跟踪贴出来分享。 调试程序好累,写文章更累。真的需要很好地耐心。休息一下,明天继续爆破注册。那个稍微容易点。 --> 此帖于 2007-05-10 22:51:22 被 lzqgj 最后编辑 [公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮! lzqgj 查看公开信息 查找 lzqgj 发表的帖子 查找 lzqgj 发表的所有主题 查看 lzqgj 发表的精华帖 lzqgj 中级会员 资 料: 注册日期: Apr 2004 帖子: 311 积分:1 --> 精华: 6 现金: 207 Kx 资产: 207 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 2 2007-05-11, 08:32:13 爆破注册这个程序 今天讲一下爆破注册这个程序。 反编译显示程序调用sapiyy.dll、RegClient.dll进行注册。在OD中查看sapiyy.dll的函数名称,发现很多与注册有关的函数: 名称位于 sapiyy 地址 名称 注释 01ADA1AC RegClient.CheckRegister 01AD2860 DoCheckRegister 检查是否注册 01AD22C0 _DoCheckRegister2@16 01AD2DC0 DoRegister 01AD2CF0 DoUnRegister 01ADA1B8 RegClient.GetErrorString 01AD1780 gethdserial 获取硬件ID 01AD1A80 getsourestring1024 01AD1D40 getsourestring128 01AD1BE0 getsourestring256 01AD1920 getsourestring512 好像是加密注册码的逆向处理 01ADA1B4 RegClient.GetTokenString 01ADA17C MSVCRT._mbscmp 01ADA1A8 RegClient.Register 01AD17D0 secstring 注册码处理函数 01ADA1B0 RegClient.UnRegister 在gethdserial函数上下断,F9运行,中断后F12返回,程序回到这里(在pbvm80.dll中): 10BBB5E3 POP ESI 10BBB5E4 POP EDI 10BBB5E5 CALL DWORD PTR SS:[EBP+8] 10BBB5E8 CMP ESP,DWORD PTR SS:[EBP-8] --->停在这 10BBB5EB JE SHORT PBVM80.10BBB5F7 明显10BBB5E5 CALL DWORD PTR SS:[EBP+8] 这句就是调用函数。下断,F9运行。 发现它会call到不同地址。原来这就是pb程序调用外部函数的入口。 如果想跟踪注册算法,在这里下断应该可以得到一些信息,因为程序调用外部函数处理注册码的。 但是我对追注册码实在没有信心,我只想找到爆破的地方。 如果程序调用外部函数判断是否注册并返回bool值,那我们修改返回值不就OK? 下断后继续运行,每次中断看看Call的外部函数名称,觉得是判断注册的就跟进去,如果是处理注册码的就继续运行。 终于在一次下断后来到DoCheckRegister函数。跟进去看: 01AD2860 >SUB ESP,1C4 01AD2866 PUSH ESI 01AD2867 PUSH EDI 01AD2868 MOV EDI,DWORD PTR SS:[ESP+1D8] 省略部分代码 01AD28D8 PUSH EAX 01AD28D9 PUSH ECX 01AD28DA PUSH sapiyy.01ADDC30 01AD28DF PUSH sapiyy.01ADDC30 01AD28E4 PUSH sapiyy.01ADC3BC ; ASCII "I0qOWoaJ584Lz/CUMSi3qN4anWMV6Zox" 01AD28E9 PUSH sapiyy.01ADC398 ; ASCII "gX93+hAOo1HQnq1enogxlpL2kp0gUgF7" 01AD28EE PUSH EDX 01AD28EF PUSH sapiyy.01ADC294 ; ASCII "smskb" 01AD28F4 CALL <JMP.&RegClient.CheckRegister> 01AD28F9 CMP EAX,9 01AD28FC JNZ SHORT sapiyy.01AD290B 01AD28FE POP EDI 01AD28FF XOR EAX,EAX 01AD2901 POP ESI 01AD2902 ADD ESP,1C4 01AD2908 RETN 10 省略部分代码 01AD295E PUSH EAX 01AD295F PUSH ECX 01AD2960 PUSH sapiyy.01ADDC30 01AD2965 PUSH sapiyy.01ADDC30 01AD296A PUSH sapiyy.01ADC3BC ; ASCII "I0qOWoaJ584Lz/CUMSi3qN4anWMV6Zox" 01AD296F PUSH sapiyy.01ADC398 ; ASCII "gX93+hAOo1HQnq1enogxlpL2kp0gUgF7" 01AD2974 PUSH EDX 01AD2975 PUSH sapiyy.01ADC294 ; ASCII "smskb" 01AD297A CALL <JMP.&RegClient.CheckRegister> 01AD297F MOV EDX,EAX 01AD2981 CMP EDX,ESI 01AD2983 JE SHORT sapiyy.01AD29EF 01AD2985 CMP EDX,1F 01AD2988 JE sapiyy.01AD2CD9 01AD298E CMP EDX,25 01AD2991 JE sapiyy.01AD2CD9 01AD2997 CMP EDX,26 01AD299A JE sapiyy.01AD2CD9 01AD29A0 CMP EDX,27 01AD29A3 JE sapiyy.01AD2CD9 01AD29A9 CMP EDX,28 01AD29AC JE sapiyy.01AD2CD9 01AD29B2 CMP EDX,29 01AD29B5 JE sapiyy.01AD2CD9 01AD29BB CMP EDX,2A 01AD29BE JE sapiyy.01AD2CD9 01AD29C4 MOV ECX,20 01AD29C9 XOR EAX,EAX 01AD29CB LEA EDI,DWORD PTR SS:[ESP+C8] 01AD29D2 REP STOS DWORD PTR ES:[EDI] 01AD29D4 LEA EAX,DWORD PTR SS:[ESP+C8] 01AD29DB PUSH EAX 01AD29DC PUSH EDX 01AD29DD CALL <JMP.&RegClient.GetErrorString> 01AD29E2 POP EDI 01AD29E3 XOR EAX,EAX 01AD29E5 POP ESI 01AD29E6 ADD ESP,1C4 01AD29EC RETN 10 看到的那一串古怪字符明显与注册码有关。看ret前几个代码,发现: 01AD29DD CALL <JMP.&RegClient.GetErrorString> 01AD29E2 POP EDI 01AD29E3 XOR EAX,EAX 应该是注册不成功的置0标志位。修改EAX为1,运行,程序不再有注册提示,按钮变成了“注销注册”。成功! 小结: pb程序本身调试是很困难的,但是如果调用外部程序注册调试起来将会轻松得多,因为调用地址是固定的, 只要在调用处下断,可以清楚看到用到哪些函数进行运算注册。 写这篇文章没有其它目的,纯粹是为了方便自己记忆,没有太多技术上的东西,pb与vb pcode相似,但不同之处有太多,难度大很多。 一段代码执行起来跟踪要很久,下面这三行就花了我将近1个小时才找关键,真的需要运气。 index = PARENT.ddlb_text.finditem(PARENT.ddlb_text.text,1) index ++ IF index > 1 AND gb_register = FALSE THEN //3 pb程序没有直接读取原程序,而是将原程序的代码先复制到临时地址,然后不断读取临时地址并执行。 所以调试时找到临时地址还是不够的,还要找到原程序的地址才能爆破,很多机器码如jz、jnz等我也不知道是什么。 毕竟网上有关pb的调试太少了,各位老大可能都是直接反编译写出注册机的。我没有这个本事,只有寻求爆破了。 真的希望各位同仁能多写些pb调试的文章,把经验放给大家共享,让pb程序的破解不再是难题。 [招生]"麦洛克菲"内核驱动开发培训3月15日开课,看雪会员报名优惠200元! lzqgj 查看公开信息 查找 lzqgj 发表的帖子 查找 lzqgj 发表的所有主题 查看 lzqgj 发表的精华帖 founder BAN 资 料: 注册日期: Sep 2005 帖子: 275 精华: 0 现金: 200 Kx 资产: 200 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 3 2007-05-11, 11:09:33 学习了,多谢! [公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮! founder 查看公开信息 查找 founder 发表的帖子 查找 founder 发表的所有主题 lzqgj 中级会员 资 料: 注册日期: Apr 2004 帖子: 311 积分:1 --> 精华: 6 现金: 207 Kx 资产: 207 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 4 2007-05-13, 08:08:01 再次跟踪发现:pb调用os_callc函数来执行外部函数。 10CDD898 CALL PBVM80.os_callc 对pb了解太少,今天才发现原来pb也有类似于vb一样的Native和Pcode的两种编译方式。 Pcode是在dll里打转的,Native还是在主程序中运行,调用pb的函数来进行运算,这种方式的程序破解难度小很多。 比如今天调试的某机动车模拟考试软件,用了类似Vb的Native方式的编译。几个主要代码如下: 004AAD27 CALL <JMP.&PBVM80.#2384> 跟进: 0071C09E JMP DWORD PTR DS:[<&PBVM80.#2384>] ; PBvm80.ob_invoke_static 调用原程序的子过程,一般F8过去,但往往也会跳过注册算法。开始跟进去就在这里就跟丢了,以为进到dll里出不来了。 004AAE63 CALL <JMP.&PBVM80.#2611> 跟进: 0071BFF0 JMP DWORD PTR DS:[<&PBVM80.#2611>] ; PBvm80.ot_ansi_strcmp 比较函数,再次跟进 发现调用msvcrt.dll 的 _mbscmp函数进行比较,几乎pb程序都用这个比较字符串。 --> 此帖于 2007-05-13 08:17:44 被 lzqgj 最后编辑 [招生]15PB软件安全培训第3期3月10日开课,看雪会员报名6折优惠(16,800元)! lzqgj 查看公开信息 查找 lzqgj 发表的帖子 查找 lzqgj 发表的所有主题 查看 lzqgj 发表的精华帖 Tee8088 普通会员 资 料: 注册日期: Jun 2004 帖子: 355 积分:114 --> 精华: 2 现金: 420 Kx 资产: 420 Kx--> 致谢数: 0 获感谢文章数:17获会员感谢数:41 5 2007-05-13, 10:48:59 我这两天也在弄PB的东西, PBkiller的作者Kevins哪位兄弟联系的到呀。 --> 此帖于 2007-05-13 11:13:54 被 Tee8088 最后编辑 [招生]"麦洛克菲"内核驱动开发培训3月15日开课,看雪会员报名优惠200元! Tee8088 查看公开信息 查找 Tee8088 发表的帖子 查找 Tee8088 发表的所有主题 查看 Tee8088 发表的精华帖 elance 中级会员 资 料: 注册日期: Oct 2005 帖子: 548 积分:6 --> 精华: 6 现金: 226 Kx 资产: 226 Kx--> 致谢数: 2 获感谢文章数:0获会员感谢数:0 6 2007-05-13, 10:51:33 PB的,这个得学习下 [招生]15PB软件安全培训第3期3月10日开课,看雪会员报名6折优惠(16,800元)! elance 查看公开信息 访问 elance 的个人网站 查找 elance 发表的帖子 查找 elance 发表的所有主题 查看 elance 发表的精华帖 pizigao 初级会员 资 料: 注册日期: Apr 2006 帖子: 35 精华: 0 现金: 200 Kx 资产: 200 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 7 2007-05-14, 08:31:35 PB的东西还是蛮头大的~ [招生]15PB软件安全培训第3期3月10日开课,看雪会员报名6折优惠(16,800元)! pizigao 查看公开信息 查找 pizigao 发表的帖子 查找 pizigao 发表的所有主题 rensd 初级会员 资 料: 注册日期: Jul 2004 帖子: 10 精华: 0 现金: 203 Kx 资产: 203 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 8 2007-05-24, 12:56:44 试着照楼主所写的破解了一下,消息断点不知道怎么下,所以没有完成破解。我用了你说的第二种爆破方式,修改了一个字节,爆破成功,感谢楼主,帮我省了100多块钱,呵呵。 [公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮! rensd 查看公开信息 查找 rensd 发表的帖子 查找 rensd 发表的所有主题 modi 初级会员 资 料: 注册日期: Oct 2005 帖子: 217 积分:10 --> 精华: 0 现金: 144 Kx 资产: 144 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 9 2007-05-24, 19:56:18 好少有爆破的,学习.. [招生]"麦洛克菲"内核驱动开发培训3月15日开课,看雪会员报名优惠200元! modi 查看公开信息 查找 modi 发表的帖子 查找 modi 发表的所有主题 xyu 初级会员 资 料: 注册日期: May 2006 帖子: 71 精华: 0 现金: 201 Kx 资产: 201 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 10 2007-05-25, 14:01:32 引用: 最初由 lzqgj发布 再次跟踪发现:pb调用os_callc函数来执行外部函数。 10CDD898 CALL PBVM80.os_callc 对pb了解太少,今天才发现原来pb也有类似于vb一样的Native和Pcode的两种编译方式。 Pcode是在dll里打转的,Native还是在主程序中运行,调用pb的... 楼主,请问可以提供下那个shudepb软件的下载网址吗,我下了个demo版本没有什么用处哦 [招生]15PB软件安全培训第3期3月10日开课,看雪会员报名6折优惠(16,800元)! xyu 查看公开信息 查找 xyu 发表的帖子 查找 xyu 发表的所有主题 lzqgj 中级会员 资 料: 注册日期: Apr 2004 帖子: 311 积分:1 --> 精华: 6 现金: 207 Kx 资产: 207 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 11 2007-05-25, 20:47:25 引用: 最初由 xyu发布 楼主,请问可以提供下那个shudepb软件的下载网址吗,我下了个demo版本没有什么用处哦 我的也是Demo版的,好像没有太多限制,反正反出来能找到想要的信息就行了。 [招生]15PB软件安全培训第3期3月10日开课,看雪会员报名6折优惠(16,800元)! lzqgj 查看公开信息 查找 lzqgj 发表的帖子 查找 lzqgj 发表的所有主题 查看 lzqgj 发表的精华帖 xyu 初级会员 资 料: 注册日期: May 2006 帖子: 71 精华: 0 现金: 201 Kx 资产: 201 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 12 2007-05-26, 22:29:48 看来也只能是移花接木了,去把代码放pb的工程里面去试试! [公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮! xyu 查看公开信息 查找 xyu 发表的帖子 查找 xyu 发表的所有主题 ssw 初级会员 资 料: 注册日期: May 2007 帖子: 4 精华: 0 现金: 200 Kx 资产: 200 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 13 2007-05-27, 17:12:34 新手,不太懂! [招生]15PB软件安全培训第3期3月10日开课,看雪会员报名6折优惠(16,800元)! ssw 查看公开信息 查找 ssw 发表的帖子 查找 ssw 发表的所有主题 ssw 初级会员 资 料: 注册日期: May 2007 帖子: 4 精华: 0 现金: 200 Kx 资产: 200 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 14 2007-05-27, 17:41:27 楼主能否给职称英语2007理工类的爆破写出来一下,我搞了一天没搞出来,谢谢了! [公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮! ssw 查看公开信息 查找 ssw 发表的帖子 查找 ssw 发表的所有主题 lzqgj 中级会员 资 料: 注册日期: Apr 2004 帖子: 311 积分:1 --> 精华: 6 现金: 207 Kx 资产: 207 Kx--> 致谢数: 0 获感谢文章数:0获会员感谢数:0 15 2007-05-28, 14:54:43 引用: 最初由 ssw发布 楼主能否给职称英语2007理工类的爆破写出来一下,我搞了一天没搞出来,谢谢了! 这一系列的软件方法应该是一样的吧?你再试试? 如果pb程序调用外部dll判断是否注册的,一般修改返回值即可, 否则pb程序的jz和jnz的代码到底是什么都不知道,所以如果在pb中爆破修改跳转不方便,我的思路是修改比较的地方,如: cmp (ifreged)=1 jz reged 一般改成jmp或jnz 改成 cmp (ifreged)=0 jz reged 如此只要在程序中找到那个1的标志所在改成0 就可以。 --> 此帖于 2007-05-28 15:12:03 被 lzqgj 最后编辑 [公告]如果你觉得有人语言挑衅,请点每帖右上角的“举报”按钮! lzqgj 查看公开信息 查找 lzqgj 发表的帖子 查找 lzqgj 发表的所有主题 查看 lzqgj 发表的精华帖 第 1 页,共 4 页 1 234 > 添加到书签 Digg del.icio.us StumbleUpon Google 百度搜藏 QQ 书签 雅虎收藏 该主题: "【原创】pb程序调试初探" 因在一定的时间里没有任何回复而自动关闭。如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。 &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软件安全与逆向分析》 『图书出版商』 『电子工业出版社』 『机械工业出版社』 站务管理 『论坛版务』 相似的主题 主题 主题作者 论坛 回复 最后发表 【求助】pb程序用什么东西来动态跟踪?? ynboyinkm 『软件调试逆向』 2 2007-05-04 22:55:37 【求助】PB写的程序怎么反汇编??有什么好的工具吗?? ynboyinkm 『软件调试逆向』 2 2007-05-02 11:31:37 【求助】脱壳之后程序调用无效EIP skybook 『加壳与脱壳』 2 2007-05-01 23:12:35 所有时间均为北京时间, 现在的时间是 00:00:59. -- VBB3 -- Wap -- 大字体 -- English -- 简体中文 -- 繁體中文 联系我们 - 看雪学院 - 文字模式 - 返回顶端 &copy;2000-2013 看雪学院(PEdiy.com) |关于我们 |京ICP备11035376号 微信公众帐号:ikanxue 手机客户端: