【破解作者】 yijun
【作者邮箱】 yijun8354@sina.com
【使用工具】 OD(二哥版),PEID
【破解平台】 WinXP
【软件名称】 速写大师
【软件简介】 一个能把照片转化成素描速写的软件!!!!!!!!!!
【软件大小】 991K
【加壳方式】 无
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】


    PEID查知道该软件无壳,Borland C++ 1999编写!OD载入,通过查找关键字很容易来到以下关键处^ -^

00405294   /.  55                push ebp   //在此下断
00405295   |.  8BEC              mov ebp,esp
00405297   |.  81C4 60FDFFFF     add esp,-2A0
0040529D   |.  8995 74FFFFFF     mov dword ptr ss:[ebp-8C],edx
004052A3   |.  8985 78FFFFFF     mov dword ptr ss:[ebp-88],eax
004052A9   |.  B8 4C8B4800       mov eax,sxds.00488B4C
004052AE   |.  E8 D5410600       call sxds.00469488
004052B3   |.  66:C745 8C 1400   mov word ptr ss:[ebp-74],14
004052B9   |.  BA C4864800       mov edx,sxds.004886C4                ;  ASCII  "software\ahao's softwares\wenku\mhj"
004052BE   |.  8D45 F8           lea eax,dword ptr ss:[ebp-8]
004052C1   |.  E8 E6E00600       call sxds.004733AC
004052C6   |.  FF45 98           inc dword ptr ss:[ebp-68]
004052C9   |.  8B08              mov ecx,dword ptr ds:[eax]
004052CB   |.  B2 01             mov dl,1
004052CD   |.  A1 30484100       mov eax,dword ptr ds:[414830]
004052D2   |.  E8 41FC0000       call sxds.00414F18
004052D7   |.  8985 70FFFFFF     mov dword ptr ss:[ebp-90],eax
004052DD   |.  FF4D 98           dec dword ptr ss:[ebp-68]
004052E0   |.  8D45 F8           lea eax,dword ptr ss:[ebp-8]
004052E3   |.  BA 02000000       mov edx,2
004052E8   |.  E8 77E10600       call sxds.00473464
004052ED   |.  66:C745 8C 0800   mov word ptr ss:[ebp-74],8
004052F3   |.  8D8D 60FDFFFF     lea ecx,dword ptr ss:[ebp-2A0]
004052F9   |.  51                push ecx                             ; /Arg1
004052FA   |.  E8 45E5FFFF       call sxds.00403844                   ; \sxds.00403844
004052FF   |.  59                pop ecx
00405300   |.  66:C745 8C 2000   mov word ptr ss:[ebp-74],20
00405306   |.  8D45 F4           lea eax,dword ptr ss:[ebp-C]
00405309   |.  E8 92C7FFFF       call sxds.00401AA0
0040530E   |.  8BD0              mov edx,eax
00405310   |.  FF45 98           inc dword ptr ss:[ebp-68]
00405313   |.  8B8D 78FFFFFF     mov ecx,dword ptr ss:[ebp-88]
00405319   |.  8B81 F4020000     mov eax,dword ptr ds:[ecx+2F4]
0040531F   |.  E8 2C460500       call sxds.00459950   //取得一字符串mhds
00405324   |.  8D45 F4           lea eax,dword ptr ss:[ebp-C]
00405327   |.  E8 54E5FFFF       call sxds.00403880
0040532C   |.  50                push eax
0040532D   |.  8D45 F0           lea eax,dword ptr ss:[ebp-10]
00405330   |.  E8 6BC7FFFF       call sxds.00401AA0
00405335   |.  8BD0              mov edx,eax
00405337   |.  FF45 98           inc dword ptr ss:[ebp-68]
0040533A   |.  8B8D 78FFFFFF     mov ecx,dword ptr ss:[ebp-88]
00405340   |.  8B81 F0020000     mov eax,dword ptr ds:[ecx+2F0]
00405346   |.  E8 05460500       call sxds.00459950                   ;  计算用户名长度
0040534B   |.  8D45 F0           lea eax,dword ptr ss:[ebp-10]
0040534E   |.  E8 2DE5FFFF       call sxds.00403880                   ;  取用户名
00405353   |.  50                push eax                             ; |Arg2
00405354   |.  8D95 60FDFFFF     lea edx,dword ptr ss:[ebp-2A0]       ; |
0040535A   |.  52                push edx                             ; |Arg1
0040535B   |.  E8 40E5FFFF       call sxds.004038A0                   ; \处理用户名字和字符 串,跟进。
00405360   |.  83C4 0C           add esp,0C
00405363   |.  FF4D 98           dec dword ptr ss:[ebp-68]
00405366   |.  8D45 F0           lea eax,dword ptr ss:[ebp-10]
00405369   |.  BA 02000000       mov edx,2
0040536E   |.  E8 F1E00600       call sxds.00473464
00405373   |.  FF4D 98           dec dword ptr ss:[ebp-68]
00405376   |.  8D45 F4           lea eax,dword ptr ss:[ebp-C]
00405379   |.  BA 02000000       mov edx,2
0040537E   |.  E8 E1E00600       call sxds.00473464
00405383   |.  8D8D 60FDFFFF     lea ecx,dword ptr ss:[ebp-2A0]
00405389   |.  51                push ecx                             ; /Arg1
0040538A   |.  E8 F9E5FFFF       call sxds.00403988                   ; \跟进
0040538F   |.  59                pop ecx
00405390   |.  8D85 60FDFFFF     lea eax,dword ptr ss:[ebp-2A0]
00405396   |.  50                push eax                             ; /Arg1
00405397   |.  E8 84E9FFFF       call sxds.00403D20                   ; \EAX等于刚才最后那段 计算的取值,记为N
0040539C   |.  59                pop ecx
0040539D   |.  8985 6CFFFFFF     mov dword ptr ss:[ebp-94],eax
004053A3   |.  66:C745 8C 0800   mov word ptr ss:[ebp-74],8
004053A9   |.  66:C745 8C 2C00   mov word ptr ss:[ebp-74],2C
004053AF   |.  8D45 FC           lea eax,dword ptr ss:[ebp-4]
004053B2   |.  8B95 6CFFFFFF     mov edx,dword ptr ss:[ebp-94]        ;  N送EDX
004053B8   |.  E8 EFDF0600       call sxds.004733AC
004053BD   |.  FF45 98           inc dword ptr ss:[ebp-68]
004053C0   |.  66:C745 8C 0800   mov word ptr ss:[ebp-74],8
004053C6   |.  66:C745 8C 3800   mov word ptr ss:[ebp-74],38
004053CC   |.  8D45 EC           lea eax,dword ptr ss:[ebp-14]
004053CF   |.  E8 CCC6FFFF       call sxds.00401AA0
004053D4   |.  8BD0              mov edx,eax
004053D6   |.  FF45 98           inc dword ptr ss:[ebp-68]
004053D9   |.  8B8D 78FFFFFF     mov ecx,dword ptr ss:[ebp-88]
004053DF   |.  8B81 F8020000     mov eax,dword ptr ds:[ecx+2F8]
004053E5   |.  E8 66450500       call sxds.00459950                   ;  计算假码长度
004053EA   |.  8D45 EC           lea eax,dword ptr ss:[ebp-14]
004053ED   |.  8D55 FC           lea edx,dword ptr ss:[ebp-4]
004053F0   |.  E8 3FE10600       call sxds.00473534                   ;  跟进
004053F5   |.  50                push eax                             ; /Arg1
004053F6   |.  FF4D 98           dec dword ptr ss:[ebp-68]            ; |
004053F9   |.  8D45 EC           lea eax,dword ptr ss:[ebp-14]        ; |
004053FC   |.  BA 02000000       mov edx,2                            ; |
00405401   |.  E8 5EE00600       call sxds.00473464                   ; \sxds.00473464
00405406   |.  59                pop ecx
00405407   |.  84C9              test cl,cl
00405409   |.  0F84 15030000     je sxds.00405724                     ;  关键跳,跳就挂!! !!!!!
0040540F   |.  6A 01             push 1
00405411   |.  BA ED864800       mov edx,sxds.004886ED                ;  ASCII "registed"
00405416   |.  8D45 E4           lea eax,dword ptr ss:[ebp-1C]
00405419   |.  E8 8EDF0600       call sxds.004733AC
0040541E   |.  FF45 98           inc dword ptr ss:[ebp-68]
00405421   |.  FF30              push dword ptr ds:[eax]
00405423   |.  66:C745 8C 4400   mov word ptr ss:[ebp-74],44
00405429   |.  BA E8864800       mov edx,sxds.004886E8                ;  ASCII "smtp"
******************************************************************************************** *************************************************************
跟进0040535B处CALL来到:
004038A0   /$  55                push ebp
004038A1   |.  8BEC              mov ebp,esp
004038A3   |.  51                push ecx
004038A4   |.  8B45 08           mov eax,dword ptr ss:[ebp+8]
004038A7   |.  C640 04 01        mov byte ptr ds:[eax+4],1
004038AB   |.  33D2              xor edx,edx
004038AD   |.  8955 FC           mov dword ptr ss:[ebp-4],edx
004038B0   |>  8B4D 0C           /mov ecx,dword ptr ss:[ebp+C]        ;  以下处理用户名
004038B3   |.  8B45 FC           |mov eax,dword ptr ss:[ebp-4]
004038B6   |.  8A1401            |mov dl,byte ptr ds:[ecx+eax]        ;  逐位取用户名
004038B9   |.  8B4D FC           |mov ecx,dword ptr ss:[ebp-4]
004038BC   |.  8B45 08           |mov eax,dword ptr ss:[ebp+8]
004038BF   |.  885408 0C         |mov byte ptr ds:[eax+ecx+C],dl      ;  该位用户名送 [eax+ecx+C]
004038C3   |.  EB 0B             |jmp short sxds.004038D0
004038C5   |>  8B55 FC           |/mov edx,dword ptr ss:[ebp-4]
004038C8   |.  8B4D 08           ||mov ecx,dword ptr ss:[ebp+8]
004038CB   |.  804411 0C E0      ||add byte ptr ds:[ecx+edx+C],0E0
004038D0   |>  8B45 FC           | mov eax,dword ptr ss:[ebp-4]
004038D3   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
004038D6   |.  0FBE4C02 0C       ||movsx ecx,byte ptr ds:[edx+eax+C]  ;  [edx+eax+C]送ECX
004038DB   |.  83F9 7E           ||cmp ecx,7E                         ;  和7E比较
004038DE   |.^ 7F E5             |\jg short sxds.004038C5             ;  大于就跳
004038E0   |.  EB 0B             |jmp short sxds.004038ED
004038E2   |>  8B45 FC           |/mov eax,dword ptr ss:[ebp-4]
004038E5   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
004038E8   |.  804402 0C 20      ||add byte ptr ds:[edx+eax+C],20
004038ED   |>  8B4D FC           | mov ecx,dword ptr ss:[ebp-4]
004038F0   |.  8B45 08           ||mov eax,dword ptr ss:[ebp+8]
004038F3   |.  0FBE5408 0C       ||movsx edx,byte ptr ds:[eax+ecx+C]  ;  [eax+ecx+C]送EDX
004038F8   |.  83FA 20           ||cmp edx,20                         ;  和20比较
004038FB   |.^ 7C E5             |\jl short sxds.004038E2             ;  小于就跳
004038FD   |.  FF45 FC           |inc dword ptr ss:[ebp-4]            ;  [ebp-4]加一([ebp- 4]用来存放已处理用户名位数)
00403900   |.  8B4D 0C           |mov ecx,dword ptr ss:[ebp+C]        ;  [ebp+C]送ECX ([ebp+C]中放用户名)
00403903   |.  8B45 FC           |mov eax,dword ptr ss:[ebp-4]
00403906   |.  803C01 00         |cmp byte ptr ds:[ecx+eax],0         ;  取完没有
0040390A   |.^ 75 A4             \jnz short sxds.004038B0             ;  没有就跳回去继续, 处理完后,EAX存放用户名长度
0040390C   |.  8B55 FC           mov edx,dword ptr ss:[ebp-4]         ;  长度送EDX
0040390F   |.  8B4D 08           mov ecx,dword ptr ss:[ebp+8]
00403912   |.  C64411 0C 00      mov byte ptr ds:[ecx+edx+C],0
00403917   |.  33C0              xor eax,eax                          ;  EAX清0
00403919   |.  8945 FC           mov dword ptr ss:[ebp-4],eax         ;  [ebp-4]=0
0040391C   |>  8B55 10           /mov edx,dword ptr ss:[ebp+10]       ;  用同样的方法处理字 符串“mhds”(不包括引号)
0040391F   |.  8B4D FC           |mov ecx,dword ptr ss:[ebp-4]
00403922   |.  8A040A            |mov al,byte ptr ds:[edx+ecx]
00403925   |.  8B55 FC           |mov edx,dword ptr ss:[ebp-4]
00403928   |.  8B4D 08           |mov ecx,dword ptr ss:[ebp+8]
0040392B   |.  884411 3E         |mov byte ptr ds:[ecx+edx+3E],al
0040392F   |.  EB 0B             |jmp short sxds.0040393C
00403931   |>  8B45 FC           |/mov eax,dword ptr ss:[ebp-4]
00403934   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403937   |.  804402 3E E0      ||add byte ptr ds:[edx+eax+3E],0E0
0040393C   |>  8B4D FC           | mov ecx,dword ptr ss:[ebp-4]
0040393F   |.  8B45 08           ||mov eax,dword ptr ss:[ebp+8]
00403942   |.  0FBE5408 3E       ||movsx edx,byte ptr ds:[eax+ecx+3E]
00403947   |.  83FA 7E           ||cmp edx,7E
0040394A   |.^ 7F E5             |\jg short sxds.00403931
0040394C   |.  EB 0B             |jmp short sxds.00403959
0040394E   |>  8B4D FC           |/mov ecx,dword ptr ss:[ebp-4]
00403951   |.  8B45 08           ||mov eax,dword ptr ss:[ebp+8]
00403954   |.  804408 3E 20      ||add byte ptr ds:[eax+ecx+3E],20
00403959   |>  8B55 FC           | mov edx,dword ptr ss:[ebp-4]
0040395C   |.  8B4D 08           ||mov ecx,dword ptr ss:[ebp+8]
0040395F   |.  0FBE4411 3E       ||movsx eax,byte ptr ds:[ecx+edx+3E]
00403964   |.  83F8 20           ||cmp eax,20
00403967   |.^ 7C E5             |\jl short sxds.0040394E
00403969   |.  FF45 FC           |inc dword ptr ss:[ebp-4]
0040396C   |.  8B55 10           |mov edx,dword ptr ss:[ebp+10]
0040396F   |.  8B4D FC           |mov ecx,dword ptr ss:[ebp-4]
00403972   |.  803C0A 00         |cmp byte ptr ds:[edx+ecx],0
00403976   |.^ 75 A4             \jnz short sxds.0040391C             ;  处理完后ECX放长度
00403978   |.  8B45 FC           mov eax,dword ptr ss:[ebp-4]
0040397B   |.  8B55 08           mov edx,dword ptr ss:[ebp+8]
0040397E   |.  C64402 3E 00      mov byte ptr ds:[edx+eax+3E],0
00403983   |.  59                pop ecx
00403984   |.  5D                pop ebp
00403985   \.  C3                retn  //返回

******************************************************************************************** *************************************************************
跟进0040538A处CALL来到:
00403988   /$  55                push ebp
00403989   |.  8BEC              mov ebp,esp
0040398B   |.  83C4 B8           add esp,-48
0040398E   |.  8B45 08           mov eax,dword ptr ss:[ebp+8]
00403991   |.  8078 04 00        cmp byte ptr ds:[eax+4],0
00403995   |.  0F85 2F010000     jnz sxds.00403ACA
0040399B   |.  33D2              xor edx,edx
0040399D   |.  8955 FC           mov dword ptr ss:[ebp-4],edx
004039A0   |.  EB 17             jmp short sxds.004039B9
004039A2   |>  8B4D FC           /mov ecx,dword ptr ss:[ebp-4]
004039A5   |.  8B45 08           |mov eax,dword ptr ss:[ebp+8]
004039A8   |.  8A5408 0C         |mov dl,byte ptr ds:[eax+ecx+C]
004039AC   |.  8B4D FC           |mov ecx,dword ptr ss:[ebp-4]
004039AF   |.  8B45 08           |mov eax,dword ptr ss:[ebp+8]
004039B2   |.  885408 7B         |mov byte ptr ds:[eax+ecx+7B],dl
004039B6   |.  FF45 FC           |inc dword ptr ss:[ebp-4]
004039B9   |>  8B55 FC            mov edx,dword ptr ss:[ebp-4]
004039BC   |.  8B4D 08           |mov ecx,dword ptr ss:[ebp+8]
004039BF   |.  807C11 0C 00      |cmp byte ptr ds:[ecx+edx+C],0
004039C4   |.^ 75 DC             \jnz short sxds.004039A2
004039C6   |.  8B45 FC           mov eax,dword ptr ss:[ebp-4]
004039C9   |.  83C0 FE           add eax,-2
004039CC   |.  8945 F8           mov dword ptr ss:[ebp-8],eax
004039CF   |.  817D FC 90010000  cmp dword ptr ss:[ebp-4],190
004039D6   |.  7D 22             jge short sxds.004039FA
004039D8   |>  8B55 08           /mov edx,dword ptr ss:[ebp+8]
004039DB   |.  8B4A 08           |mov ecx,dword ptr ds:[edx+8]
004039DE   |.  8B45 FC           |mov eax,dword ptr ss:[ebp-4]
004039E1   |.  8A1401            |mov dl,byte ptr ds:[ecx+eax]
004039E4   |.  8B4D FC           |mov ecx,dword ptr ss:[ebp-4]
004039E7   |.  8B45 08           |mov eax,dword ptr ss:[ebp+8]
004039EA   |.  885408 7B         |mov byte ptr ds:[eax+ecx+7B],dl
004039EE   |.  FF45 FC           |inc dword ptr ss:[ebp-4]
004039F1   |.  817D FC 90010000  |cmp dword ptr ss:[ebp-4],190
004039F8   |.^ 7C DE             \jl short sxds.004039D8
004039FA   |>  8B55 F8           mov edx,dword ptr ss:[ebp-8]
004039FD   |.  8955 F4           mov dword ptr ss:[ebp-C],edx
00403A00   |.  837D F4 32        cmp dword ptr ss:[ebp-C],32
00403A04   |.  7D 1F             jge short sxds.00403A25
00403A06   |>  8B4D 08           /mov ecx,dword ptr ss:[ebp+8]
00403A09   |.  8B41 08           |mov eax,dword ptr ds:[ecx+8]
00403A0C   |.  8B55 F4           |mov edx,dword ptr ss:[ebp-C]
00403A0F   |.  8A0C10            |mov cl,byte ptr ds:[eax+edx]
00403A12   |.  8B45 F4           |mov eax,dword ptr ss:[ebp-C]
00403A15   |.  8B55 08           |mov edx,dword ptr ss:[ebp+8]
00403A18   |.  884C02 0C         |mov byte ptr ds:[edx+eax+C],cl
00403A1C   |.  FF45 F4           |inc dword ptr ss:[ebp-C]
00403A1F   |.  837D F4 32        |cmp dword ptr ss:[ebp-C],32
00403A23   |.^ 7C E1             \jl short sxds.00403A06
00403A25   |>  33C9              xor ecx,ecx
00403A27   |.  894D F0           mov dword ptr ss:[ebp-10],ecx
00403A2A   |>  33C0              /xor eax,eax
00403A2C   |.  8945 FC           |mov dword ptr ss:[ebp-4],eax
00403A2F   |.  EB 6A             |jmp short sxds.00403A9B
00403A31   |>  8B55 F0           |/mov edx,dword ptr ss:[ebp-10]
00403A34   |.  8B4D 08           ||mov ecx,dword ptr ss:[ebp+8]
00403A37   |.  0FBE4411 0C       ||movsx eax,byte ptr ds:[ecx+edx+C]
00403A3C   |.  B9 05000000       ||mov ecx,5
00403A41   |.  99                ||cdq
00403A42   |.  F7F9              ||idiv ecx
00403A44   |.  8955 E8           ||mov dword ptr ss:[ebp-18],edx
00403A47   |.  8B45 FC           ||mov eax,dword ptr ss:[ebp-4]
00403A4A   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403A4D   |.  8A4C02 7B         ||mov cl,byte ptr ds:[edx+eax+7B]
00403A51   |.  884D EF           ||mov byte ptr ss:[ebp-11],cl
00403A54   |.  8B45 F0           ||mov eax,dword ptr ss:[ebp-10]
00403A57   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403A5A   |.  0FBE4C02 0C       ||movsx ecx,byte ptr ds:[edx+eax+C]
00403A5F   |.  8B45 FC           ||mov eax,dword ptr ss:[ebp-4]
00403A62   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403A65   |.  8D0402            ||lea eax,dword ptr ds:[edx+eax]
00403A68   |.  8A5408 5C         ||mov dl,byte ptr ds:[eax+ecx+5C]
00403A6C   |.  8B4D FC           ||mov ecx,dword ptr ss:[ebp-4]
00403A6F   |.  8B45 08           ||mov eax,dword ptr ss:[ebp+8]
00403A72   |.  885408 7B         ||mov byte ptr ds:[eax+ecx+7B],dl
00403A76   |.  8B55 F0           ||mov edx,dword ptr ss:[ebp-10]
00403A79   |.  8B4D 08           ||mov ecx,dword ptr ss:[ebp+8]
00403A7C   |.  0FBE4411 0C       ||movsx eax,byte ptr ds:[ecx+edx+C]
00403A81   |.  8B55 FC           ||mov edx,dword ptr ss:[ebp-4]
00403A84   |.  8B4D 08           ||mov ecx,dword ptr ss:[ebp+8]
00403A87   |.  8D1411            ||lea edx,dword ptr ds:[ecx+edx]
00403A8A   |.  8A4D EF           ||mov cl,byte ptr ss:[ebp-11]
00403A8D   |.  884C02 5C         ||mov byte ptr ds:[edx+eax+5C],cl
00403A91   |.  8B45 FC           ||mov eax,dword ptr ss:[ebp-4]
00403A94   |.  0345 E8           ||add eax,dword ptr ss:[ebp-18]
00403A97   |.  40                ||inc eax
00403A98   |.  8945 FC           ||mov dword ptr ss:[ebp-4],eax
00403A9B   |>  8B45 F0           | mov eax,dword ptr ss:[ebp-10]
00403A9E   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403AA1   |.  0FBE4C02 0C       ||movsx ecx,byte ptr ds:[edx+eax+C]
00403AA6   |.  034D FC           ||add ecx,dword ptr ss:[ebp-4]
00403AA9   |.  83C1 E1           ||add ecx,-1F
00403AAC   |.  81F9 90010000     ||cmp ecx,190
00403AB2   |.^ 0F8C 79FFFFFF     |\jl sxds.00403A31
00403AB8   |.  FF45 F0           |inc dword ptr ss:[ebp-10]
00403ABB   |.  837D F0 32        |cmp dword ptr ss:[ebp-10],32
00403ABF   |.^ 0F8C 65FFFFFF     \jl sxds.00403A2A
00403AC5   |.  E9 27020000       jmp sxds.00403CF1
00403ACA   |>  33C0              xor eax,eax
00403ACC   |.  8945 E4           mov dword ptr ss:[ebp-1C],eax
00403ACF   |.  EB 17             jmp short sxds.00403AE8
00403AD1   |>  8B55 E4           /mov edx,dword ptr ss:[ebp-1C]       ;  这段计算用户名长度 ,结果存EDX
00403AD4   |.  8B4D 08           |mov ecx,dword ptr ss:[ebp+8]
00403AD7   |.  8A4411 0C         |mov al,byte ptr ds:[ecx+edx+C]
00403ADB   |.  8B55 E4           |mov edx,dword ptr ss:[ebp-1C]
00403ADE   |.  8B4D 08           |mov ecx,dword ptr ss:[ebp+8]
00403AE1   |.  884411 7B         |mov byte ptr ds:[ecx+edx+7B],al
00403AE5   |.  FF45 E4           |inc dword ptr ss:[ebp-1C]
00403AE8   |>  8B45 E4            mov eax,dword ptr ss:[ebp-1C]
00403AEB   |.  8B55 08           |mov edx,dword ptr ss:[ebp+8]
00403AEE   |.  807C02 0C 00      |cmp byte ptr ds:[edx+eax+C],0
00403AF3   |.^ 75 DC             \jnz short sxds.00403AD1
00403AF5   |.  8B4D E4           mov ecx,dword ptr ss:[ebp-1C]
00403AF8   |.  894D E0           mov dword ptr ss:[ebp-20],ecx
00403AFB   |.  8B45 E0           mov eax,dword ptr ss:[ebp-20]
00403AFE   |.  8945 DC           mov dword ptr ss:[ebp-24],eax
00403B01   |.  837D DC 32        cmp dword ptr ss:[ebp-24],32
00403B05   |.  7D 3B             jge short sxds.00403B42
00403B07   |>  8B55 08           /mov edx,dword ptr ss:[ebp+8]        ;  [ebp+8]送EDX
00403B0A   |.  8B4A 08           |mov ecx,dword ptr ds:[edx+8]        ;  [edx+8]为一固定字符 串记为S ("Thislicenseappliestoanysoftwarecontaininganoticeplacedbythecopyrightholdersayingthatitmay bedistributedunderthetermsoftheQtNon- CommercialLicenseversion1.0.SuchsoftwareishereinreferredtoastheSoftware.Thislicensecoversdis tribut)送ECX
00403B0D   |.  8B45 DC           |mov eax,dword ptr ss:[ebp-24]       ;  [ebp-24]送EAX
00403B10   |.  8A1401            |mov dl,byte ptr ds:[ecx+eax]        ;  [ecx+eax]送DL
00403B13   |.  8B4D DC           |mov ecx,dword ptr ss:[ebp-24]       ;  [ebp-24]送ECX
00403B16   |.  8B45 08           |mov eax,dword ptr ss:[ebp+8]
00403B19   |.  885408 0C         |mov byte ptr ds:[eax+ecx+C],dl      ;  DL送[eax+ecx+C]
00403B1D   |.  FF45 DC           |inc dword ptr ss:[ebp-24]           ;  [ebp-24]加一
00403B20   |.  837D DC 32        |cmp dword ptr ss:[ebp-24],32        ;  [ebp-24]和32比较
00403B24   |.^ 7C E1             \jl short sxds.00403B07              ;  小于就跳回去继续比 较
00403B26   |.  EB 1A             jmp short sxds.00403B42    //此时EDX为一字符串 ganoticeplmhds
00403B28   |>  8B55 E4           /mov edx,dword ptr ss:[ebp-1C]       ;  [ebp-1C]送EDX
00403B2B   |.  2B55 E0           |sub edx,dword ptr ss:[ebp-20]       ;  EDX-[ebp-20]送EDX
00403B2E   |.  8B4D 08           |mov ecx,dword ptr ss:[ebp+8]
00403B31   |.  8A4411 3E         |mov al,byte ptr ds:[ecx+edx+3E]     ;  [ecx+edx+3E]送AL
00403B35   |.  8B55 E4           |mov edx,dword ptr ss:[ebp-1C]
00403B38   |.  8B4D 08           |mov ecx,dword ptr ss:[ebp+8]
00403B3B   |.  884411 7B         |mov byte ptr ds:[ecx+edx+7B],al
00403B3F   |.  FF45 E4           |inc dword ptr ss:[ebp-1C]           ;  [ebp-1C]加一
00403B42   |>  8B45 E4            mov eax,dword ptr ss:[ebp-1C]
00403B45   |.  2B45 E0           |sub eax,dword ptr ss:[ebp-20]
00403B48   |.  8B55 08           |mov edx,dword ptr ss:[ebp+8]
00403B4B   |.  807C02 3E 00      |cmp byte ptr ds:[edx+eax+3E],0
00403B50   |.^ 75 D6             \jnz short sxds.00403B28             ;  没完继续,这段是处 理mhds
00403B52   |.  8B4D E4           mov ecx,dword ptr ss:[ebp-1C]
00403B55   |.  2B4D E0           sub ecx,dword ptr ss:[ebp-20]
00403B58   |.  894D D8           mov dword ptr ss:[ebp-28],ecx
00403B5B   |.  8B45 D8           mov eax,dword ptr ss:[ebp-28]
00403B5E   |.  8945 D4           mov dword ptr ss:[ebp-2C],eax
00403B61   |.  837D D4 32        cmp dword ptr ss:[ebp-2C],32
00403B65   |.  7D 1F             jge short sxds.00403B86
00403B67   |>  8B55 08           /mov edx,dword ptr ss:[ebp+8]        ;  ***处理同前***
00403B6A   |.  8B4A 08           |mov ecx,dword ptr ds:[edx+8]
00403B6D   |.  8B45 D4           |mov eax,dword ptr ss:[ebp-2C]
00403B70   |.  8A1401            |mov dl,byte ptr ds:[ecx+eax]
00403B73   |.  8B4D D4           |mov ecx,dword ptr ss:[ebp-2C]
00403B76   |.  8B45 08           |mov eax,dword ptr ss:[ebp+8]
00403B79   |.  885408 3E         |mov byte ptr ds:[eax+ecx+3E],dl
00403B7D   |.  FF45 D4           |inc dword ptr ss:[ebp-2C]
00403B80   |.  837D D4 32        |cmp dword ptr ss:[ebp-2C],32
00403B84   |.^ 7C E1             \jl short sxds.00403B67
00403B86   |>  817D E4 90010000  cmp dword ptr ss:[ebp-1C],190
00403B8D   |.  7D 22             jge short sxds.00403BB1
00403B8F   |>  8B55 08           /mov edx,dword ptr ss:[ebp+8]
00403B92   |.  8B4A 08           |mov ecx,dword ptr ds:[edx+8]
00403B95   |.  8B45 E4           |mov eax,dword ptr ss:[ebp-1C]
00403B98   |.  8A1401            |mov dl,byte ptr ds:[ecx+eax]
00403B9B   |.  8B4D E4           |mov ecx,dword ptr ss:[ebp-1C]
00403B9E   |.  8B45 08           |mov eax,dword ptr ss:[ebp+8]
00403BA1   |.  885408 7B         |mov byte ptr ds:[eax+ecx+7B],dl
00403BA5   |.  FF45 E4           |inc dword ptr ss:[ebp-1C]
00403BA8   |.  817D E4 90010000  |cmp dword ptr ss:[ebp-1C],190
00403BAF   |.^ 7C DE             \jl short sxds.00403B8F              ;  **********
00403BB1   |>  33D2              xor edx,edx                          ;  EDX清0
00403BB3   |.  8955 D0           mov dword ptr ss:[ebp-30],edx
00403BB6   |>  33C9              /xor ecx,ecx                         ;  ECX清0
00403BB8   |.  894D E4           |mov dword ptr ss:[ebp-1C],ecx       ;  [ebp-1C]=0
00403BBB   |.  EB 6A             |jmp short sxds.00403C27
00403BBD   |>  8B45 D0           |/mov eax,dword ptr ss:[ebp-30]   //从00403C3E跳回来,以下 是处理用户名
00403BC0   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403BC3   |.  0FBE4402 0C       ||movsx eax,byte ptr ds:[edx+eax+C]  ;  [edx+eax+C]送EAX
00403BC8   |.  B9 05000000       ||mov ecx,5                          ;  5送ECX
00403BCD   |.  99                ||cdq                                ;  扩展
00403BCE   |.  F7F9              ||idiv ecx                           ;  除以ECX
00403BD0   |.  8955 C8           ||mov dword ptr ss:[ebp-38],edx
00403BD3   |.  8B45 E4           ||mov eax,dword ptr ss:[ebp-1C]
00403BD6   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403BD9   |.  8A4C02 7B         ||mov cl,byte ptr ds:[edx+eax+7B]    ;  [edx+eax+7B]送CL
00403BDD   |.  884D CF           ||mov byte ptr ss:[ebp-31],cl
00403BE0   |.  8B45 D0           ||mov eax,dword ptr ss:[ebp-30]
00403BE3   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403BE6   |.  0FBE4C02 0C       ||movsx ecx,byte ptr ds:[edx+eax+C]  ;  [edx+eax+C]送ECX
00403BEB   |.  8B45 E4           ||mov eax,dword ptr ss:[ebp-1C]
00403BEE   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403BF1   |.  8D0402            ||lea eax,dword ptr ds:[edx+eax]     ;  [edx+eax]送EAX
00403BF4   |.  8A5408 5C         ||mov dl,byte ptr ds:[eax+ecx+5C]    ;  [eax+ecx+5C]送DL
00403BF8   |.  8B4D E4           ||mov ecx,dword ptr ss:[ebp-1C]
00403BFB   |.  8B45 08           ||mov eax,dword ptr ss:[ebp+8]
00403BFE   |.  885408 7B         ||mov byte ptr ds:[eax+ecx+7B],dl    ;  DL送[eax+ecx+7B]
00403C02   |.  8B55 D0           ||mov edx,dword ptr ss:[ebp-30]
00403C05   |.  8B4D 08           ||mov ecx,dword ptr ss:[ebp+8]
00403C08   |.  0FBE4411 0C       ||movsx eax,byte ptr ds:[ecx+edx+C]  ;  [ecx+edx+C]送EAX
00403C0D   |.  8B55 E4           ||mov edx,dword ptr ss:[ebp-1C]
00403C10   |.  8B4D 08           ||mov ecx,dword ptr ss:[ebp+8]
00403C13   |.  8D1411            ||lea edx,dword ptr ds:[ecx+edx]
00403C16   |.  8A4D CF           ||mov cl,byte ptr ss:[ebp-31]
00403C19   |.  884C02 5C         ||mov byte ptr ds:[edx+eax+5C],cl    ;  CL送[edx+eax+5C]
00403C1D   |.  8B45 E4           ||mov eax,dword ptr ss:[ebp-1C]
00403C20   |.  0345 C8           ||add eax,dword ptr ss:[ebp-38]
00403C23   |.  40                ||inc eax                            ;  EAX加1
00403C24   |.  8945 E4           ||mov dword ptr ss:[ebp-1C],eax
00403C27   |>  8B45 D0           | mov eax,dword ptr ss:[ebp-30]      ;  从00403BBB跳来
00403C2A   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403C2D   |.  0FBE4C02 0C       ||movsx ecx,byte ptr ds:[edx+eax+C]  ;  逐为将用户名送ECX
00403C32       034D E4           add ecx,dword ptr ss:[ebp-1C]        ;  [ebp-1C]加ECX送ECX
00403C35   |.  83C1 E1           ||add ecx,-1F                        ;  ECX加-1F
00403C38   |.  81F9 90010000     ||cmp ecx,190                        ;  和190比较
00403C3E   |.^ 0F8C 79FFFFFF     |\jl sxds.00403BBD                   ;  小就继续
00403C44   |.  FF45 D0           |inc dword ptr ss:[ebp-30]           ;  [ebp-30]加1
00403C47   |.  837D D0 32        |cmp dword ptr ss:[ebp-30],32        ;  [ebp-30]和32比较
00403C4B   |.^ 0F8C 65FFFFFF     \jl sxds.00403BB6                    ;  小于就跳回去
00403C51   |.  33C0              xor eax,eax                          ;  EAX清0
00403C53   |.  8945 C4           mov dword ptr ss:[ebp-3C],eax
00403C56   |>  33D2              /xor edx,edx                         ;  以下用差不多的方法 处理字符串mhds
00403C58   |.  8955 E4           |mov dword ptr ss:[ebp-1C],edx
00403C5B   |.  EB 6A             |jmp short sxds.00403CC7
00403C5D   |>  8B4D C4           |/mov ecx,dword ptr ss:[ebp-3C]
00403C60   |.  8B45 08           ||mov eax,dword ptr ss:[ebp+8]
00403C63   |.  0FBE4408 3E       ||movsx eax,byte ptr ds:[eax+ecx+3E]
00403C68   |.  B9 05000000       ||mov ecx,5
00403C6D   |.  99                ||cdq
00403C6E   |.  F7F9              ||idiv ecx
00403C70   |.  8955 BC           ||mov dword ptr ss:[ebp-44],edx
00403C73   |.  8B45 E4           ||mov eax,dword ptr ss:[ebp-1C]
00403C76   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403C79   |.  8A4C02 7B         ||mov cl,byte ptr ds:[edx+eax+7B]
00403C7D   |.  884D C3           ||mov byte ptr ss:[ebp-3D],cl
00403C80   |.  8B45 C4           ||mov eax,dword ptr ss:[ebp-3C]
00403C83   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403C86   |.  0FBE4C02 3E       ||movsx ecx,byte ptr ds:[edx+eax+3E]
00403C8B   |.  8B45 E4           ||mov eax,dword ptr ss:[ebp-1C]
00403C8E   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403C91   |.  8D0402            ||lea eax,dword ptr ds:[edx+eax]
00403C94   |.  8A5408 5C         ||mov dl,byte ptr ds:[eax+ecx+5C]
00403C98   |.  8B4D E4           ||mov ecx,dword ptr ss:[ebp-1C]
00403C9B   |.  8B45 08           ||mov eax,dword ptr ss:[ebp+8]
00403C9E   |.  885408 7B         ||mov byte ptr ds:[eax+ecx+7B],dl
00403CA2   |.  8B55 C4           ||mov edx,dword ptr ss:[ebp-3C]
00403CA5   |.  8B4D 08           ||mov ecx,dword ptr ss:[ebp+8]
00403CA8   |.  0FBE4411 3E       ||movsx eax,byte ptr ds:[ecx+edx+3E]
00403CAD   |.  8B55 E4           ||mov edx,dword ptr ss:[ebp-1C]
00403CB0   |.  8B4D 08           ||mov ecx,dword ptr ss:[ebp+8]
00403CB3   |.  8D1411            ||lea edx,dword ptr ds:[ecx+edx]
00403CB6   |.  8A4D C3           ||mov cl,byte ptr ss:[ebp-3D]
00403CB9   |.  884C02 5C         ||mov byte ptr ds:[edx+eax+5C],cl
00403CBD   |.  8B45 E4           ||mov eax,dword ptr ss:[ebp-1C]
00403CC0   |.  0345 BC           ||add eax,dword ptr ss:[ebp-44]
00403CC3   |.  40                ||inc eax
00403CC4   |.  8945 E4           ||mov dword ptr ss:[ebp-1C],eax
00403CC7   |>  8B45 C4           | mov eax,dword ptr ss:[ebp-3C]
00403CCA   |.  8B55 08           ||mov edx,dword ptr ss:[ebp+8]
00403CCD   |.  0FBE4C02 3E       ||movsx ecx,byte ptr ds:[edx+eax+3E]
00403CD2   |.  034D E4           ||add ecx,dword ptr ss:[ebp-1C]
00403CD5   |.  83C1 E1           ||add ecx,-1F
00403CD8   |.  81F9 90010000     ||cmp ecx,190
00403CDE   |.^ 0F8C 79FFFFFF     |\jl sxds.00403C5D
00403CE4   |.  FF45 C4           |inc dword ptr ss:[ebp-3C]
00403CE7   |.  837D C4 32        |cmp dword ptr ss:[ebp-3C],32
00403CEB   |.^ 0F8C 65FFFFFF     \jl sxds.00403C56
00403CF1   |>  33C0              xor eax,eax                          ;  EAX清0
00403CF3   |.  8945 B8           mov dword ptr ss:[ebp-48],eax
00403CF6   |>  8B55 B8           mov edx,dword ptr ss:[ebp-48]     //这个循环出真码^-^
00403CF9   |.  8B4D 08           mov ecx,dword ptr ss:[ebp+8]
00403CFC   |.  8A4411 7B         mov al,byte ptr ds:[ecx+edx+7B]      ;  [ecx+edx+7B]送AL
00403D00   |.  8B55 B8           mov edx,dword ptr ss:[ebp-48]
00403D03   |.  8B4D 08           mov ecx,dword ptr ss:[ebp+8]
00403D06   |.  884411 70         mov byte ptr ds:[ecx+edx+70],al      ;  AL送[ecx+edx+70]
00403D0A   |.  FF45 B8           inc dword ptr ss:[ebp-48]            ;  [ebp-48]加1
00403D0D   |.  837D B8 0A        cmp dword ptr ss:[ebp-48],0A         ;  和0A比较
00403D11   |.^ 7C E3             jl short sxds.00403CF6               ;  小就跳到00403CF6继 续
00403D13   |.  8B45 08           mov eax,dword ptr ss:[ebp+8]
00403D16   |.  C640 7A 00        mov byte ptr ds:[eax+7A],0
00403D1A   |.  8BE5              mov esp,ebp
00403D1C   |.  5D                pop ebp
00403D1D   \.  C3                retn

******************************************************************************************** *************************************************************
跟进004053F0 处CALL来到:
00473534   /$  55                push ebp
00473535   |.  8BEC              mov ebp,esp
00473537   |.  53                push ebx
00473538   |.  8B00              mov eax,dword ptr ds:[eax]           ;  假码送EAX
0047353A   |.  8B12              mov edx,dword ptr ds:[edx]           ;  通过计算得到的真码N 送EDX
0047353C   |.  E8 474EFBFF       call sxds.00428388                   ;  比较CALL
00473541   |.  0F94C0            sete al                              ;  若输入码真确则AL为 真
00473544   |.  83E0 01           and eax,1                            ;  EAX和1与
00473547   |.  5B                pop ebx
00473548   |.  5D                pop ebp
00473549   \.  C3                retn   //返回





--------------------------------------------------------------------------------
【破解总结】


   这个软件的注册过程是通过计算用名和字符串mhds完成的,二者计算都用到了一个字符串: Thislicenseappliestoanysoftwarecontaininganoticeplacedbythecopyrightholdersayingthatitmaybed istributedunderthetermsoftheQtNon- CommercialLicenseversion1.0.SuchsoftwareishereinreferredtoastheSoftware.Thislicensecoversdis tributionoftheSoftw
具体怎么搞就不说了,时间晚了要睡觉了,哎!!!天都要亮了!!
注册名:yijun
注册码:w'r6ttfron
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!