冷血书生 发表于 2006-8-1 16:19:08

obi-one's Crackme 简单算法分析

【破解日期】 2006年8月1日
【破解作者】 冷血书生
【作者邮箱】 [email protected]
【作者主页】 http://www.126sohu.com
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】 obi-one'sCrackme
【下载地址】 本地
【软件大小】 719K
【加壳方式】 无
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】


004212AE   push 2
004212B3   mov ebx,144
004212B8   call aa.00421645
004212BD   add esp,1C
004212C0   mov dword ptr ss:,eax       ; 取得用户名第一位并传送到
004212C3   fild dword ptr ss:
004212C6   fstp qword ptr ss:
004212C9   fld qword ptr ss:
004212CC   fmul qword ptr ds:          ; *820421
004212D2   fstp qword ptr ss:          ; 保存结果
004212D5   mov edx,dword ptr ss:
004212D8   mov eax,dword ptr ss:
004212DB   mov dword ptr ss:,eax
004212DE   mov dword ptr ss:,edx
004212E1   push 80000301
004212E6   push 0
004212E8   push 1
004212ED   push 80000004
004212F2   push 0
004212F4   push aa.004090D4                  ; 我
004212F9   push 2
004212FE   mov ebx,11C
00421303   call aa.00421645
00421308   add esp,1C
0042130B   mov dword ptr ss:,eax
0042130E   mov eax,dword ptr ss:
00421311   push eax
00421312   mov ebx,dword ptr ss:
00421315   test ebx,ebx
00421317   je short aa.00421322
00421319   push ebx
0042131A   call aa.00421639
0042131F   add esp,4
00421322   pop eax
00421323   mov dword ptr ss:,eax
00421326   push 80000301
0042132B   push 0
0042132D   push 1
00421332   push 80000004
00421337   push 0
00421339   push aa.004090D7                  ; 爱
0042133E   push 2
00421343   mov ebx,11C
00421348   call aa.00421645
0042134D   add esp,1C
00421350   mov dword ptr ss:,eax
00421353   push dword ptr ss:
00421356   push dword ptr ss:
00421359   mov ecx,2
0042135E   call aa.004210EB
00421363   add esp,8
00421366   mov dword ptr ss:,eax
00421369   mov ebx,dword ptr ss:
0042136C   test ebx,ebx
0042136E   je short aa.00421379
00421370   push ebx
00421371   call aa.00421639
00421376   add esp,4
00421379   mov eax,dword ptr ss:
0042137C   push eax
0042137D   mov ebx,dword ptr ss:
00421380   test ebx,ebx
00421382   je short aa.0042138D
00421384   push ebx
00421385   call aa.00421639
0042138A   add esp,4
0042138D   pop eax
0042138E   mov dword ptr ss:,eax
00421391   push 80000301
00421396   push 0
00421398   push 1
0042139D   push 80000004
004213A2   push 0
004213A4   push aa.004090DA                  ; 你
004213A9   push 2
004213AE   mov ebx,11C
004213B3   call aa.00421645
004213B8   add esp,1C
004213BB   mov dword ptr ss:,eax
004213BE   push dword ptr ss:
004213C1   push dword ptr ss:
004213C4   mov ecx,2
004213C9   call aa.004210EB
004213CE   add esp,8
004213D1   mov dword ptr ss:,eax
004213D4   mov ebx,dword ptr ss:
004213D7   test ebx,ebx
004213D9   je short aa.004213E4
004213DB   push ebx
004213DC   call aa.00421639
004213E1   add esp,4
004213E4   mov eax,dword ptr ss:
004213E7   push eax
004213E8   mov ebx,dword ptr ss:
004213EB   test ebx,ebx
004213ED   je short aa.004213F8
004213EF   push ebx
004213F0   call aa.00421639
004213F5   add esp,4
004213F8   pop eax
004213F9   mov dword ptr ss:,eax
004213FC   push 0
004213FE   push 0
00421400   push 0
00421402   push 80000004
00421407   push 0
00421409   mov eax,dword ptr ss:
0042140C   test eax,eax
0042140E   jnz short aa.00421415
00421410   mov eax,aa.004090CB
00421415   push eax
00421416   push 2
0042141B   mov ebx,144
00421420   call aa.00421645
00421425   add esp,1C
00421428   mov dword ptr ss:,eax       ; 取woaini第一位并传送到
0042142B   fld qword ptr ss:
0042142E   fild dword ptr ss:
00421431   fstp qword ptr ss:
00421434   fadd qword ptr ss:          ; +前面保存的结果就是注册码了
00421437   fstp qword ptr ss:
0042143A   push 80000601
0042143F   push dword ptr ss:
00421442   push dword ptr ss:
00421445   push 1
0042144A   mov ebx,168
0042144F   call aa.00421645
00421454   add esp,10
00421457   mov dword ptr ss:,eax
0042145A   push -1
0042145C   push 8
0042145E   push 16010003
00421463   push 52010001
00421468   call aa.0042164B
0042146D   add esp,10
00421470   mov dword ptr ss:,eax
00421473   mov eax,dword ptr ss:
00421476   push eax
00421477   push dword ptr ss:
0042147A   call aa.00421147
0042147F   add esp,8
00421482   cmp eax,0
00421485   mov eax,0
0042148A   sete al
0042148D   mov dword ptr ss:,eax
00421490   mov ebx,dword ptr ss:
00421493   test ebx,ebx
00421495   je short aa.004214A0
00421497   push ebx
00421498   call aa.00421639
0042149D   add esp,4
004214A0   mov ebx,dword ptr ss:
004214A3   test ebx,ebx
004214A5   je short aa.004214B0
004214A7   push ebx
004214A8   call aa.00421639
004214AD   add esp,4
004214B0   cmp dword ptr ss:,0
004214B4   je aa.0042154C
004214BA   push 0
004214BC   push aa.004090DD                  ; 厉害啊!
004214C1   push -1
004214C3   push 4
004214C5   push 16010004
004214CA   push 52010001
004214CF   call aa.0042163F
004214D4   add esp,18
004214D7   push 80000004
004214DC   push 0
004214DE   push aa.004090E5                  ; 厉害!
004214E3   push 80000301
004214E8   push 0
004214EA   push 0
004214EF   push 80000004
004214F4   push 0
004214F6   push aa.004090EC                  ; 恭喜您,注册成功!
004214FB   push 3
00421500   mov ebx,300
00421505   call aa.00421645
0042150A   add esp,28
0042150D   push 0
0042150F   push 1
00421514   push -1
00421516   push 6
00421518   push 16010002
0042151D   push 52010001
00421522   call aa.0042163F
00421527   add esp,18
0042152A   push 0
0042152C   push 1
00421531   push -1
00421533   push 5
00421535   push 16010018
0042153A   push 52010001
0042153F   call aa.0042163F
00421544   add esp,18
00421547   jmp aa.004215A3
0042154C   push 0
0042154E   push aa.004090FF                  ; 不对啊!
00421553   push -1
00421555   push 8
00421557   push 1601000E
0042155C   push 52010001
00421561   call aa.0042163F
00421566   add esp,18
00421569   push 0
0042156B   push aa.00409107                  ; 重试吧!
00421570   push -1
00421572   push 8
00421574   push 16010014
00421579   push 52010001
0042157E   call aa.0042163F
00421583   add esp,18
00421586   push 0
00421588   push 0BB8
0042158D   push -1
0042158F   push 8
00421591   push 16010016
00421596   push 52010001
0042159B   call aa.0042163F
004215A0   add esp,18
004215A3   mov ebx,dword ptr ss:
004215A6   test ebx,ebx
004215A8   je short aa.004215B3
004215AA   push ebx
004215AB   call aa.00421639
004215B0   add esp,4
004215B3   mov ebx,dword ptr ss:
004215B6   test ebx,ebx
004215B8   je short aa.004215C3
004215BA   push ebx
004215BB   call aa.00421639
004215C0   add esp,4
004215C3   mov esp,ebp
004215C5   pop ebp
004215C6   retn


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

算法总结:

用户名第一位*820421+119

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

VB注册机源码:

Private Sub Command1_Click()
Text2.Text = Asc(Mid(Text1.Text, 1))
Text2.Text = Text2.Text * 820421 + 119
End Sub
--------------------------------------------------------------------------------
【破解总结】


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

网游难民 发表于 2006-8-1 16:42:27

:L:L
学习拉~~
偶对浮点过敏~~~

haiyun 发表于 2006-8-1 18:37:00

学习了~~
只看个半懂~~

网游难民 发表于 2006-8-1 19:06:00

在.ecode下断,兄弟再去看下就明白拉~~

joyyazi 发表于 2007-11-15 16:43:16

过来看看!!!学习学习!!!
页: [1]
查看完整版本: obi-one's Crackme 简单算法分析