Syllogism Crackme - 1 简单算法分析
【破解日期】 2006年11月21日【破解作者】 冷血书生
【作者邮箱】 meiyou
【作者主页】 hxxp://www.126sohu.com/
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】 Syllogism Crackme - 1
【下载地址】 本地
【软件大小】 47k
【加壳方式】 无
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
004011CA push 65
004011CC push dword ptr ss:
004011CF call <jmp.&USER32.GetDlgItemTextA> ; 获取用户名
004011D4 push 19
004011D6 lea eax,dword ptr ss:
004011D9 push eax
004011DA push 66
004011DC push dword ptr ss:
004011DF call <jmp.&USER32.GetDlgItemTextA> ; 获取注册码
004011E4 lea edx,dword ptr ss:
004011E7 push edx
004011E8 lea ecx,dword ptr ss:
004011EB push ecx
004011EC call Syllogis.00401368 ; f7
004011F1 add esp,8
004011F4 test al,al
004011F6 jnz short Syllogis.0040120D
004011F8 push 0
004011FA push Syllogis.00409145 ; HOEBAG
004011FF push Syllogis.00409136 ; Try again, HOE
00401204 push 0
00401206 call <jmp.&USER32.MessageBoxA>
0040120B jmp short Syllogis.00401239
0040120D push 0
0040120F push Syllogis.00409156 ; NON-HOEBAG
00401214 push Syllogis.0040914C ; Nice job!
00401219 push 0
0040121B call <jmp.&USER32.MessageBoxA>
00401220 jmp short Syllogis.00401239
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
0040137D push eax
0040137E call Syllogis.004024AC
00401383 add esp,8
00401386 push 1
00401388 push 20
0040138A lea edx,dword ptr ss:
0040138D push edx
0040138E call Syllogis.004023BC ; 去掉用户名第一位
00401393 add esp,0C
00401396 lea ecx,dword ptr ss:
00401399 push ecx
0040139A push edi
0040139B call Syllogis.00402460 ; f7
004013A0 add esp,8
004013A3 test eax,eax
004013A5 jnz short Syllogis.004013A9
004013A7 mov bl,1 ; 注册成功标志
004013A9 push Syllogis.004091BA
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
00402469 xor eax,eax
0040246B xor ebx,ebx
0040246D mov al,byte ptr ds: ; 注册码第一位
0040246F mov bl,byte ptr ds: ; 第一位为空格
00402471 sub eax,ebx ; -
00402473 jnz short Syllogis.004024A9 ; 不相等就OVER
00402475 test bl,bl
00402477 je short Syllogis.004024A9
00402479 mov al,byte ptr ds: ; 注册码第二位
0040247C mov bl,byte ptr ds: ; 用户名第二位
0040247F sub eax,ebx ; -
00402481 jnz short Syllogis.004024A9 ; 不相等就OVER
00402483 test bl,bl
00402485 je short Syllogis.004024A9
00402487 mov al,byte ptr ds: ; 注册码第三位
0040248A mov bl,byte ptr ds: ; 用户名第三位
0040248D sub eax,ebx ; -
0040248F jnz short Syllogis.004024A9 ; 不相等就OVER
00402491 test bl,bl
00402493 je short Syllogis.004024A9
00402495 mov al,byte ptr ds: ; 注册码第四位
00402498 mov bl,byte ptr ds: ; 用户名第四位
0040249B sub eax,ebx ; -
0040249D jnz short Syllogis.004024A9 ; 不相等就OVER
0040249F add ecx,4
004024A2 add edx,4
004024A5 test bl,bl
004024A7 jnz short Syllogis.0040246D ; 继续计算
004024A9 pop ebx
004024AA retn
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
小结:
可以看出用户名位数和注册码位数要相等,将用户名第一位变为空格后再比较,明显注册码第一位为空格,所以注册信息为:
name: lengxue
code:engxue
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! 学习,收藏!!支持!!!!
页:
[1]