刚学习破解不知道我这样的思路和步骤对不对,希望高手不要见笑,并希望高手给点宝贵意见 谢谢~~~ 【文章标题】: 爆破SPX Instant Screen Capture 6.0 汉化版
【文章作者】: DETY
【软件名称】: SPX Instant Screen Capture 6.0
【软件大小】: 1.78 M
【下载地址】: 自己搜一下
【加壳方式】: 无壳
【保护方式】: 序列号
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: PEID OllyDBG
【操作平台】: Windows XP
【作者声明】: 本人超级菜鸟只为技术学习,没有其他目的。失误之处敬请诸位大侠赐教!
【软件介绍】: 是一个功能强大的屏幕图像捕捉程序,支持鼠标和快捷键两种捕捉方式,支持任意图形,长方形,窗口,整个桌面四种捕捉范围,捕捉后的图片可以直接复制到剪贴板,保存为文件,用Email发给朋友,通过内置的FTP软件上传到网站,发送给图像编辑工具进行编辑修改,或者发送给打印机或者传真机,程序还具有在设定的时间间隔内连续捕捉和对捕捉的图片进行发大缩小的功能。
-------------------------------------------------------------------------------------
软件是一个比较经典的截图软件,也是我一直在用的一个工具,今天闲来无聊简单爆破了一下。
第一步:首先PEID查壳(无壳),用了“PEID插件看了下”用了还不少加密算法,汗~~ 注册码是根不出来了,那就破解一下试试。
第二步:OD载入,由于是汉化版没有加壳,就搜索中文错误字符串“用户名与产品 ID 无效。请重试。”并来到一下代码:
004CB21F |. 50 push eax ; |Title
004CB220 |. 68 F0B24C00 push 004CB2F0 ; |用户名与产品 ID 无效。请重试。
004CB225 |. A1 1C074F00 mov eax, dword ptr [4F071C] ; |
004CB22A |. 8B00 mov eax, dword ptr [eax] ; |
004CB22C |. 8B40 30 mov eax, dword ptr [eax+30] ; |
004CB22F |. 50 push eax ; |hOwner
004CB230 |. E8 67C3F3FF call <jmp.&user32.MessageBoxA> ; \\\错误提示 用户名ID错误
然后来到断首下段首004CB0E0出下段,运行程序输入注册码和假码,点击注册成功断下。
004CB0E0 /$ 55 push ebp ; \\段在这里,单步继续走。
004CB0E1 |. 8BEC mov ebp, esp
004CB0E3 |. B9 04000000 mov ecx, 4
004CB0E8 |> 6A 00 /push 0
004CB0EA |. 6A 00 |push 0
004CB0EC |. 49 |dec ecx
004CB0ED |.^ 75 F9 \jnz short 004CB0E8
004CB0EF |. 51 push ecx
004CB0F0 |. 53 push ebx
004CB0F1 |. 8BD8 mov ebx, eax
004CB0F3 |. 33C0 xor eax, eax
004CB0F5 |. 55 push ebp
004CB0F6 |. 68 72B24C00 push 004CB272
004CB0FB |. 64:FF30 push dword ptr fs:[eax]
004CB0FE |. 64:8920 mov dword ptr fs:[eax], esp
004CB101 |. 8D55 FC lea edx, dword ptr [ebp-4]
004CB104 |. 8B83 18030000 mov eax, dword ptr [ebx+318]
004CB10A |. E8 8909F8FF call 0044BA98
004CB10F |. 837D FC 00 cmp dword ptr [ebp-4], 0
004CB113 |. 74 14 je short 004CB129
004CB115 |. 8D55 F8 lea edx, dword ptr [ebp-8]
004CB118 |. 8B83 28030000 mov eax, dword ptr [ebx+328]
004CB11E |. E8 7509F8FF call 0044BA98 ; \\检测注册名是不是空
004CB123 |. 837D F8 00 cmp dword ptr [ebp-8], 0
004CB127 |. 75 34 jnz short 004CB15D ; \\必须跳
004CB129 |> 6A 30 push 30
004CB12B |. 8D55 F4 lea edx, dword ptr [ebp-C]
004CB12E |. A1 1C074F00 mov eax, dword ptr [4F071C]
004CB133 |. 8B00 mov eax, dword ptr [eax]
004CB135 |. E8 CE09FAFF call 0046BB08
004CB13A |. 8B45 F4 mov eax, dword ptr [ebp-C]
004CB13D |. E8 9699F3FF call 00404AD8
004CB142 |. 50 push eax ; |Title
004CB143 |. 68 80B24C00 push 004CB280 ; |如果要获取你的用户名与产品 ID,那么请购买一份授权。
004CB148 |. A1 1C074F00 mov eax, dword ptr [4F071C] ; |
004CB14D |. 8B00 mov eax, dword ptr [eax] ; |
004CB14F |. 8B40 30 mov eax, dword ptr [eax+30] ; |
004CB152 |. 50 push eax ; |hOwner
004CB153 |. E8 44C4F3FF call <jmp.&user32.MessageBoxA> ; \MessageBoxA
004CB158 |. E9 D8000000 jmp 004CB235
004CB15D |> 66:83BB 3A0300>cmp word ptr [ebx+33A], 0
004CB165 |. 0F84 CA000000 je 004CB235 ; \\不能跳
004CB16B |. 6A 01 push 1
004CB16D |. 8D55 F0 lea edx, dword ptr [ebp-10]
004CB170 |. 8B83 28030000 mov eax, dword ptr [ebx+328]
004CB176 |. E8 1D09F8FF call 0044BA98
004CB17B |. 8B45 F0 mov eax, dword ptr [ebp-10] ; \\假码送入EAX
004CB17E |. 50 push eax
004CB17F |. 8D55 EC lea edx, dword ptr [ebp-14]
004CB182 |. 8B83 18030000 mov eax, dword ptr [ebx+318]
004CB188 |. E8 0B09F8FF call 0044BA98
004CB18D |. 8B55 EC mov edx, dword ptr [ebp-14]
004CB190 |. 59 pop ecx
004CB191 |. 8B83 3C030000 mov eax, dword ptr [ebx+33C]
004CB197 |. FF93 38030000 call dword ptr [ebx+338] ; \\那这个一定就是关键CALL啦~~
004CB19D |. 84C0 test al, al
004CB19F |. 74 65 je short 004CB206 ; \\关键跳不能跳 不则注册成功 只爆破这里是不行的
004CB1A1 |. 6A 30 push 30
004CB1A3 |. 8D55 E8 lea edx, dword ptr [ebp-18]
004CB1A6 |. A1 1C074F00 mov eax, dword ptr [4F071C]
004CB1AB |. 8B00 mov eax, dword ptr [eax]
004CB1AD |. E8 5609FAFF call 0046BB08
004CB1B2 |. 8B45 E8 mov eax, dword ptr [ebp-18]
004CB1B5 |. E8 1E99F3FF call 00404AD8
004CB1BA |. 50 push eax
004CB1BB |. 68 C8B24C00 push 004CB2C8 ; 感谢你注册
004CB1C0 |. 8D55 E0 lea edx, dword ptr [ebp-20]
004CB1C3 |. A1 1C074F00 mov eax, dword ptr [4F071C]
004CB1C8 |. 8B00 mov eax, dword ptr [eax]
004CB1CA |. E8 3909FAFF call 0046BB08
004CB1CF |. FF75 E0 push dword ptr [ebp-20]
004CB1D2 |. 68 ECB24C00 push 004CB2EC ; .
004CB1D7 |. 8D45 E4 lea eax, dword ptr [ebp-1C]
004CB1DA |. BA 03000000 mov edx, 3
004CB1DF |. E8 BC97F3FF call 004049A0
004CB1E4 |. 8B45 E4 mov eax, dword ptr [ebp-1C]
004CB1E7 |. E8 EC98F3FF call 00404AD8
004CB1EC |. 50 push eax ; |Text
004CB1ED |. A1 1C074F00 mov eax, dword ptr [4F071C] ; |
004CB1F2 |. 8B00 mov eax, dword ptr [eax] ; |
004CB1F4 |. 8B40 30 mov eax, dword ptr [eax+30] ; |
004CB1F7 |. 50 push eax ; |hOwner
004CB1F8 |. E8 9FC3F3FF call <jmp.&user32.MessageBoxA> ; \\\注册成功
004CB1FD |. 8BC3 mov eax, ebx
004CB1FF |. E8 00D7F9FF call 00468904
004CB204 |. EB 2F jmp short 004CB235
004CB206 |> 6A 30 push 30
004CB208 |. 8D55 DC lea edx, dword ptr [ebp-24]
004CB20B |. A1 1C074F00 mov eax, dword ptr [4F071C]
004CB210 |. 8B00 mov eax, dword ptr [eax]
004CB212 |. E8 F108FAFF call 0046BB08
004CB217 |. 8B45 DC mov eax, dword ptr [ebp-24]
004CB21A |. E8 B998F3FF call 00404AD8
004CB21F |. 50 push eax ; |Title
004CB220 |. 68 F0B24C00 push 004CB2F0 ; |用户名与产品 ID 无效。请重试。
004CB225 |. A1 1C074F00 mov eax, dword ptr [4F071C] ; |
004CB22A |. 8B00 mov eax, dword ptr [eax] ; |
004CB22C |. 8B40 30 mov eax, dword ptr [eax+30] ; |
004CB22F |. 50 push eax ; |hOwner
004CB230 |. E8 67C3F3FF call <jmp.&user32.MessageBoxA> ; \\\错误提示 用户名ID错误
一路跟踪到call dword ptr [ebx+338]这段F7跟进:
004CB894 /$ 55 push ebp ; \\跟进来到这里
004CB895 |. 8BEC mov ebp, esp
004CB897 |. 6A 00 push 0
004CB899 |. 6A 00 push 0
004CB89B |. 6A 00 push 0
004CB89D |. 6A 00 push 0
004CB89F |. 6A 00 push 0
004CB8A1 |. 6A 00 push 0
004CB8A3 |. 6A 00 push 0
004CB8A5 |. 53 push ebx
004CB8A6 |. 56 push esi
004CB8A7 |. 57 push edi
004CB8A8 |. 894D F8 mov dword ptr [ebp-8], ecx
004CB8AB |. 8955 FC mov dword ptr [ebp-4], edx
004CB8AE |. 8BD8 mov ebx, eax
004CB8B0 |. 8B45 FC mov eax, dword ptr [ebp-4]
004CB8B3 |. E8 1092F3FF call 00404AC8
004CB8B8 |. 8B45 F8 mov eax, dword ptr [ebp-8]
004CB8BB |. E8 0892F3FF call 00404AC8
004CB8C0 |. 33C0 xor eax, eax
004CB8C2 |. 55 push ebp
004CB8C3 |. 68 0DBA4C00 push 004CBA0D
004CB8C8 |. 64:FF30 push dword ptr fs:[eax]
004CB8CB |. 64:8920 mov dword ptr fs:[eax], esp
004CB8CE |. C645 F7 00 mov byte ptr [ebp-9], 0
004CB8D2 |. A0 20BA4C00 mov al, byte ptr [4CBA20]
004CB8D7 |. 50 push eax
004CB8D8 |. 8D45 E4 lea eax, dword ptr [ebp-1C]
004CB8DB |. 50 push eax
004CB8DC |. 33C9 xor ecx, ecx
004CB8DE |. BA 2CBA4C00 mov edx, 004CBA2C
004CB8E3 |. 8B45 FC mov eax, dword ptr [ebp-4]
004CB8E6 |. E8 2D22F4FF call 0040DB18
004CB8EB |. 8B45 E4 mov eax, dword ptr [ebp-1C]
004CB8EE |. 8D55 E8 lea edx, dword ptr [ebp-18]
004CB8F1 |. E8 0ED1F3FF call 00408A04
004CB8F6 |. 837D E8 00 cmp dword ptr [ebp-18], 0
004CB8FA |. 0F84 E5000000 je 004CB9E5
004CB900 |. 837D F8 00 cmp dword ptr [ebp-8], 0
004CB904 |. 0F84 DB000000 je 004CB9E5
004CB90A |. 8D45 F0 lea eax, dword ptr [ebp-10]
004CB90D |. BA 38BA4C00 mov edx, 004CBA38 ; life
004CB912 |. E8 A98DF3FF call 004046C0
004CB917 |. 8D45 EC lea eax, dword ptr [ebp-14]
004CB91A |. BA 48BA4C00 mov edx, 004CBA48 ; is soft and moody
004CB91F |. E8 9C8DF3FF call 004046C0
004CB924 |. 33C9 xor ecx, ecx
004CB926 |. B2 01 mov dl, 1
004CB928 |. A1 746B4C00 mov eax, dword ptr [4C6B74]
004CB92D |. E8 2EC7FFFF call 004C8060
004CB932 |. 8BF0 mov esi, eax
004CB934 |. 8B0D F0804C00 mov ecx, dword ptr [4C80F0]
004CB93A |. 8B53 38 mov edx, dword ptr [ebx+38]
004CB93D |. 8BC6 mov eax, esi
004CB93F |. E8 C4DEFEFF call 004B9808
004CB944 |. 8D4D F0 lea ecx, dword ptr [ebp-10]
004CB947 |. 8B55 E8 mov edx, dword ptr [ebp-18]
004CB94A |. 8BC6 mov eax, esi
004CB94C |. 8B38 mov edi, dword ptr [eax]
004CB94E |. FF57 54 call dword ptr [edi+54]
004CB951 |. 8BC6 mov eax, esi
004CB953 |. 8B10 mov edx, dword ptr [eax]
004CB955 |. FF52 44 call dword ptr [edx+44]
004CB958 |. 8BC6 mov eax, esi
004CB95A |. E8 B97EF3FF call 00403818
004CB95F |. 33C9 xor ecx, ecx
004CB961 |. B2 01 mov dl, 1
004CB963 |. A1 80B44B00 mov eax, dword ptr [4BB480]
004CB968 |. E8 E7E2FEFF call 004B9C54
004CB96D |. 8BF0 mov esi, eax
004CB96F |. 8B0D 20C54B00 mov ecx, dword ptr [4BC520]
004CB975 |. 8B53 3C mov edx, dword ptr [ebx+3C]
004CB978 |. 8BC6 mov eax, esi
004CB97A |. E8 89DEFEFF call 004B9808
004CB97F |. 8D4D EC lea ecx, dword ptr [ebp-14]
004CB982 |. 8B55 F8 mov edx, dword ptr [ebp-8]
004CB985 |. 8BC6 mov eax, esi
004CB987 |. 8B38 mov edi, dword ptr [eax]
004CB989 |. FF57 58 call dword ptr [edi+58]
004CB98C |. 8BC6 mov eax, esi
004CB98E |. 8B10 mov edx, dword ptr [eax]
004CB990 |. FF52 44 call dword ptr [edx+44]
004CB993 |. 8BC6 mov eax, esi
004CB995 |. E8 7E7EF3FF call 00403818
004CB99A |. 8B45 F0 mov eax, dword ptr [ebp-10]
004CB99D |. 8B55 EC mov edx, dword ptr [ebp-14]
004CB9A0 |. E8 7F90F3FF call 00404A24 ; \\单步来到这里
004CB9A5 0F94C0 sete al ; \\爆破这里直接NOP掉让[ebx+34]的值不等于0
004CB9A8 |. 8843 34 mov byte ptr [ebx+34], al
004CB9AB |. 807B 34 00 cmp byte ptr [ebx+34], 0
004CB9AF |. 74 34 je short 004CB9E5 ; \\关键跳转正确的话不能跳 当然爆破这里也是不行的
004CB9B1 |. 8D43 40 lea eax, dword ptr [ebx+40]
004CB9B4 |. 8B55 FC mov edx, dword ptr [ebp-4]
004CB9B7 |. B9 FF000000 mov ecx, 0FF
004CB9BC |. E8 FB8EF3FF call 004048BC
从断首的信息窗口可以看出这里来自两个地址的调用“本地调用来自 004CBBF2, 004D0FB2”,所以说只修改004CB19F出的跳转来爆破是不行的。
经过测试只要吧004CB9A5这一行直接NOP掉皆可爆破成功,注册时只要随意输入信息皆可注册成功,再次打开也不回出现注册提示框了~~~
注册截图(提示:真的很抱歉由于我的粗心大意发的这个注册截图有个“未注册提示”,尴尬的很,不过我测试了下功能限制全无,可以正常使用(去除了NAG和时间限制也可以正常使用,特此我又从网上找了个别人的破解补丁测试了下也是这种情况,在此对大家说声对不起~~~)):
[ 本帖最后由 DETY 于 2009-2-5 08:57 编辑 ] |