冷血书生 发表于 2006-11-22 21:46:00

E程序12位Crackme 简单分析

【破解日期】 2006年11月22日
【破解作者】 冷血书生
【作者邮箱】 meiyou
【作者主页】 hxxp://www.126sohu.com/
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】 e
【下载地址】 本地
【软件大小】 534k
【加壳方式】 无
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
------------------------------------------------------------------------

--------
【破解内容】


0040A0C0   sub esp,24
0040A0C6   call ECRACKME.0040A299                      ; 算法Call
0040A0CB   push -1
0040A0CD   push 8
0040A0CF   push 16010003
0040A0D4   push 52010001
0040A0D9   call ECRACKME.0040A6D1
0040A0DE   add esp,10
0040A0E1   mov dword ptr ss:,eax                ; 注册码1
0040A0E4   mov eax,dword ptr ds:
0040A0E9   push eax
0040A0EA   push dword ptr ss:
0040A0ED   call ECRACKME.00409F0C
0040A0F2   add esp,8
0040A0F5   cmp eax,0
0040A0F8   mov eax,0
0040A0FD   sete al
0040A100   mov dword ptr ss:,eax
0040A103   mov ebx,dword ptr ss:
0040A106   test ebx,ebx
0040A108   je short ECRACKME.0040A113
0040A10A   push ebx
0040A10B   call ECRACKME.0040A6C5
0040A110   add esp,4
0040A113   cmp dword ptr ss:,0
0040A117   je ECRACKME.0040A21A                        ; 相等就失败
0040A11D   push -1
0040A11F   push 8
0040A121   push 16010004
0040A126   push 52010001
0040A12B   call ECRACKME.0040A6D1
0040A130   add esp,10
0040A133   mov dword ptr ss:,eax                ; 注册码2
0040A136   mov eax,dword ptr ds:
0040A13B   push eax
0040A13C   push dword ptr ss:
0040A13F   call ECRACKME.00409F0C
0040A144   add esp,8
0040A147   cmp eax,0
0040A14A   mov eax,0
0040A14F   sete al
0040A152   mov dword ptr ss:,eax
0040A155   mov ebx,dword ptr ss:
0040A158   test ebx,ebx
0040A15A   je short ECRACKME.0040A165
0040A15C   push ebx
0040A15D   call ECRACKME.0040A6C5
0040A162   add esp,4
0040A165   cmp dword ptr ss:,0
0040A169   je ECRACKME.0040A21A                        ; 相等就失败
0040A16F   push -1
0040A171   push 8
0040A173   push 16010005
0040A178   push 52010001
0040A17D   call ECRACKME.0040A6D1
0040A182   add esp,10
0040A185   mov dword ptr ss:,eax               ; 注册码3
0040A188   mov eax,dword ptr ds:
0040A18D   push eax
0040A18E   push dword ptr ss:
0040A191   call ECRACKME.00409F0C
0040A196   add esp,8
0040A199   cmp eax,0
0040A19C   mov eax,0
0040A1A1   sete al
0040A1A4   mov dword ptr ss:,eax
0040A1A7   mov ebx,dword ptr ss:
0040A1AA   test ebx,ebx
0040A1AC   je short ECRACKME.0040A1B7
0040A1AE   push ebx
0040A1AF   call ECRACKME.0040A6C5
0040A1B4   add esp,4
0040A1B7   cmp dword ptr ss:,0
0040A1BB   je ECRACKME.0040A21A                        ; 相等就失败
0040A1C1   push -1
0040A1C3   push 8
0040A1C5   push 16010006
0040A1CA   push 52010001
0040A1CF   call ECRACKME.0040A6D1
0040A1D4   add esp,10
0040A1D7   mov dword ptr ss:,eax               ; 注册码4
0040A1DA   mov eax,dword ptr ds:
0040A1DF   push eax
0040A1E0   push dword ptr ss:
0040A1E3   call ECRACKME.00409F0C
0040A1E8   add esp,8
0040A1EB   cmp eax,0
0040A1EE   mov eax,0
0040A1F3   sete al
0040A1F6   mov dword ptr ss:,eax
0040A1F9   mov ebx,dword ptr ss:
0040A1FC   test ebx,ebx
0040A1FE   je short ECRACKME.0040A209
0040A200   push ebx
0040A201   call ECRACKME.0040A6C5
0040A206   add esp,4
0040A209   cmp dword ptr ss:,0
0040A20D   je ECRACKME.0040A21A                        ; 相等就失败
0040A213   mov eax,1
0040A218   jmp short ECRACKME.0040A21C
0040A21A   xor eax,eax
0040A21C   test eax,eax
0040A21E   je ECRACKME.0040A25F
0040A224   push 80000004
0040A229   push 0
0040A22B   push ECRACKME.004090CE                      ; 欢迎你访问飘云阁
0040A230   push 80000301
0040A235   push 0
0040A237   push 0
0040A23C   push 80000004
0040A241   push 0
0040A243   push ECRACKME.004090DF                      ; 注册成功
0040A248   push 3
0040A24D   mov ebx,300
0040A252   call ECRACKME.0040A6CB
0040A257   add esp,28
0040A25A   jmp ECRACKME.0040A295
0040A25F   push 80000004
0040A264   push 0
0040A266   push ECRACKME.004090E8                      ; 出错了!
0040A26B   push 80000301
0040A270   push 0
0040A272   push 0
0040A277   push 80000004
0040A27C   push 0
0040A27E   push ECRACKME.004090F1                      ; 你输入的注册码有误,请联系软件作者
0040A283   push 3
0040A288   mov ebx,300
0040A28D   call ECRACKME.0040A6CB
0040A292   add esp,28
0040A295   mov esp,ebp
0040A297   pop ebp
0040A298   retn

/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////


0040A2AF   push 1
0040A2B4   mov ebx,164
0040A2B9   call ECRACKME.0040A6CB
0040A2BE   add esp,10
0040A2C1   mov dword ptr ss:,eax
0040A2C4   mov dword ptr ss:,edx
0040A2C7   push 80000301
0040A2CC   push 0
0040A2CE   push 4B4EB28                              
0040A2D3   fld qword ptr ss:                  ; 机器码
0040A2D6   call ECRACKME.00409FA9
0040A2DB   push 80000301
0040A2E0   push 0
0040A2E2   push eax
0040A2E3   push 2
0040A2E8   mov ebx,0CC
0040A2ED   call ECRACKME.0040A6CB                      ; 算法Call
0040A2F2   add esp,1C
0040A2F5   push 80000301
0040A2FA   push 0
0040A2FC   push eax
0040A2FD   push 1
0040A302   mov ebx,168
0040A307   call ECRACKME.0040A6CB
0040A30C   add esp,10
0040A30F   mov dword ptr ss:,eax               ; eax保存结果
0040A312   push 80000301
0040A317   push 0
0040A319   push 4
0040A31E   push 80000301
0040A323   push 0
0040A325   push 2
0040A32A   push 80000004
0040A32F   push 0
0040A331   mov eax,dword ptr ss:
0040A334   test eax,eax
0040A336   jnz short ECRACKME.0040A33D
0040A338   mov eax,ECRACKME.004090CD
0040A33D   push eax
0040A33E   push 3
0040A343   mov ebx,13C
0040A348   call ECRACKME.0040A6CB                      ; 取2到5位
0040A34D   add esp,28
0040A350   mov dword ptr ss:,eax               ; 保存注册码1
0040A353   mov ebx,dword ptr ss:
0040A356   test ebx,ebx
0040A358   je short ECRACKME.0040A363
0040A35A   push ebx
0040A35B   call ECRACKME.0040A6C5
0040A360   add esp,4
0040A363   mov ebx,dword ptr ds:
0040A369   test ebx,ebx
0040A36B   je short ECRACKME.0040A376
0040A36D   push ebx
0040A36E   call ECRACKME.0040A6C5
0040A373   add esp,4
0040A376   mov eax,dword ptr ss:
0040A379   mov dword ptr ds:,eax
0040A37E   push 80000301
0040A383   push 0
0040A385   push dword ptr ds:
0040A38B   push 1
0040A390   mov ebx,164
0040A395   call ECRACKME.0040A6CB
0040A39A   add esp,10
0040A39D   mov dword ptr ss:,eax
0040A3A0   mov dword ptr ss:,edx
0040A3A3   push 80000301
0040A3A8   push 0
0040A3AA   push 22F16632                               ;
0040A3AF   fld qword ptr ss:                  ; 机器码
0040A3B2   call ECRACKME.00409FA9
0040A3B7   push 80000301
0040A3BC   push 0
0040A3BE   push eax
0040A3BF   push 2
0040A3C4   mov ebx,0CC
0040A3C9   call ECRACKME.0040A6CB                      ; 算法Call
0040A3CE   add esp,1C
0040A3D1   push 80000301
0040A3D6   push 0
0040A3D8   push eax
0040A3D9   push 1
0040A3DE   mov ebx,168
0040A3E3   call ECRACKME.0040A6CB
0040A3E8   add esp,10
0040A3EB   mov dword ptr ss:,eax               ; eax保存结果
0040A3EE   push 80000301
0040A3F3   push 0
0040A3F5   push 4
0040A3FA   push 80000301
0040A3FF   push 0
0040A401   push 2
0040A406   push 80000004
0040A40B   push 0
0040A40D   mov eax,dword ptr ss:
0040A410   test eax,eax
0040A412   jnz short ECRACKME.0040A419
0040A414   mov eax,ECRACKME.004090CD
0040A419   push eax
0040A41A   push 3
0040A41F   mov ebx,13C
0040A424   call ECRACKME.0040A6CB                      ; 取2到5位
0040A429   add esp,28
0040A42C   mov dword ptr ss:,eax               ; 保存注册码2
0040A42F   mov ebx,dword ptr ss:
0040A432   test ebx,ebx
0040A434   je short ECRACKME.0040A43F
0040A436   push ebx
0040A437   call ECRACKME.0040A6C5
0040A43C   add esp,4
0040A43F   mov ebx,dword ptr ds:
0040A445   test ebx,ebx
0040A447   je short ECRACKME.0040A452
0040A449   push ebx
0040A44A   call ECRACKME.0040A6C5
0040A44F   add esp,4
0040A452   mov eax,dword ptr ss:
0040A455   mov dword ptr ds:,eax
0040A45A   push 80000301
0040A45F   push 0
0040A461   push dword ptr ds:
0040A467   push 1
0040A46C   mov ebx,164
0040A471   call ECRACKME.0040A6CB
0040A476   add esp,10
0040A479   mov dword ptr ss:,eax
0040A47C   mov dword ptr ss:,edx
0040A47F   push 80000301
0040A484   push 0
0040A486   push 2CF062E0                               ;
0040A48B   fld qword ptr ss:                  ; 机器码
0040A48E   call ECRACKME.00409FA9
0040A493   push 80000301
0040A498   push 0
0040A49A   push eax
0040A49B   push 2
0040A4A0   mov ebx,0CC
0040A4A5   call ECRACKME.0040A6CB                      ; 算法Call
0040A4AA   add esp,1C
0040A4AD   push 80000301
0040A4B2   push 0
0040A4B4   push eax
0040A4B5   push 1
0040A4BA   mov ebx,168
0040A4BF   call ECRACKME.0040A6CB
0040A4C4   add esp,10
0040A4C7   mov dword ptr ss:,eax               ; EAX保存结果
0040A4CA   push 80000301
0040A4CF   push 0
0040A4D1   push 4
0040A4D6   push 80000301
0040A4DB   push 0
0040A4DD   push 2
0040A4E2   push 80000004
0040A4E7   push 0
0040A4E9   mov eax,dword ptr ss:
0040A4EC   test eax,eax
0040A4EE   jnz short ECRACKME.0040A4F5
0040A4F0   mov eax,ECRACKME.004090CD
0040A4F5   push eax
0040A4F6   push 3
0040A4FB   mov ebx,13C
0040A500   call ECRACKME.0040A6CB                      ; 取2到5位
0040A505   add esp,28
0040A508   mov dword ptr ss:,eax               ; 保存注册码3
0040A50B   mov ebx,dword ptr ss:
0040A50E   test ebx,ebx
0040A510   je short ECRACKME.0040A51B
0040A512   push ebx
0040A513   call ECRACKME.0040A6C5
0040A518   add esp,4
0040A51B   mov ebx,dword ptr ds:
0040A521   test ebx,ebx
0040A523   je short ECRACKME.0040A52E
0040A525   push ebx
0040A526   call ECRACKME.0040A6C5
0040A52B   add esp,4
0040A52E   mov eax,dword ptr ss:
0040A531   mov dword ptr ds:,eax
0040A536   push 80000301
0040A53B   push 0
0040A53D   push dword ptr ds:
0040A543   push 1
0040A548   mov ebx,164
0040A54D   call ECRACKME.0040A6CB
0040A552   add esp,10
0040A555   mov dword ptr ss:,eax
0040A558   mov dword ptr ss:,edx
0040A55B   push 80000301
0040A560   push 0
0040A562   push 6C21D6B                              ;
0040A567   fld qword ptr ss:                  ; 机器码
0040A56A   call ECRACKME.00409FA9
0040A56F   push 80000301
0040A574   push 0
0040A576   push eax
0040A577   push 2
0040A57C   mov ebx,0CC
0040A581   call ECRACKME.0040A6CB                      ; 算法Call
0040A586   add esp,1C
0040A589   push 80000301
0040A58E   push 0
0040A590   push eax
0040A591   push 1
0040A596   mov ebx,168
0040A59B   call ECRACKME.0040A6CB
0040A5A0   add esp,10
0040A5A3   mov dword ptr ss:,eax               ; EAX保存结果
0040A5A6   push 80000301
0040A5AB   push 0
0040A5AD   push 4
0040A5B2   push 80000301
0040A5B7   push 0
0040A5B9   push 2
0040A5BE   push 80000004
0040A5C3   push 0
0040A5C5   mov eax,dword ptr ss:
0040A5C8   test eax,eax
0040A5CA   jnz short ECRACKME.0040A5D1
0040A5CC   mov eax,ECRACKME.004090CD
0040A5D1   push eax
0040A5D2   push 3
0040A5D7   mov ebx,13C
0040A5DC   call ECRACKME.0040A6CB                      ; 取2到5位
0040A5E1   add esp,28
0040A5E4   mov dword ptr ss:,eax               ; 保存注册码4
0040A5E7   mov ebx,dword ptr ss:
0040A5EA   test ebx,ebx
0040A5EC   je short ECRACKME.0040A5F7
0040A5EE   push ebx
0040A5EF   call ECRACKME.0040A6C5
0040A5F4   add esp,4
0040A5F7   mov ebx,dword ptr ds:
0040A5FD   test ebx,ebx
0040A5FF   je short ECRACKME.0040A60A
0040A601   push ebx
0040A602   call ECRACKME.0040A6C5
0040A607   add esp,4
0040A60A   mov eax,dword ptr ss:
0040A60D   mov dword ptr ds:,eax
0040A612   mov esp,ebp
0040A614   pop ebp
0040A615   retn

/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////

小结:


4B4EB28xor 机器码 = 注册码1 ->取2到5位
22F16632 xor 机器码 = 注册码2 ->取2到5位
2CF062E0 xor 机器码 = 注册码3 ->取2到5位
6C21D6Bxor 机器码 = 注册码3 ->取2到5位

注册码1-注册码2-注册码3-注册码4==> 注册码

/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
------------------------------------------------------------------------

--------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[ 本帖最后由 冷血书生 于 2006-11-22 21:47 编辑 ]
页: [1]
查看完整版本: E程序12位Crackme 简单分析