mzscym 发表于 2007-11-25 22:31:56

接龙游戏,对一软件的跟跟过程,功能仍有限制,请版主与高手出马,一般人搞不定。

一个国外的软件,目前,该软件尚存在如下问题,虽print菜单由灰色变正常,但不能使用其功能,同时快捷菜单上print 和打印预览灰色菜单不能使用。
请高手们接龙继续进行下一步破解,或直接给一个明确的答案,有无print可执行程序块,DEDE反编辑发现有打印窗口与预览窗口。下面是软件的下载地址:
http://www.liveinformatics.com/eng/feedlive/
软件安装后,可用你申请时的姓名与其给你的试用注册码进行注册,试用期为15天。可用我给的下面的crack程序,无限进使用,但功能不全(主要是水平有限).下面是跟踪过程:PEID查无壳,dephi语言,窃喜:
005253AA   .E8 3DEDEDFF      call    004040EC
005253AF   .8D95 B0FEFFFF    lea   edx, dword ptr
005253B5   .B8 34B75200      mov   eax, 0052B734                  ;
005253BA   .B1 28            mov   cl, 28
005253BC   .E8 E7D8EDFF      call    00402CA8
005253C1   .E8 4EF4FFFF      call    00524814
005253C6   .2C 01            sub   al, 1                            ;Switch (cases 0..1)
005253C8   .EB 13            jmp   short 005253DD                   ;//修改处一,jmp 跳过“到期窗口”
005253CA   .74 0C            je      short 005253D8
005253CC   .FEC8             dec   al                               ;Default case of switch 005253C6
005253CE   .E8 3537FBFF      call    004D8B08
005253D3   .E8 80E9EDFF      call    00403D58
005253D8   >E8 7BE9EDFF      call    00403D58                         ;!!!!!进去就完了; Case 1 of switch 005253C6
005253DD   >33C0             xor   eax, eax                         ;Case 0 of switch 005253C6
005253DF   .55               push    ebp
005253E0   .68 DC545200      push    005254DC
005253E5   .64:FF30          push    dword ptr fs:

追踪字符串 Trial version,顺便也砍掉试用提示窗口显示:
004E4FC3\.C3               retn
004E4FC4   .53               push    ebx
004E4FC5   .8BD8             mov   ebx, eax
004E4FC7   .803D F4B15200 00 cmp   byte ptr , 0
004E4FCE   .EB 41            jmp   short 004E5011                   ;//修改处二,jmp 跳过“试用版提示窗口”
004E4FD0   .A1 5C915200      mov   eax, dword ptr
004E4FD5   .50               push    eax
004E4FD6   .6A 00            push    0
004E4FD8   .8B0D 84965200    mov   ecx, dword ptr           ;Feedlive.0052B00C
004E4FDE   .8B15 9C945200    mov   edx, dword ptr           ;Feedlive.0052AAC0
004E4FE4   .A1 00945200      mov   eax, dword ptr


======================以下错误提示窗口=====================
单修改上面,运行程序会出现错误,错误信息MessageBox函数没能断下,那就根据字符"Error:"断,不过发现超多这类字符。其实更方便是对函数MessageBeep下断,因为错误信息总是伴随”咚“声音。跟随返回找到下面几处,这些错误消息不会导致程序退出

00524842   .8D45 EC          lea   eax, dword ptr
00524845   .BA 384A5200      mov   edx, 00524A38                  ;ASCII "LIVE.DLL"
0052484A   .E8 C9F8EDFF      call    00404118
0052484F   .8B45 EC          mov   eax, dword ptr
00524852   .8D4D F8          lea   ecx, dword ptr
00524855   .BA 4C4A5200      mov   edx, 00524A4C                  ;ASCII "$$@@@"
0052485A   .E8 EDF9FFFF      call    0052424C                         ;//安装记录live.dll文件检查
0052485F   .84C0             test    al, al
00524861   .EB 0C            jmp   short 0052486F                   ;//修改处三,修改成 EB 0C
00524863   .B0 17            mov   al, 17
00524865   .E8 42FEFFFF      call    005246AC                         ;//出错窗口
0052486A   .E9 95010000      jmp   00524A04
0052486F   >8D45 E8          lea   eax, dword ptr
00524872   .8B15 48915200    mov   edx, dword ptr           ;Feedlive.0052ADC0
00524878   .E8 37F8EDFF      call    004040B4
0052487D   .8D45 E8          lea   eax, dword ptr
00524880   .BA 5C4A5200      mov   edx, 00524A5C                  ;ASCII "LINFO.DLL"
00524885   .E8 8EF8EDFF      call    00404118
0052488A   .8B45 E8          mov   eax, dword ptr
0052488D   .8D4D F0          lea   ecx, dword ptr
00524890   .BA 704A5200      mov   edx, 00524A70                  ;ASCII "$AF$E"
00524895   .E8 B2F9FFFF      call    0052424C                         ;//安装记录linfo.dll文件检查
0052489A   .84C0             test    al, al
0052489C   .EB 0C            jmp   short 005248AA                   ;//修改处四,修改成 EB 0C
0052489E   .B0 18            mov   al, 18
005248A0   .E8 07FEFFFF      call    005246AC                         ;//出错窗口
005248A5   .E9 5A010000      jmp   00524A04
005248AA   >DD45 F8          fld   qword ptr
005248AD   .DC5D F0          fcomp   qword ptr
005248B0   .DFE0             fstsw   ax
005248B2   .9E               sahf

还有下面一处,因为只有第1跳能越过下面的错误信息call,也只能修改它了,直接反改(或Jmp)

00525106   .33D2             xor   edx, edx
00525108   .E8 D756F3FF      call    0045A7E4
0052510D   .2C 01            sub   al, 1
0052510F   .0F81 D3000000    jno   005251E8                         ; //修改处五,跳过“错误信息窗口”
00525115   .0F84 B5000000    je      005251D0
0052511B   .FEC8             dec   al                               ;Switch (cases 1..2)
0052511D   .0F84 B9000000    je      005251DC
00525123   .FEC8             dec   al
00525125   .74 13            je      short 0052513A
00525127   .EB 05            jmp   short 0052512E
00525129   .E8 7EE0EDFF      call    004031AC
0052512E   >B0 14            mov   al, 14                           ;Default case of switch 0052511B



以上没有什么难点,多改几个跳而已,这个程序难的是下面怎么样修改,若不绕过程序就终止,也就是1分钟左右退出。

004E4200   .E8 5FE4F6FF      call    00452664
004E4205   .5B               pop   ebx
004E4206   .C3               retn                                     ;---------
004E4207      90               nop
004E4208      53               push    ebx                              ;修改处六,错误提示,程序终止 //修改成 retn
004E4209   .8BD8             mov   ebx, eax
004E420B   .8B42 08          mov   eax, dword ptr
004E420E   .48               dec   eax
004E420F   .75 21            jnz   short 004E4232                   ;//Faint,跳到004E4232,没能逃离
004E4211   .6A 00            push    0
004E4213   .6A 00            push    0
004E4215   .68 01140000      push    1401
004E421A   .8BC3             mov   eax, ebx
004E421C   .E8 8F5AF5FF      call    00439CB0
004E4221   .50               push    eax                              ; |hWnd
004E4222   .E8 D13FF2FF      call    <jmp.&user32.PostMessageA>       ; \PostMessageA
004E4227   .33D2             xor   edx, edx
004E4229   .B0 2A            mov   al, 2A
004E422B   .E8 B0FEFFFF      call    004E40E0                         ;//出错窗口
004E4230   .5B               pop   ebx
004E4231   .C3               retn
004E4232   >6A 00            push    0
004E4234   .6A 00            push    0
004E4236   .68 01140000      push    1401
004E423B   .8BC3             mov   eax, ebx
004E423D   .E8 6E5AF5FF      call    00439CB0
004E4242   .50               push    eax                              ; |hWnd
004E4243   .E8 B03FF2FF      call    <jmp.&user32.PostMessageA>       ; \PostMessageA
004E4248   .33D2             xor   edx, edx
004E424A   .B0 2B            mov   al, 2B
004E424C   .E8 8FFEFFFF      call    004E40E0                         ;//出错窗口
004E4251   .5B               pop   ebx
004E4252   .C3               retn
004E4253      90               nop
004E4254/.55               push    ebp

004E4208:53改成C3 (retn),OK!

004E4018      14               db      14
004E4019      02               db      02
004E401A      14               db      14
004E401B   .C8414E00         dd      Feedlive.004E41C8
004E401F   .08424E00         dd      Feedlive.004E4208
004E4023   .06               db      06
004E4024   .54 4D 61 69 6E 4>ascii   "TMainF"
004E402A      09               db      09
004E402B      00               db      00
004E402C   .FC144400         dd      Feedlive.004414FC
004E4030   .0C104400         dd      Feedlive.0044100C

下面是对灰色菜单的处理:
oD载入,bpx enablemenuitem下断,有五个断点
00444298/$53            push    ebx
00444299|.56            push    esi
0044429A|.57            push    edi
0044429B|.8BDA          mov   ebx, edx
0044429D|.8BF0          mov   esi, eax
0044429F      3A5E 2D       cmp   bl, byte ptr ,-------------------修改处7,修改此处为cmp b1,0print菜单由灰色恢复正常
004442A2      74 67         je      short 0044430B
004442A4|.885E 2D       mov   byte ptr , bl
004442A7|.A1 709A5200   mov   eax, dword ptr
004442AC      8338 02       cmp   dword ptr , 2
004442AF      75 0B         jnz   short 004442BC
004442B1|.8BC6          mov   eax, esi
004442B3|.E8 B4000000   call    0044436C
004442B8|.85C0          test    eax, eax
004442BA|.75 0D         jnz   short 004442C9
004442BC|>8B7E 58       mov   edi, dword ptr
004442BF|.85FF          test    edi, edi
004442C1|.74 11         je      short 004442D4
004442C3|.837F 60 00    cmp   dword ptr , 0
004442C7|.74 0B         je      short 004442D4
004442C9|>B2 01         mov   dl, 1
004442CB|.8BC6          mov   eax, esi
004442CD|.8B08          mov   ecx, dword ptr
004442CF|.FF51 38       call    dword ptr
004442D2|.EB 37         jmp   short 0044430B
004442D4|>8B7E 58       mov   edi, dword ptr
004442D7|.85FF          test    edi, edi
004442D9      74 27         je      short 00444302
004442DB|.F646 20 02    test    byte ptr , 2
004442DF      75 21         jnz   short 00444302
004442E1|.33C0          xor   eax, eax
004442E3|.8AC3          mov   al, bl
004442E5|.8B0485 306952>mov   eax, dword ptr
004442EC      83C8 00       or      eax, 0
004442EF|.50            push    eax
004442F0|.0FB746 44   movzx   eax, word ptr
004442F4      50            push    eax
004442F5      8BC7          mov   eax, edi
004442F7|.E8 20E7FFFF   call    00442A1C
004442FC|.50            push    eax                              ; |hMenu
004442FD|.E8 263CFCFF   call    <jmp.&user32.EnableMenuItem>   ; \EnableMenuItem


目前,该软件尚存在如下问题,虽print菜单由灰色变正常,但不能使用其功能,同时快捷菜单上print 和打印预览灰色菜单不能使用。
请高手们接龙继续进行下一步破解。
下面为已完成的破解文件,按上面的网址下载原文件后,安装后,用下面的crack文件copy入安装文件夹中,即可运行.

[ 本帖最后由 mzscym 于 2008-5-17 16:00 编辑 ]

hrbx 发表于 2007-11-26 10:23:18

可能print的代码并没有写进来,只是DEMO版

Nisy 发表于 2007-12-7 00:43:32

以技术交流为主 如果以破解为主将失去意义。

mzscym 发表于 2007-12-7 13:04:39

诚然如此,灰色菜单的破解有时很难,但论坛上难有人请教了。

ku365 发表于 2008-2-22 21:30:16

不错,支持一下再说

mzscym 发表于 2008-5-17 15:59:18

最近研究发现,该软件的demo版本实际上无代码,不可实际打印
页: [1]
查看完整版本: 接龙游戏,对一软件的跟跟过程,功能仍有限制,请版主与高手出马,一般人搞不定。