bhcjl 发表于 2007-5-31 14:47:30

冷袖残影破解系列之三

【破文标题】冷袖残影破解系列之三
【破文作者】冷袖残影
【作者邮箱】
【作者主页】
【破解工具】OD PEID
【破解平台】WindowsXP
【软件名称】职工档案管理系统2.1.1
【软件大小】2.76MB
【原版下载】http://www.skycn.com/soft/7792.html
【保护方式】注册码
【软件简介】本软件是由吴泽勋为你开发设计的,主要涉及中小型企事业计算机自动化管理,办公自动化管理及其他信息管理系统。
钩子软件最大的特点就是为你量身定制,根据你的特殊需要制定特定的解决方案,解决你使用通用软件不便,庞杂的缺点。

【破解声明】没有任何目的,纯属练手
------------------------------------------------------------------------
【破解过程】第一步:查壳.Microsoft Visual Basic 5.0 / 6.0,没有加壳,我们启动软件后注册看看.启动后出现注册对话框,输入假码试试看,发现系统提示"注册信息不对,请联系作者"

第二步:OD载入,查找字符串,发现没有什么可用信息.于是下断点.bp rtcMsgBox.F9运行程序.输入假码,点注册,程序被断.
005145A9   .52                        PUSH EDX                      程序被断在这里.
005145AA   .50                        PUSH EAX
005145AB   .895D C8                   MOV DWORD PTR SS:,EBX
005145AE   .C785 6CFFFFFF 08000000    MOV DWORD PTR SS:,8

第三步:ALT+F9.返回程序主领空,点注册,程序返回到这个地方
00514DCC   .FF15 A4104000 CALL DWORD PTR DS:[<&MSVBVM60.#595>]   ;MSVBVM60.rtcMsgBox我们下断                                                                                          点的地方
00514DD2   .8D85 7CFFFFFF LEA EAX,DWORD PTR SS:               程序返回到这里.
00514DD8   .8D4D 8C       LEA ECX,DWORD PTR SS:
00514DDB   .50            PUSH EAX
00514DDC   .8D55 9C       LEA EDX,DWORD PTR SS:
00514DDF   .51            PUSH ECX
00514DE0   .8D45 AC       LEA EAX,DWORD PTR SS:
00514DE3   .52            PUSH EDX
00514DE4   .50            PUSH EAX


我们向上看,找这是从那里跳过来的

00514D44   .56            PUSH ESI
00514D45   .50            PUSH EAX
00514D46   .FF15 68104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>;MSVBVM60.__vbaHresultCheckObj
00514D4C   >8D4D C4       LEA ECX,DWORD PTR SS:
00514D4F   .FF15 6C124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeO>;MSVBVM60.__vbaFreeObj
00514D55   .E9 9F000000   JMP zgdagl.00514DF9
00514D5A   >8B35 00124000 MOV ESI,DWORD PTR DS:[<&MSVBVM60.__vbaVa>;MSVBVM60.__vbaVarDup 有个跳                                                               转跳到这里.我们看看是从那里跳到这的
00514D60   .B9 04000280   MOV ECX,80020004
00514D65   .894D 84       MOV DWORD PTR SS:,ECX
00514D68   .B8 0A000000   MOV EAX,0A
00514D6D   .894D 94       MOV DWORD PTR SS:,ECX
00514D70   .8D95 18FFFFFF LEA EDX,DWORD PTR SS:
00514D76   .8D4D 9C       LEA ECX,DWORD PTR SS:
00514D79   .8985 7CFFFFFF MOV DWORD PTR SS:,EAX

我们向上看到00514D5A处有个跳转,注意看他是从那里跳到这里的
DS:=661006CA (MSVBVM60.__vbaVarDup)
跳转来自 0051465D                     看到没有,是从0051465D跳过来的.

我们来到0051465D处看看

0051464E   .50            PUSH EAX
0051464F   .6A 05         PUSH 5
00514651   .FF15 38104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>;MSVBVM60.__vbaFreeVarList
00514657   .83C4 28       ADD ESP,28
0051465A   .66:3BF3       CMP SI,BX
0051465D   .0F84 F7060000 JE zgdagl.00514D5A               关键跳,暴破的地方.把JE改成JNE就暴掉了
00514663   .68 C4F14100   PUSH zgdagl.0041F1C4

我们想追踪注册码,就由些向上看,找地方下断,
005145A9   .52            PUSH EDX                        下断点
005145AA   .50            PUSH EAX
005145AB   .895D C8       MOV DWORD PTR SS:,EBX
005145AE   .C785 6CFFFFFF>MOV DWORD PTR SS:,8
005145B8   .FF15 C0104000 CALL DWORD PTR DS:[<&MSVBVM60.#520>]   ;MSVBVM60.rtcTrimVar
005145BE   .8B35 E0114000 MOV ESI,DWORD PTR DS:[<&MSVBVM60.__vbaVa>;MSVBVM60.__vbaVarCmpEq
005145C4   .8D4D 8C       LEA ECX,DWORD PTR SS:
005145C7   .8D55 9C       LEA EDX,DWORD PTR SS:
005145CA   .51            PUSH ECX
005145CB   .8D85 7CFFFFFF LEA EAX,DWORD PTR SS:
005145D1   .52            PUSH EDX
005145D2   .50            PUSH EAX
005145D3   .C785 30FFFFFF>MOV DWORD PTR SS:,zgdagl.0042687>;UNICODE "3BJWD-L9FIJ-ILYUX-IPVFP-OLTOB"                                             其实真的注册码出来了
005145DD   .C785 28FFFFFF>MOV DWORD PTR SS:,8008
005145E7   .FFD6          CALL ESI                                 ;<&MSVBVM60.__vbaVarCmpEq>
005145E9   .8D8D 5CFFFFFF LEA ECX,DWORD PTR SS:
005145EF   .50            PUSH EAX
005145F0   .8D95 28FFFFFF LEA EDX,DWORD PTR SS:
005145F6   .51            PUSH ECX
005145F7   .8D85 4CFFFFFF LEA EAX,DWORD PTR SS:
005145FD   .52            PUSH EDX
005145FE   .50            PUSH EAX
005145FF   .FFD6          CALL ESI
00514601   .8D8D 3CFFFFFF LEA ECX,DWORD PTR SS:
00514607   .50            PUSH EAX
00514608   .51            PUSH ECX
00514609   .FF15 10114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarOr>;MSVBVM60.__vbaVarOr
0051460F   .50            PUSH EAX
00514610   .FF15 C4104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaBoolV>;MSVBVM60.__vbaBoolVarNull
00514616   .8D4D D0       LEA ECX,DWORD PTR SS:
00514619   .8BF0          MOV ESI,EAX
0051461B   .FF15 68124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>;MSVBVM60.__vbaFreeStr
00514621   .8D55 BC       LEA EDX,DWORD PTR SS:
00514624   .8D45 C0       LEA EAX,DWORD PTR SS:
00514627   .52            PUSH EDX
00514628   .8D4D C4       LEA ECX,DWORD PTR SS:
0051462B   .50            PUSH EAX
0051462C   .51            PUSH ECX
0051462D   .6A 03         PUSH 3
0051462F   .FF15 40104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeO>;MSVBVM60.__vbaFreeObjList
00514635   .8D95 5CFFFFFF LEA EDX,DWORD PTR SS:
0051463B   .8D85 6CFFFFFF LEA EAX,DWORD PTR SS:
00514641   .52            PUSH EDX
00514642   .8D4D 9C       LEA ECX,DWORD PTR SS:
00514645   .50            PUSH EAX
00514646   .8D55 8C       LEA EDX,DWORD PTR SS:
00514649   .51            PUSH ECX
0051464A   .8D45 AC       LEA EAX,DWORD PTR SS:
0051464D   .52            PUSH EDX
0051464E   .50            PUSH EAX
0051464F   .6A 05         PUSH 5
00514651   .FF15 38104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>;MSVBVM60.__vbaFreeVarList
00514657   .83C4 28       ADD ESP,28
0051465A   .66:3BF3       CMP SI,BX
0051465D   .0F84 F7060000 JE zgdagl.00514D5A
00514663   .68 C4F14100   PUSH zgdagl.0041F1C4


下面就不要我说了吧.你想怎么做就怎么做了,听你摆布啊


------------------------------------------------------------------------
【破解总结】VB程序,关键还是要下好断点,能达事半功倍的效果,这个函数rtcMsgBox显示一信息对话框.就能让我们轻松找到注册码.
------------------------------------------------------------------------
【版权声明】

小子贼野 发表于 2007-5-31 15:44:35

消息断点的利用,Good~!

bhcjl 发表于 2007-5-31 16:43:51

楼上的你天天在线啊,

pw2000 发表于 2007-6-1 11:23:41

向楼主学习。

sunnyy01 发表于 2007-8-26 15:44:32

楼主厉害,象楼主看齐
页: [1]
查看完整版本: 冷袖残影破解系列之三