飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7967|回复: 4

[原创] SPX Studio暴破思路 (菜鸟篇)

[复制链接]

该用户从未签到

发表于 2006-8-25 12:35:32 | 显示全部楼层 |阅读模式
SPX Studio暴破思路 (菜鸟篇)


SPX Studio暴破思路


软件名称: SPX Studio2.1
软件语言: 英文
软件类别: 国外
运行环境: Win9x/NT/2000/XP
软件大小: 1.7MB
软件介绍:Explain your screen captures by adding basic annotations like: highlights, balloons, sticky notes, text areas, images. It makes the difference between a plain screen capture and an intelligent one.

下载地址:http://www.moodysoft.com/studio/sdsetup.exe



一、程序没加壳,Borland Delphi 6.0 - 7.0程序。

二、运行软件随意填注册码及用户名,出现Invalid User Name or Product ID. Please try again,好东西。OD载入程序后,我们搜索一下看看,果然很快就看到结果,双击后向上找:
从这里开始:
004BAF0D         55          push ebp
004BAF0E         68 8AB04B00 push Studio.004BB08A
004BAF13         64:FF30     push dword ptr fs:[eax]
004BAF16         64:8920     mov dword ptr fs:[eax],esp
004BAF19         8D55 FC     lea edx,dword ptr ss:[ebp-4]
004BAF1C         8B83 180300>mov eax,dword ptr ds:[ebx+318]
004BAF22         E8 49BDF8FF call Studio.00446C70
004BAF27         837D FC 00  cmp dword ptr ss:[ebp-4],0
004BAF2B         74 14       je short Studio.004BAF41       ; 判断注册名是否为0
004BAF2D         8D55 F8     lea edx,dword ptr ss:[ebp-8]
004BAF30         8B83 280300>mov eax,dword ptr ds:[ebx+328]
004BAF36         E8 35BDF8FF call Studio.00446C70
004BAF3B         837D F8 00  cmp dword ptr ss:[ebp-8],0
004BAF3F         75 34       jnz short Studio.004BAF75      ; 判断注册码是否为零,不为零则进行下去
004BAF41         6A 30       push 30
004BAF43         8D55 F4     lea edx,dword ptr ss:[ebp-C]
004BAF46         A1 4CB24C00 mov eax,dword ptr ds:[4CB24C]
004BAF4B         8B00        mov eax,dword ptr ds:[eax]
004BAF4D         E8 A6BFFAFF call Studio.00466EF8
004BAF52         8B45 F4     mov eax,dword ptr ss:[ebp-C]
004BAF55         E8 369BF4FF call Studio.00404A90
004BAF5A         50          push eax
004BAF5B         68 98B04B00 push Studio.004BB098           ; ASCII "To obtain your UserName and Product ID please buy a licence."
004BAF60         A1 4CB24C00 mov eax,dword ptr ds:[4CB24C]
004BAF65         8B00        mov eax,dword ptr ds:[eax]
004BAF67         8B40 30     mov eax,dword ptr ds:[eax+30]
004BAF6A         50          push eax
004BAF6B         E8 80C5F4FF call <jmp.&user32.MessageBoxA>
004BAF70         E9 D8000000 jmp Studio.004BB04D
004BAF75         66:83BB 3A0>cmp word ptr ds:[ebx+33A],0
004BAF7D         0F84 CA0000>je Studio.004BB04D
004BAF83         6A 01       push 1
004BAF85         8D55 F0     lea edx,dword ptr ss:[ebp-10]
004BAF88         8B83 280300>mov eax,dword ptr ds:[ebx+328]
004BAF8E         E8 DDBCF8FF call Studio.00446C70
004BAF93         8B45 F0     mov eax,dword ptr ss:[ebp-10]
004BAF96         50          push eax                       ; 出现假注册码
004BAF97         8D55 EC     lea edx,dword ptr ss:[ebp-14]
004BAF9A         8B83 180300>mov eax,dword ptr ds:[ebx+318]
004BAFA0         E8 CBBCF8FF call Studio.00446C70
004BAFA5         8B55 EC     mov edx,dword ptr ss:[ebp-14]
004BAFA8         59          pop ecx
004BAFA9         8B83 3C0300>mov eax,dword ptr ds:[ebx+33C]
004BAFAF         FF93 380300>call dword ptr ds:[ebx+338]    ; 算法call(1),进去看看
004BAFB5         84C0        test al,al
004BAFB7         74 65       je short Studio.004BB01E        向下可看到,不跳转则注册成功,可见上面的test为标志位判断
004BAFB9         6A 30       push 30
004BAFBB         8D55 E8     lea edx,dword ptr ss:[ebp-18]
004BAFBE         A1 4CB24C00 mov eax,dword ptr ds:[4CB24C]
004BAFC3         8B00        mov eax,dword ptr ds:[eax]
004BAFC5         E8 2EBFFAFF call Studio.00466EF8
004BAFCA         8B45 E8     mov eax,dword ptr ss:[ebp-18]
004BAFCD         E8 BE9AF4FF call Studio.00404A90
004BAFD2         50          push eax
004BAFD3         68 E0B04B00 push Studio.004BB0E0           ; ASCII "Thank you for registering "


跟随算法call(1),我们来到这里:
004BA7A1         53          push ebx
004BA7A2         56          push esi
004BA7A3         57          push edi
004BA7A4         894D F8     mov dword ptr ss:[ebp-8],ecx   ; 假注册码
004BA7A7         8955 FC     mov dword ptr ss:[ebp-4],edx   ; 假注册名
004BA7AA         8BD8        mov ebx,eax
004BA7AC         8B45 FC     mov eax,dword ptr ss:[ebp-4]
004BA7AF         E8 CCA2F4FF call Studio.00404A80
004BA7B4         8B45 F8     mov eax,dword ptr ss:[ebp-8]
004BA7B7         E8 C4A2F4FF call Studio.00404A80
004BA7BC         33C0        xor eax,eax
004BA7BE         55          push ebp
004BA7BF         68 09A94B00 push Studio.004BA909
004BA7C4         64:FF30     push dword ptr fs:[eax]
004BA7C7         64:8920     mov dword ptr fs:[eax],esp
004BA7CA         C645 F7 00  mov byte ptr ss:[ebp-9],0
004BA7CE         A0 1CA94B00 mov al,byte ptr ds:[4BA91C]
004BA7D3         50          push eax
004BA7D4         8D45 E4     lea eax,dword ptr ss:[ebp-1C]
004BA7D7         50          push eax
004BA7D8         33C9        xor ecx,ecx
004BA7DA         BA 28A94B00 mov edx,Studio.004BA928
004BA7DF         8B45 FC     mov eax,dword ptr ss:[ebp-4]
004BA7E2         E8 C933F5FF call Studio.0040DBB0
004BA7E7         8B45 E4     mov eax,dword ptr ss:[ebp-1C]
004BA7EA         8D55 E8     lea edx,dword ptr ss:[ebp-18]
004BA7ED         E8 2EE1F4FF call Studio.00408920
004BA7F2         837D E8 00  cmp dword ptr ss:[ebp-18],0
004BA7F6         0F84 E50000>je Studio.004BA8E1
004BA7FC         837D F8 00  cmp dword ptr ss:[ebp-8],0
004BA800         0F84 DB0000>je Studio.004BA8E1
004BA806         8D45 F0     lea eax,dword ptr ss:[ebp-10]
004BA809         BA 34A94B00 mov edx,Studio.004BA934        ; ASCII "life"
004BA80E         E8 659EF4FF call Studio.00404678
004BA813         8D45 EC     lea eax,dword ptr ss:[ebp-14]  ; 4kg,有意思
004BA816         BA 44A94B00 mov edx,Studio.004BA944        ; ASCII "is soft and moody"
004BA81B         E8 589EF4FF call Studio.00404678
004BA820         33C9        xor ecx,ecx
004BA822         B2 01       mov dl,1
004BA824         A1 54604B00 mov eax,dword ptr ds:[4B6054]
004BA829         E8 12CDFFFF call Studio.004B7540
004BA82E         8BF0        mov esi,eax
004BA830         8B0D D0754B>mov ecx,dword ptr ds:[4B75D0]  ; Studio.004B761C
004BA836         8B53 38     mov edx,dword ptr ds:[ebx+38]
004BA839         8BC6        mov eax,esi
004BA83B         E8 A8E4FEFF call Studio.004A8CE8             懂算法的,可以进去看看

004BA840         8D4D F0     lea ecx,dword ptr ss:[ebp-10]
004BA843         8B55 E8     mov edx,dword ptr ss:[ebp-18]
004BA846         8BC6        mov eax,esi
004BA848         8B38        mov edi,dword ptr ds:[eax]
004BA84A         FF57 54     call dword ptr ds:[edi+54]
004BA84D         8BC6        mov eax,esi
004BA84F         8B10        mov edx,dword ptr ds:[eax]
004BA851         FF52 44     call dword ptr ds:[edx+44]
004BA854         8BC6        mov eax,esi
004BA856         E8 958FF4FF call Studio.004037F0
004BA85B         33C9        xor ecx,ecx
004BA85D         B2 01       mov dl,1
004BA85F         A1 60A94A00 mov eax,dword ptr ds:[4AA960]
004BA864         E8 CBE8FEFF call Studio.004A9134
004BA869         8BF0        mov esi,eax
004BA86B         8B0D 00BA4A>mov ecx,dword ptr ds:[4ABA00]  ; Studio.004ABA4C
004BA871         8B53 3C     mov edx,dword ptr ds:[ebx+3C]
004BA874         8BC6        mov eax,esi
004BA876         E8 6DE4FEFF call Studio.004A8CE8
004BA87B         8D4D EC     lea ecx,dword ptr ss:[ebp-14]
004BA87E         8B55 F8     mov edx,dword ptr ss:[ebp-8]
004BA881         8BC6        mov eax,esi
004BA883         8B38        mov edi,dword ptr ds:[eax]
004BA885         FF57 58     call dword ptr ds:[edi+58]
004BA888         8BC6        mov eax,esi
004BA88A         8B10        mov edx,dword ptr ds:[eax]
004BA88C         FF52 44     call dword ptr ds:[edx+44]
004BA88F         8BC6        mov eax,esi
004BA891         E8 5A8FF4FF call Studio.004037F0
004BA896         8B45 F0     mov eax,dword ptr ss:[ebp-10]
004BA899         8B55 EC     mov edx,dword ptr ss:[ebp-14]
004BA89C         E8 3BA1F4FF call Studio.004049DC
004BA8A1         0F94C0      sete al
004BA8A4         8843 34     mov byte ptr ds:[ebx+34],al
004BA8A7         807B 34 00  cmp byte ptr ds:[ebx+34],0
004BA8AB         74 34       je short Studio.004BA8E1       ; 关键跳,nop掉即注册成功
004BA8AD         8D43 40     lea eax,dword ptr ds:[ebx+40]
004BA8B0         8B55 FC     mov edx,dword ptr ss:[ebp-4]
004BA8B3         B9 FF000000 mov ecx,0FF
004BA8B8         E8 B79FF4FF call Studio.00404874
004BA8BD         8D83 400100>lea eax,dword ptr ds:[ebx+140]
004BA8C3         8B55 F8     mov edx,dword ptr ss:[ebp-8]
004BA8C6         B9 FF000000 mov ecx,0FF
004BA8CB         E8 A49FF4FF call Studio.00404874
004BA8D0         807D 08 00  cmp byte ptr ss:[ebp+8],0
004BA8D4         74 07       je short Studio.004BA8DD
004BA8D6         8BC3        mov eax,ebx
004BA8D8         E8 0B020000 call Studio.004BAAE8
004BA8DD         C645 F7 01  mov byte ptr ss:[ebp-9],1
004BA8E1         33C0        xor eax,eax

爆破完该处后运行软件发现还是有注册对话框,我们接着来分析,通过关键字符参考,我们可以找到如下爆破点:

004BA4FB        /0F85 9F0100>jnz Studio.004BA6A0      此处改为绝对跳jmp,即可去除注册对话框

修改上两处后即注册成功。


总结:我只对爆破懂点,算法分析及写文章不是很在行,有不完善之处希望指正!

评分

参与人数 1威望 +16 飘云币 +8 收起 理由
绝恋风尘 + 16 + 8

查看全部评分

PYG19周年生日快乐!

该用户从未签到

发表于 2006-8-26 01:03:28 | 显示全部楼层
兄弟分析思路非常清晰,学习了!
PYG19周年生日快乐!

该用户从未签到

发表于 2006-8-26 18:00:59 | 显示全部楼层
兄弟真棒,又学习了!!
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2006-8-26 20:33:12 | 显示全部楼层
原帖由 绝恋风尘 于 2006-8-26 18:00 发表
兄弟真棒,又学习了!!

让兄弟见笑了:$
PYG19周年生日快乐!

该用户从未签到

发表于 2006-8-27 17:26:39 | 显示全部楼层
学习了..谢谢
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表