刚学习破解不知道我这样的思路和步骤对不对,希望高手不要见笑,并希望高手给点宝贵意见 谢谢~~~ 【文章标题】: 爆破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 编辑 ] |