crysky7ye 发表于 2017-5-21 20:34

某计算软件爆破破解,求各位大神指点一下

一、声明:本教程仅供研究学习,请在24小时之内删除相关软件、忘记相关内容。(以上例行公事)求各位大神指点一二,小弟刚刚接手逆向。还有不足之处望各位大神海涵。
二、环境说明

操作系统:Winxp虚拟机

使用工具: peid、OD
2.目标程序:链接: http://pan.baidu.com/s/1c25r7mK 密码: uybk


3:破解过程:首先peid查壳

经过查找时vb编写的程序。不需要脱壳处理。

其次OD载入

先运行查看一下套路是什么。OD界面F9运行,

随便输入密码666666666,然后检查口令

那么先把这个弄掉。OD重新载入。
中文搜索引擎→智能搜索。

左键双击请插入正确光盘

0072B5D5   .C745 84 03000>mov dword ptr ss:,0x3
0072B5DC   .FF15 18104000 call dword ptr ds:[<&MSVBVM60.__vbaVarMove>]          ;msvbvm60.__vbaVarMove
0072B5E2   .57            push edi                                              ;悬挂运输.00635558
0072B5E3   .E8 402AD5FF   call 悬挂运输.0047E028
0072B5E8   .8BF8          mov edi,eax
0072B5EA   .FF15 38104000 call dword ptr ds:[<&MSVBVM60.__vbaSetSystemError>]   ;msvbvm60.__vbaSetSystemError
0072B5F0   .81FF 12D40300 cmp edi,0x3D412                                        我猜测这里是比较
0072B5F6   .BB 04000280   mov ebx,0x80020004
0072B5FB   .74 66         je short 悬挂运输.0072B663      在这边应该是比较后的跳转。因为没光盘所以打算爆破掉它。je改成jnp,没有光盘才跳。
0072B5FD   .BF 0A000000   mov edi,0xA
0072B602   .8D55 84       lea edx,dword ptr ss:
0072B605   .8D4D C4       lea ecx,dword ptr ss:
0072B608   .895D 9C       mov dword ptr ss:,ebx
0072B60B   .897D 94       mov dword ptr ss:,edi                     ;悬挂运输.00635558
0072B60E   .895D AC       mov dword ptr ss:,ebx
0072B611   .897D A4       mov dword ptr ss:,edi                     ;悬挂运输.00635558
0072B614   .895D BC       mov dword ptr ss:,ebx
0072B617   .897D B4       mov dword ptr ss:,edi                     ;悬挂运输.00635558
0072B61A   .C745 8C 70E04>mov dword ptr ss:,悬挂运输.0047E070             ;请插入正确的光盘
0072B621   .C745 84 08000>mov dword ptr ss:,0x8
0072B628   .FF15 14114000 call dword ptr ds:[<&MSVBVM60.__vbaVarDup>]         ;msvbvm60.__vbaVarDup
0072B62E   .8D55 94       lea edx,dword ptr ss:
0072B631   .8D45 A4       lea eax,dword ptr ss:
复制到可执行文件
od载入新的执行文件,输密码666666666后出现



中文搜索引擎→智能搜索。
左键双击口令不对
到达这里




0072B6B9   .52            push edx                                              ; /var18 = ntdll.KiFastSystemCallRet
0072B6BA   .50            push eax                                              ; |var28 = NULL
0072B6BB   .C745 D8 00000>mov dword ptr ss:,0x0                     ; |
0072B6C2   .C745 C4 08800>mov dword ptr ss:,0x8008                  ; |
0072B6C9   .FF15 84104000 call dword ptr ds:[<&MSVBVM60.__vbaVarTstEq>]         ; \__vbaVarTstEq      这里是口令的比较
0072B6CF   .8D4D D4       lea ecx,dword ptr ss:
0072B6D2   .8985 44FFFFFF mov dword ptr ss:,eax
0072B6D8   .FF15 40114000 call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>]          ;msvbvm60.__vbaFreeObj
0072B6DE   .8D4D C4       lea ecx,dword ptr ss:
0072B6E1   .FF15 1C104000 call dword ptr ds:[<&MSVBVM60.__vbaFreeVar>]          ;msvbvm60.__vbaFreeVar
0072B6E7   .66:83BD 44FFF>cmp word ptr ss:,0x0
0072B6EF   .74 3A         je short 悬挂运输.0072B72B                                 这里跳向错误口令的弹出对话框je改为jne即可爆破
0072B6F1   .8B0E          mov ecx,dword ptr ds:
0072B6F3   .56            push esi
0072B6F4   .FF91 08030000 call dword ptr ds:                         ;悬挂运输.0065006C
0072B6FA   .8D55 D4       lea edx,dword ptr ss:
0072B6FD   .50            push eax
0072B6FE   .52            push edx                                              ;ntdll.KiFastSystemCallRet
0072B6FF   .FF15 4C104000 call dword ptr ds:[<&MSVBVM60.__vbaObjSet>]         ;msvbvm60.__vbaObjSet
0072B705   .8BF0          mov esi,eax
0072B707   .6A FF         push -0x1
0072B709   .56            push esi
0072B70A   .8B06          mov eax,dword ptr ds:
0072B70C   .FF90 9C000000 call dword ptr ds:
0072B712   .85C0          test eax,eax
0072B714   .DBE2          fclex
0072B716   .0F8D A7000000 jge 悬挂运输.0072B7C3
0072B71C   .68 9C000000   push 0x9C
0072B721   .68 84E04700   push 悬挂运输.0047E084
0072B726   .E9 90000000   jmp 悬挂运输.0072B7BB
0072B72B   >8D55 84       lea edx,dword ptr ss:
0072B72E   .8D4D C4       lea ecx,dword ptr ss:
0072B731   .895D 9C       mov dword ptr ss:,ebx
0072B734   .897D 94       mov dword ptr ss:,edi                     ;悬挂运输.006922F8
0072B737   .895D AC       mov dword ptr ss:,ebx
0072B73A   .897D A4       mov dword ptr ss:,edi                     ;悬挂运输.006922F8
0072B73D   .895D BC       mov dword ptr ss:,ebx
0072B740   .897D B4       mov dword ptr ss:,edi                     ;悬挂运输.006922F8
0072B743   .C745 8C 98E04>mov dword ptr ss:,悬挂运输.0047E098             ;口令不对,要求重新输入
0072B74A   .C745 84 08000>mov dword ptr ss:,0x8
0072B751   .FF15 14114000 call dword ptr ds:[<&MSVBVM60.__vbaVarDup>]         ;msvbvm60.__vbaVarD
复制到可执行文件→选择→保存文件
OK破解成功。

crysky7ye 发表于 2017-5-22 12:49

补充上面的疑问:VB断点拦截驱动器:

bp GetDriveTypeA 获取磁盘驱动器类型

bp GetLogicalDrives 获取逻辑驱动器标记

bp GetLogicalDriveStringsA 获取卖前一切逻辑驱动器的根驱动器路径


crysky7ye 发表于 2017-5-24 20:43

Hmily 发表于 2017-5-24 16:14
看0047E028关键call里对eax的赋值。

谢谢大神指点。我在弄注册机。可是注册机显示eax的值总是多出来一块。不知道为什么

fisher 发表于 2017-5-21 21:31

软件的名字很高大上....嗯只有这样了
分支跳转确实是个万精油{:17_1078:}

ee22ee 发表于 2017-5-21 22:14

学习学习,谢谢楼主分享

陆地巡洋舰 发表于 2017-5-21 22:28

收藏了 留着以后慢慢学

wuqiai888 发表于 2017-5-21 23:32

66666666666

慌慌张张 发表于 2017-5-22 08:44

谢谢分享

hackabi 发表于 2017-5-22 10:10

这个没什么技术含量,随便一个新手都能破...

骑狗的猴子 发表于 2017-5-22 19:48

表示看的一脸懵逼

非寒 发表于 2017-5-22 20:06

共同学习
页: [1] 2 3
查看完整版本: 某计算软件爆破破解,求各位大神指点一下