首页
社区
课程
招聘
[求助]关键跳在哪里呢?各位高手给个思路!
2006-7-21 19:26 4470

[求助]关键跳在哪里呢?各位高手给个思路!

2006-7-21 19:26
4470
刚学,纯粹是菜鸟一只。拿到一个安装程序MMSETUP,运行该程序拆包。发现它在当前用户的临时文件夹内释放出以下文件:setup.exe,setup.zip,chinese.dat,setup.ini。查setup.exe无壳,使用vc++写的。运行后,出现安装界面,跳出对话框。要求输入安装密码(只有密码,没有用户名)。随便输入任何东西,按确定,跳出错误框,“抱歉,密码不正确。请重试。”。
    用OD调用该程序,查找参考字符串,除了乱码外没有中文字符,后在chinese.dat中找到以下字符     [PASSWORD_DIALOG]
       Dialog_Title=安装密码
       Static1=请输入安装密码:
       OK=确定(&O)
       Exit=退出(&X)
       Error_Title=错误
       Error_Static1=抱歉,密码不正确。请  重试。
    在OD中查找参考字符串"Error_Static1",得到如下:
    004239D1         8B8D 48FDFFFF     mov ecx,dword ptr ss:[ebp-2B8]
004239D7         E8 20140000       call setup.00424DFC
004239DC         8B95 F8FDFFFF     mov edx,dword ptr ss:[ebp-208]
004239E2         81E2 FF000000     and edx,0FF
004239E8         85D2              test edx,edx
004239EA         0F84 9C000000     je setup.00423A8C
004239F0         68 F8D34500       push setup.0045D3F8             ; ASCII "PasswordTitle"
004239F5         68 08D44500       push setup.0045D408             ; ASCII "Dialog_Title"
004239FA         68 18D44500       push setup.0045D418             ; ASCII "PASSWORD_DIALOG"
004239FF         8B8D 48FDFFFF     mov ecx,dword ptr ss:[ebp-2B8]
00423A05         E8 AC140000       call setup.00424EB6
00423A0A         68 28D44500       push setup.0045D428             ; ASCII "PasswordText1"
00423A0F         68 38D44500       push setup.0045D438             ; ASCII "Static1"
00423A14         68 40D44500       push setup.0045D440             ; ASCII "PASSWORD_DIALOG"
00423A19         8B8D 48FDFFFF     mov ecx,dword ptr ss:[ebp-2B8]
00423A1F         E8 92140000       call setup.00424EB6
00423A24         68 50D44500       push setup.0045D450             ; ASCII "PasswordOK"
00423A29         68 5CD44500       push setup.0045D45C             ; ASCII "OK"
00423A2E         68 60D44500       push setup.0045D460             ; ASCII "PASSWORD_DIALOG"
00423A33         8B8D 48FDFFFF     mov ecx,dword ptr ss:[ebp-2B8]
00423A39         E8 78140000       call setup.00424EB6
00423A3E         68 70D44500       push setup.0045D470             ; ASCII "PasswordExit"
00423A43         68 80D44500       push setup.0045D480             ; ASCII "Exit"
00423A48         68 88D44500       push setup.0045D488             ; ASCII "PASSWORD_DIALOG"
00423A4D         8B8D 48FDFFFF     mov ecx,dword ptr ss:[ebp-2B8]
00423A53         E8 5E140000       call setup.00424EB6
00423A58         68 98D44500       push setup.0045D498             ; ASCII "IncorrectPasswordTitle"
00423A5D         68 B0D44500       push setup.0045D4B0             ; ASCII "Error_Title"
00423A62         68 BCD44500       push setup.0045D4BC             ; ASCII "PASSWORD_DIALOG"
00423A67         8B8D 48FDFFFF     mov ecx,dword ptr ss:[ebp-2B8]
00423A6D         E8 44140000       call setup.00424EB6
00423A72         68 CCD44500       push setup.0045D4CC             ; ASCII "IncorrectPassword"
00423A77         68 E0D44500       push setup.0045D4E0             ; ASCII "Error_Static1"
00423A7C         68 F0D44500       push setup.0045D4F0             ; ASCII "PASSWORD_DIALOG"
00423A81         8B8D 48FDFFFF     mov ecx,dword ptr ss:[ebp-2B8]
00423A87         E8 2A140000       call setup.00424EB6
00423A8C         68 00D54500       push setup.0045D500             ; ASCII "DlgLanguageDialog"
00423A91         8B8D 48FDFFFF     mov ecx,dword ptr ss:[ebp-2B8]
00423A97         E8 E406FEFF       call setup.00404180
00423A9C         25 FF000000       and eax,0FF
00423AA1         85C0              test eax,eax
00423AA3         74 6F             je short setup.00423B14
00423AA5         C685 E8FDFFFF 01  mov byte ptr ss:[ebp-218],1
00423AAC         68 14D54500       push setup.0045D514             ; ASCII "LanguageTitle"
00423AB1         68 24D54500       push setup.0045D524             ; ASCII "Dialog_Title"
00423AB6         68 34D54500       push setup.0045D534             ; ASCII "LANGUAGE_DIALOG"

我查了一下,没有调用getdlgitemtexta,所以也无法用它下断,想请教一下,能不能给我个思路呢?我知道我提供的东西可能是不够全面,我不知道关键跳在哪里?是在setup.00424eb6这个子函数里呢?还有像这种会是明码比较吗?如果不是,那一般会用什么算法呢?我在把setup.00424eb6贴在下面:
00424EB6         55                push ebp
00424EB7         8BEC              mov ebp,esp
00424EB9         6A FF             push -1
00424EBB         68 E5D94400       push setup.0044D9E5
00424EC0         64:A1 00000000    mov eax,dword ptr fs:[0]
00424EC6         50                push eax
00424EC7         64:8925 00000000  mov dword ptr fs:[0],esp
00424ECE         83EC 24           sub esp,24
00424ED1         894D D4           mov dword ptr ss:[ebp-2C],ecx
00424ED4         8D45 E0           lea eax,dword ptr ss:[ebp-20]
00424ED7         50                push eax
00424ED8         8D4D E4           lea ecx,dword ptr ss:[ebp-1C]
00424EDB         E8 70F9FDFF       call setup.00404850
00424EE0         C745 FC 00000000  mov dword ptr ss:[ebp-4],0
00424EE7         68 90504600       push setup.00465090
00424EEC         8B4D 0C           mov ecx,dword ptr ss:[ebp+C]
00424EEF         51                push ecx
00424EF0         8B55 08           mov edx,dword ptr ss:[ebp+8]
00424EF3         52                push edx
00424EF4         8D45 E4           lea eax,dword ptr ss:[ebp-1C]
00424EF7         50                push eax
00424EF8         8B4D D4           mov ecx,dword ptr ss:[ebp-2C]
00424EFB         8B49 08           mov ecx,dword ptr ds:[ecx+8]
00424EFE         E8 2E42FEFF       call setup.00409131
00424F03         8D4D E4           lea ecx,dword ptr ss:[ebp-1C]
00424F06         E8 A5ADFEFF       call setup.0040FCB0
00424F0B         85C0              test eax,eax
00424F0D         76 34             jbe short setup.00424F43
00424F0F         837D 10 00        cmp dword ptr ss:[ebp+10],0
00424F13         75 08             jnz short setup.00424F1D
00424F15         8B55 0C           mov edx,dword ptr ss:[ebp+C]
00424F18         8955 D0           mov dword ptr ss:[ebp-30],edx
00424F1B         EB 06             jmp short setup.00424F23
00424F1D         8B45 10           mov eax,dword ptr ss:[ebp+10]
00424F20         8945 D0           mov dword ptr ss:[ebp-30],eax
00424F23         8B4D D0           mov ecx,dword ptr ss:[ebp-30]
00424F26         894D DC           mov dword ptr ss:[ebp-24],ecx
00424F29         8D55 E4           lea edx,dword ptr ss:[ebp-1C]
00424F2C         52                push edx
00424F2D         8D45 DC           lea eax,dword ptr ss:[ebp-24]
00424F30         50                push eax
00424F31         8B4D D4           mov ecx,dword ptr ss:[ebp-2C]
00424F34         83C1 10           add ecx,10
00424F37         E8 74FBFDFF       call setup.00404AB0
00424F3C         8BC8              mov ecx,eax
00424F3E         E8 9DF9FDFF       call setup.004048E0
00424F43         8D4D E4           lea ecx,dword ptr ss:[ebp-1C]
00424F46         E8 65ADFEFF       call setup.0040FCB0
00424F4B         8945 D8           mov dword ptr ss:[ebp-28],eax
00424F4E         C745 FC FFFFFFFF  mov dword ptr ss:[ebp-4],-1
00424F55         8D4D E4           lea ecx,dword ptr ss:[ebp-1C]
00424F58         E8 63F9FDFF       call setup.004048C0
00424F5D         8B45 D8           mov eax,dword ptr ss:[ebp-28]
00424F60         8B4D F4           mov ecx,dword ptr ss:[ebp-C]
00424F63         64:890D 00000000  mov dword ptr fs:[0],ecx
00424F6A         8BE5              mov esp,ebp
00424F6C         5D                pop ebp
00424F6D         C2 0C00           retn 0C

谢谢各位,这可是我第一次尝试破解,各位高人给点建议,好让我有信心!谢谢

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

收藏
免费 0
打赏
分享
最新回复 (4)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
风吹过 2006-7-21 20:25
2
0
按ctrl+n,有messageboxa可选,在这里按F2设断,
输入框跳了出来,随便输入密码,按确定,没有跳出错误框。这时候发现OD状态栏并没有显示中断,而是显示c:\windows\system32\riched20.dll,我不明白这是怎么回事。
---断在这里0044F34C <&USER32.MessageBoxA>     EA 04D5779D 86D1        jmp far D186:9D77D504
0044F353                         ^ 77 C7                   ja short <&USER32.DispatchMessageA>
0044F355                           86D1                    xchg cl,dl
0044F357                         ^ 77 D4                   ja short setup.0044F32D
0044F359                           B6 D1                   mov dh,0D1
0044F35B                           77 31                   ja short setup.0044F38E
0044F35D                           B6 D1                   mov dh,0D1
0044F35F                         ^ 77 9D                   ja short setup.0044F2FE
0044F361                           8F                      ???                                      ; 未知命令
0044F362                           D177 1B                 sal dword ptr ds:[edi+1B],1
0044F365                           C0D1 77                 rcl cl,77
0044F368 <&USER32.AdjustWindowRe>  A2 05D2775E             mov byte ptr ds:[5E77D205],al
0044F36D                           02D2                    add dl,dl
0044F36F                           77 00                   ja short setup.0044F371
0044F371                           0000                    add byte ptr ds:[eax],al
0044F373                           00BA 18BD77FF           add byte ptr ds:[edx+FF77BD18],bh
0044F379                           19BD 77501ABD           sbb dword ptr ss:[ebp+BD1A5077],edi
0044F37F                           77 00                   ja short setup.0044F381
0044F381                           0000                    add byte ptr ds:[eax],al
0044F383                           00D8                    add al,bl
0044F385                           7C 33                   jl short setup.0044F3BA
0044F387                           76 1E                   jbe short setup.0044F3A7
0044F389                           3132                    xor dword ptr ds:[edx],esi
0044F38B                           76 00                   jbe short setup.0044F38D
0044F38D                           0000                    add byte ptr ds:[eax],al
0044F38F                           0036                    add byte ptr ds:[esi],dh
0044F391                           EE                      out dx,al
0044F392                           9A 76372A9B 7610        call far 1076:9B2A3776
0044F399                           64:9B                   wait
0044F39B                         ^ 76 C3                   jbe short <&USER32.GetSystemMetrics>
0044F39D                           FA                      cli
0044F39E                           9A 76000000 0000        call far 0000:00000076
0044F3A5                           0000                    add byte ptr ds:[eax],al
0044F3A7                           0080 3C4000D5           add byte ptr ds:[eax+D500403C],al
0044F3AD                           1340 00                 adc eax,dword ptr ds:[eax]
0044F3B0                           A0 3740006E             mov al,byte ptr ds:[6E004037]
0044F3B5                           15 4000D036             adc eax,36D00040
0044F3BA                           40                      inc eax
0044F3BB                           00E3                    add bl,ah
0044F3BD                           15 40008B17             adc eax,178B0040
0044F3C2                           40                      inc eax
0044F3C3                           0040 36                 add byte ptr ds:[eax+36],al
0044F3C6                           40                      inc eax
0044F3C7                           003F                    add byte ptr ds:[edi],bh
0044F3C9                           15 4000C037             adc eax,37C00040
0044F3CE                           40                      inc eax
0044F3CF                           0090 0B4100A0           add byte ptr ds:[eax+A000410B],dl
0044F3D5                           37                      aaa
0044F3D6                           40                      inc eax
0044F3D7                           00C0                    add al,al
0044F3D9                           36:40                   inc eax
0044F3DB                           00D0                    add al,dl
0044F3DD                           36:40                   inc eax
0044F3DF                           00D0                    add al,dl
0044F3E1                           36:40                   inc eax
0044F3E3                           00E0                    add al,ah
0044F3E5                           36:40                   inc eax
0044F3E7                           0040 36                 add byte ptr ds:[eax+36],al
0044F3EA                           40                      inc eax
0044F3EB                           00F0                    add al,dh
0044F3ED                           36:40                   inc eax
0044F3EF                           0000                    add byte ptr ds:[eax],al
0044F3F1                           37                      aaa
0044F3F2                           40                      inc eax
0044F3F3                           0090 0B4100A0           add byte ptr ds:[eax+A000410B],dl
0044F3F9                           36:40                   inc eax
0044F3FB                           00C0                    add al,al
0044F3FD                           36:40                   inc eax
0044F3FF                           00D0                    add al,dl
0044F401                           36:40                   inc eax
0044F403                           00D0                    add al,dl
0044F405                           36:40                   inc eax
0044F407                           00E0                    add al,ah
0044F409                           36:40                   inc eax
0044F40B                           0040 36                 add byte ptr ds:[eax+36],al
0044F40E                           40                      inc eax
0044F40F                           00F0                    add al,dh
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
风吹过 2006-7-21 20:30
3
0
按ctrl+n,有messageboxa可选,在这里按F2设断,
输入框跳了出来,随便输入密码,按确定,没有跳出错误框。这时候发现OD状态栏并没有显示中断,而是显示c:\windows\system32\riched20.dll,我不明白这是怎么回事。
---断在这里0044F34C <&USER32.MessageBoxA>     EA 04D5779D 86D1        jmp far D186:9D77D504
0044F353                         ^ 77 C7                   ja short <&USER32.DispatchMessageA>
0044F355                           86D1                    xchg cl,dl
0044F357                         ^ 77 D4                   ja short setup.0044F32D
0044F359                           B6 D1                   mov dh,0D1
0044F35B                           77 31                   ja short setup.0044F38E
0044F35D                           B6 D1                   mov dh,0D1
0044F35F                         ^ 77 9D                   ja short setup.0044F2FE
0044F361                           8F                      ???                                      ; 未知命令
0044F362                           D177 1B                 sal dword ptr ds:[edi+1B],1
0044F365                           C0D1 77                 rcl cl,77
0044F368 <&USER32.AdjustWindowRe>  A2 05D2775E             mov byte ptr ds:[5E77D205],al
0044F36D                           02D2                    add dl,dl
0044F36F                           77 00                   ja short setup.0044F371
0044F371                           0000                    add byte ptr ds:[eax],al
0044F373                           00BA 18BD77FF           add byte ptr ds:[edx+FF77BD18],bh
0044F379                           19BD 77501ABD           sbb dword ptr ss:[ebp+BD1A5077],edi
0044F37F                           77 00                   ja short setup.0044F381
0044F381                           0000                    add byte ptr ds:[eax],al
0044F383                           00D8                    add al,bl
0044F385                           7C 33                   jl short setup.0044F3BA
0044F387                           76 1E                   jbe short setup.0044F3A7
0044F389                           3132                    xor dword ptr ds:[edx],esi
0044F38B                           76 00                   jbe short setup.0044F38D
0044F38D                           0000                    add byte ptr ds:[eax],al
0044F38F                           0036                    add byte ptr ds:[esi],dh
0044F391                           EE                      out dx,al
0044F392                           9A 76372A9B 7610        call far 1076:9B2A3776
0044F399                           64:9B                   wait
0044F39B                         ^ 76 C3                   jbe short <&USER32.GetSystemMetrics>
0044F39D                           FA                      cli
0044F39E                           9A 76000000 0000        call far 0000:00000076
0044F3A5                           0000                    add byte ptr ds:[eax],al
0044F3A7                           0080 3C4000D5           add byte ptr ds:[eax+D500403C],al
0044F3AD                           1340 00                 adc eax,dword ptr ds:[eax]
0044F3B0                           A0 3740006E             mov al,byte ptr ds:[6E004037]
0044F3B5                           15 4000D036             adc eax,36D00040
0044F3BA                           40                      inc eax
0044F3BB                           00E3                    add bl,ah
0044F3BD                           15 40008B17             adc eax,178B0040
0044F3C2                           40                      inc eax
0044F3C3                           0040 36                 add byte ptr ds:[eax+36],al
0044F3C6                           40                      inc eax
0044F3C7                           003F                    add byte ptr ds:[edi],bh
0044F3C9                           15 4000C037             adc eax,37C00040
0044F3CE                           40                      inc eax
0044F3CF                           0090 0B4100A0           add byte ptr ds:[eax+A000410B],dl
0044F3D5                           37                      aaa
0044F3D6                           40                      inc eax
0044F3D7                           00C0                    add al,al
0044F3D9                           36:40                   inc eax
0044F3DB                           00D0                    add al,dl
0044F3DD                           36:40                   inc eax
0044F3DF                           00D0                    add al,dl
0044F3E1                           36:40                   inc eax
0044F3E3                           00E0                    add al,ah
0044F3E5                           36:40                   inc eax
0044F3E7                           0040 36                 add byte ptr ds:[eax+36],al
0044F3EA                           40                      inc eax
0044F3EB                           00F0                    add al,dh
0044F3ED                           36:40                   inc eax
0044F3EF                           0000                    add byte ptr ds:[eax],al
0044F3F1                           37                      aaa
0044F3F2                           40                      inc eax
0044F3F3                           0090 0B4100A0           add byte ptr ds:[eax+A000410B],dl
0044F3F9                           36:40                   inc eax
0044F3FB                           00C0                    add al,al
0044F3FD                           36:40                   inc eax
0044F3FF                           00D0                    add al,dl
0044F401                           36:40                   inc eax
0044F403                           00D0                    add al,dl
0044F405                           36:40                   inc eax
0044F407                           00E0                    add al,ah
0044F409                           36:40                   inc eax
0044F40B                           0040 36                 add byte ptr ds:[eax+36],al
0044F40E                           40                      inc eax
0044F40F                           00F0                    add al,dh
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WildCatIII 2006-7-21 20:31
4
0
最初由 风吹过 发布
按ctrl+n,有messageboxa可选,在这里按F2设断,
输入框跳了出来,随便输入密码,按确定,没有跳出错误框。这时候发现OD状态栏并没有显示中断,而是显示c:\windows\system32\riched20.dll,我不明白这是怎么回事。
---断在这里0044F34C <&USER32.MessageBoxA> EA 04D5779D 86D1 jmp far D186:9D77D504
0044F353 ^ 77 C7 ja short <&USER32.DispatchMessageA>
0044F355 86D1 xchg cl,dl
........


感觉下命令断点不必要。

楼主都找到参串了。。。   
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
风吹过 2006-7-21 20:48
5
0
继续试找找其他messageboxa断点,总算断下了,在这里
0041A978       FF15 4CF34400           call dword ptr ds:[<&USER32.MessageBoxA>]  ; USER32.MessageBoxA
0041A97E       C645 FC 02              mov byte ptr ss:[ebp-4],2
0041A982       8D4D A8                 lea ecx,dword ptr ss:[ebp-58]
0041A985       E8 369FFEFF             call setup.004048C0
0041A98A       C645 FC 00              mov byte ptr ss:[ebp-4],0
0041A98E       8D4D B8                 lea ecx,dword ptr ss:[ebp-48]
0041A991       E8 2A9FFEFF             call setup.004048C0
0041A996       C645 A4 01              mov byte ptr ss:[ebp-5C],1
0041A99A       C745 FC FFFFFFFF        mov dword ptr ss:[ebp-4],-1
0041A9A1       8D4D E4                 lea ecx,dword ptr ss:[ebp-1C]
0041A9A4       E8 179FFEFF             call setup.004048C0
0041A9A9       8A45 A4                 mov al,byte ptr ss:[ebp-5C]
0041A9AC       EB 29                   jmp short setup.0041A9D7
0041A9AE       68 04040000             push 404
0041A9B3       8B45 08                 mov eax,dword ptr ss:[ebp+8]
0041A9B6       50                      push eax
0041A9B7       FF15 D0F24400           call dword ptr ds:[<&USER32.EndDialog>]    ; USER32.EndDialog
0041A9BD       C645 A0 01              mov byte ptr ss:[ebp-60],1
0041A9C1       C745 FC FFFFFFFF        mov dword ptr ss:[ebp-4],-1
0041A9C8       8D4D E4                 lea ecx,dword ptr ss:[ebp-1C]
0041A9CB       E8 F09EFEFF             call setup.004048C0
0041A9D0       8A45 A0                 mov al,byte ptr ss:[ebp-60]
0041A9D3       EB 02                   jmp short setup.0041A9D7
0041A9D5       32C0                    xor al,al
0041A9D7       8B4D F4                 mov ecx,dword ptr ss:[ebp-C]
0041A9DA       64:890D 00000000        mov dword ptr fs:[0],ecx
0041A9E1       8BE5                    mov esp,ebp
0041A9E3       5D                      pop ebp
0041A9E4       C2 0C00                 retn 0C
0041A9E7       55                      push ebp
0041A9E8       8BEC                    mov ebp,esp
0041A9EA       6A FF                   push -1
0041A9EC       68 71CF4400             push setup.0044CF71
0041A9F1       64:A1 00000000          mov eax,dword ptr fs:[0]
0041A9F7       50                      push eax
0041A9F8       64:8925 00000000        mov dword ptr fs:[0],esp
0041A9FF       81EC B0000000           sub esp,0B0
0041AA05       898D 74FFFFFF           mov dword ptr ss:[ebp-8C],ecx
0041AA0B       8B45 08                 mov eax,dword ptr ss:[ebp+8]
0041AA0E       50                      push eax
0041AA0F       8B8D 74FFFFFF           mov ecx,dword ptr ss:[ebp-8C]
0041AA15       E8 26A5FEFF             call setup.00404F40

断是断下了,可我看断点附近的指令还是晕,还是不知道关键跳在那里
游客
登录 | 注册 方可回帖
返回