- UID
 - 2
 
 注册时间2004-12-1
阅读权限255
最后登录1970-1-1
总坛主 
    
 
 
 
TA的每日心情  | 开心 2024-12-1 11:04 | 
|---|
 
  签到天数: 12 天 [LV.3]偶尔看看II  
 | 
 
【破文标题】易语言精科电脑算命V3.4破解 
【破文作者】飘云[PYG] 
【破解平台】winXP 
【作者邮箱】[email protected] 
【软件名称】精科电脑算命V3.4 
【下载地址】http://www.jk126.com 
【软件简介】算命的咯·! 
【破解原因】从华军把这个东东下载回来有一年了,由于是易语言的,所以一直没有去破解它,但是他的限制太毒了:只能使用30次,最主要的还是不能打印!我不想有限制,今天下定决心要解决它!!! 
【破解步骤】 
用PEID查看为ASPack 2.12 -> Alexey Solodovnikov,脱之! 
 
OD载入,运行程序,输入信息: 
密码:123456         
注册码:1357924680 
 
BP MessageBoxA下断 
点“注册” 
被拦截: 
77D3ADD7 US>  833D C4D3D677 00  cmp dword ptr ds:[77D6D3C4],0   中断在这里,F2清除断点 
77D3ADDE      0F85 377E0100     jnz USER32.77D52C1B 
77D3ADE4      6A 00             push 0 
77D3ADE6      FF7424 14         push dword ptr ss:[esp+14] 
77D3ADEA      FF7424 14         push dword ptr ss:[esp+14] 
77D3ADEE      FF7424 14         push dword ptr ss:[esp+14] 
77D3ADF2      FF7424 14         push dword ptr ss:[esp+14] 
77D3ADF6      E8 03000000       call USER32.MessageBoxExA 
77D3ADFB      C2 1000           retn 10 
 
堆栈友好提示: 
0012F210       /CALL 到 MessageBoxA 来自 krnln.10058CD0 
0012F214       |hOwner = NULL 
0012F218       |Text = "你的密码不正确,或你还未交纳注册费。" 
0012F21C       |Title = "密码错误:" 
0012F220       \Style = MB_OK|MB_ICONEXCLAMATION|MB_TASKMODAL 
0012F224 
 
然后按ALT+F9  点“确定”看看注册失败时返回的地址: 
10058CD6      5F                pop edi                              ; 00AFC160 
10058CD7      83F8 03           cmp eax,3 
10058CDA      5E                pop esi 
10058CDB      75 0F             jnz short krnln.10058CEC 
10058CDD      8B4C24 68         mov ecx,dword ptr ss:[esp+68] 
10058CE1      B8 02000000       mov eax,2 
10058CE6      8901              mov dword ptr ds:[ecx],eax 
10058CE8      83C4 64           add esp,64 
10058CEB      C3                retn 
 
接下来CTRL+F9 (我的是2次)根据Od信息直到返回领空为止 
 
100257EE      C3                retn 
 
堆栈信息: 
 
0012F2AC       返回到 123.0048CA73 来自 123.0049015C 
 
现在按一下F8吧: 
0048CA6E      E8 E9360000       call 123.0049015C 
0048CA73      83C4 28           add esp,28                 停在这里,呵呵!回来了! 
0048CA76      68 05000100       push 10005 
0048CA7B      68 DF020116       push 160102DF 
0048CA80      68 CF000152       push 520100CF 
0048CA85      68 01000000       push 1 
0048CA8A      BB 64030000       mov ebx,364 
0048CA8F      E8 C8360000       call 123.0049015C 
0048CA94      83C4 10           add esp,10 
0048CA97      E9 00000000       jmp 123.0048CA9C 
0048CA9C      8BE5              mov esp,ebp 
0048CA9E      5D                pop ebp 
0048CA9F      C3                retn 
 
根据向上返回定律找到: 
0048C903      55                push ebp                             ; 这里就是点“注册”所执行的第一句代码 下断,重新注册立即中断 
0048C904      8BEC              mov ebp,esp 
0048C906      81EC 24000000     sub esp,24 
0048C90C      C745 FC 00000000  mov dword ptr ss:[ebp-4],0 
0048C913      DB05 F80CAF00     fild dword ptr ds:[AF0CF8]           ; 取注册号的后几位 我的注册号是:3D1054306  所以取1054306 
0048C919      DD5D F4           fstp qword ptr ss:[ebp-C]            ; 这里是浮点运算,不管它!向下走 
0048C91C      DD45 F4           fld qword ptr ss:[ebp-C] 
0048C91F      DC05 F07D4500     fadd qword ptr ds:[457DF0] 
0048C925      DD5D F4           fstp qword ptr ss:[ebp-C] 
0048C928      DD45 F4           fld qword ptr ss:[ebp-C] 
0048C92B      DC25 F87D4500     fsub qword ptr ds:[457DF8] 
0048C931      DD5D EC           fstp qword ptr ss:[ebp-14] 
0048C934      DD45 EC           fld qword ptr ss:[ebp-14] 
0048C937      DC05 007E4500     fadd qword ptr ds:[457E00] 
0048C93D      DD5D E4           fstp qword ptr ss:[ebp-1C] 
0048C940      68 01030080       push 80000301 
0048C945      6A 00             push 0 
0048C947      68 BB184D00       push 4D18BB 
0048C94C      DD45 E4           fld qword ptr ss:[ebp-1C] 
0048C94F      E8 3C21FEFF       call 123.0046EA90 
0048C954      68 01030080       push 80000301 
0048C959      6A 00             push 0 
0048C95B      50                push eax 
0048C95C      68 02000000       push 2 
0048C961      BB CC000000       mov ebx,0CC 
0048C966      E8 F1370000       call 123.0049015C 
0048C96B      83C4 1C           add esp,1C 
0048C96E      8945 FC           mov dword ptr ss:[ebp-4],eax 
0048C971      6A FF             push -1 
0048C973      6A 08             push 8 
0048C975      68 DF020116       push 160102DF 
0048C97A      68 CF000152       push 520100CF 
0048C97F      E8 F0370000       call 123.00490174 
0048C984      83C4 10           add esp,10 
0048C987      8945 F8           mov dword ptr ss:[ebp-8],eax 
0048C98A      68 04000080       push 80000004 
0048C98F      6A 00             push 0 
0048C991      8B45 F8           mov eax,dword ptr ss:[ebp-8] 
0048C994      85C0              test eax,eax 
0048C996      75 05             jnz short 123.0048C99D 
0048C998      B8 62644100       mov eax,123.00416462 
0048C99D      50                push eax 
0048C99E      68 01000000       push 1 
0048C9A3      BB 78010000       mov ebx,178 
0048C9A8      E8 AF370000       call 123.0049015C 
0048C9AD      83C4 10           add esp,10 
0048C9B0      8945 F4           mov dword ptr ss:[ebp-C],eax 
0048C9B3      8B5D F8           mov ebx,dword ptr ss:[ebp-8] 
0048C9B6      85DB              test ebx,ebx 
0048C9B8      74 09             je short 123.0048C9C3 
0048C9BA      53                push ebx 
0048C9BB      E8 A8370000       call 123.00490168 
0048C9C0      83C4 04           add esp,4 
0048C9C3      68 04000080       push 80000004 
0048C9C8      6A 00             push 0 
0048C9CA      8B45 F4           mov eax,dword ptr ss:[ebp-C] 
0048C9CD      85C0              test eax,eax 
0048C9CF      75 05             jnz short 123.0048C9D6 
0048C9D1      B8 62644100       mov eax,123.00416462 
0048C9D6      50                push eax 
0048C9D7      68 01000000       push 1 
0048C9DC      BB 64010000       mov ebx,164 
0048C9E1      E8 76370000       call 123.0049015C 
0048C9E6      83C4 10           add esp,10 
0048C9E9      8945 EC           mov dword ptr ss:[ebp-14],eax 
0048C9EC      8955 F0           mov dword ptr ss:[ebp-10],edx 
0048C9EF      8B5D F4           mov ebx,dword ptr ss:[ebp-C] 
0048C9F2      85DB              test ebx,ebx 
0048C9F4      74 09             je short 123.0048C9FF 
0048C9F6      53                push ebx 
0048C9F7      E8 6C370000       call 123.00490168 
0048C9FC      83C4 04           add esp,4 
0048C9FF      DB45 FC           fild dword ptr ss:[ebp-4]            ; 到这里就看到21096252 
0048CA02      DD5D E4           fstp qword ptr ss:[ebp-1C] 
0048CA05      DD45 EC           fld qword ptr ss:[ebp-14]            ; 这里12345,呵呵!知道干什么了吗? 
0048CA08      DC65 E4           fsub qword ptr ss:[ebp-1C] 
0048CA0B      D9E4              ftst 
0048CA0D      DFE0              fstsw ax 
0048CA0F      F6C4 01           test ah,1 
0048CA12      74 02             je short 123.0048CA16 
0048CA14      D9E0              fchs 
0048CA16      DC1D 49DE4100     fcomp qword ptr ds:[41DE49] 
0048CA1C      DFE0              fstsw ax 
0048CA1E      F6C4 41           test ah,41 
0048CA21      B8 00000000       mov eax,0 
0048CA26      0F95C0            setne al 
0048CA29      8945 E4           mov dword ptr ss:[ebp-1C],eax 
0048CA2C      837D E4 01        cmp dword ptr ss:[ebp-1C],1 
0048CA30      0F85 0A000000     jnz 123.0048CA40                     ; 如果密码正确就不跳 
0048CA36      E8 65000000       call 123.0048CAA0                    ; 计算核心 
0048CA3B      E9 5C000000       jmp 123.0048CA9C 
 
我们输入正确的密码 21096252 在 0048CA36处下断,重新来过(当然,你也可以把0048CA30处的JNZ改为JZ继续分析) 
BTW:不要嫌麻烦,CRACKER就是这样! 
 
断下后F7进入: 
0048CAA0      55                push ebp 
0048CAA1      8BEC              mov ebp,esp 
0048CAA3      81EC 20000000     sub esp,20 
0048CAA9      C745 FC 00000000  mov dword ptr ss:[ebp-4],0 
0048CAB0      C745 F8 00000000  mov dword ptr ss:[ebp-8],0 
0048CAB7      68 04000080       push 80000004 
0048CABC      6A 00             push 0 
0048CABE      68 90A94200       push 123.0042A990 
0048CAC3      68 01000000       push 1 
0048CAC8      BB 64010000       mov ebx,164 
0048CACD      E8 8A360000       call 123.0049015C 
0048CAD2      83C4 10           add esp,10 
0048CAD5      8945 F0           mov dword ptr ss:[ebp-10],eax 
0048CAD8      8955 F4           mov dword ptr ss:[ebp-C],edx 
0048CADB      DD05 A9A94200     fld qword ptr ds:[42A9A9]            ; 又是浮点,我们不管它,向下找关键东西 
0048CAE1      DC65 F0           fsub qword ptr ss:[ebp-10] 
0048CAE4      DD5D E8           fstp qword ptr ss:[ebp-18] 
0048CAE7      DD45 E8           fld qword ptr ss:[ebp-18] 
0048CAEA      E8 A11FFEFF       call 123.0046EA90 
0048CAEF      68 01030080       push 80000301 
0048CAF4      6A 00             push 0 
0048CAF6      50                push eax 
0048CAF7      68 01030080       push 80000301 
0048CAFC      6A 00             push 0 
0048CAFE      FF35 F80CAF00     push dword ptr ds:[AF0CF8] 
0048CB04      68 02000000       push 2 
0048CB09      BB CC000000       mov ebx,0CC 
0048CB0E      E8 49360000       call 123.0049015C 
0048CB13      83C4 1C           add esp,1C 
0048CB16      8945 FC           mov dword ptr ss:[ebp-4],eax 
0048CB19      6A FF             push -1 
0048CB1B      6A 08             push 8 
0048CB1D      68 DC020116       push 160102DC 
0048CB22      68 CF000152       push 520100CF 
0048CB27      E8 48360000       call 123.00490174 
0048CB2C      83C4 10           add esp,10 
0048CB2F      8945 F4           mov dword ptr ss:[ebp-C],eax 
0048CB32      68 04000080       push 80000004 
0048CB37      6A 00             push 0 
0048CB39      8B45 F4           mov eax,dword ptr ss:[ebp-C] 
0048CB3C      85C0              test eax,eax 
0048CB3E      75 05             jnz short 123.0048CB45 
0048CB40      B8 62644100       mov eax,123.00416462 
0048CB45      50                push eax 
0048CB46      68 01000000       push 1 
0048CB4B      BB 64010000       mov ebx,164 
0048CB50      E8 07360000       call 123.0049015C 
0048CB55      83C4 10           add esp,10 
0048CB58      8945 EC           mov dword ptr ss:[ebp-14],eax 
0048CB5B      8955 F0           mov dword ptr ss:[ebp-10],edx 
0048CB5E      8B5D F4           mov ebx,dword ptr ss:[ebp-C] 
0048CB61      85DB              test ebx,ebx 
0048CB63      74 09             je short 123.0048CB6E 
0048CB65      53                push ebx 
0048CB66      E8 FD350000       call 123.00490168 
0048CB6B      83C4 04           add esp,4 
0048CB6E      DD45 EC           fld qword ptr ss:[ebp-14] 
0048CB71      E8 1A1FFEFF       call 123.0046EA90                  ;来到这里,很经典吧·! 
0048CB76      8945 F8           mov dword ptr ss:[ebp-8],eax 
0048CB79      8B45 FC           mov eax,dword ptr ss:[ebp-4] 
0048CB7C      3945 F8           cmp dword ptr ss:[ebp-8],eax       ;这里查看EAX的十进制为45404440 
[ebp-8]为1357924680  ~~^_^~~          
0048CB7F      0F85 5D040000     jnz 123.0048CFE2                   ;跳则GAME OVER!    
0048CB85      6A FF             push -1 
0048CB87      6A 08             push 8 
0048CB89      68 DC020116       push 160102DC 
0048CB8E      68 CF000152       push 520100CF 
 
 
总结:由于是浮点运算,比较麻烦,懒得分析,先搞个注册码用了再说。 
 
注册号:3D1054306 
密码:21096252 
注册码:45404440(好怪哦!) 
 
附:注册信息保存在:HKEY_CURRENT_UESR\SOFTWARE\JSMKK\LOGIN    删掉该键值又可继续研究 |   
 
 
 
 |