飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3649|回复: 1

[原创] Syllogism Crackme - 1 简单算法分析

[复制链接]
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-11-21 20:03:55 | 显示全部楼层 |阅读模式
    破解日期】 2006年11月21日
    【破解作者】 冷血书生
    【作者邮箱】 meiyou
    【作者主页】 hxxp://www.126sohu.com/
    【使用工具】 OD
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 Syllogism Crackme - 1
    【下载地址】 本地
    【软件大小】 47k
    【加壳方式】 无
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


    1. 004011CA   push 65
    2. 004011CC   push dword ptr ss:[ebp+8]
    3. 004011CF   call <jmp.&USER32.GetDlgItemTextA>    ; 获取用户名
    4. 004011D4   push 19
    5. 004011D6   lea eax,dword ptr ss:[ebp-38]
    6. 004011D9   push eax
    7. 004011DA   push 66
    8. 004011DC   push dword ptr ss:[ebp+8]
    9. 004011DF   call <jmp.&USER32.GetDlgItemTextA>    ; 获取注册码
    10. 004011E4   lea edx,dword ptr ss:[ebp-38]
    11. 004011E7   push edx
    12. 004011E8   lea ecx,dword ptr ss:[ebp-1C]
    13. 004011EB   push ecx
    14. 004011EC   call Syllogis.00401368                ; f7
    15. 004011F1   add esp,8
    16. 004011F4   test al,al
    17. 004011F6   jnz short Syllogis.0040120D
    18. 004011F8   push 0
    19. 004011FA   push Syllogis.00409145                ; HOEBAG
    20. 004011FF   push Syllogis.00409136                ; Try again, HOE
    21. 00401204   push 0
    22. 00401206   call <jmp.&USER32.MessageBoxA>
    23. 0040120B   jmp short Syllogis.00401239
    24. 0040120D   push 0
    25. 0040120F   push Syllogis.00409156                ; NON-HOEBAG
    26. 00401214   push Syllogis.0040914C                ; Nice job!
    27. 00401219   push 0
    28. 0040121B   call <jmp.&USER32.MessageBoxA>
    29. 00401220   jmp short Syllogis.00401239

    30. /////////////////////////////////////////////////////////////////////////
    31. /////////////////////////////////////////////////////////////////////////

    32. 0040137D   push eax
    33. 0040137E   call Syllogis.004024AC
    34. 00401383   add esp,8
    35. 00401386   push 1
    36. 00401388   push 20
    37. 0040138A   lea edx,dword ptr ss:[ebp-1C]
    38. 0040138D   push edx
    39. 0040138E   call Syllogis.004023BC                ; 去掉用户名第一位
    40. 00401393   add esp,0C
    41. 00401396   lea ecx,dword ptr ss:[ebp-1C]
    42. 00401399   push ecx
    43. 0040139A   push edi
    44. 0040139B   call Syllogis.00402460                ; f7
    45. 004013A0   add esp,8
    46. 004013A3   test eax,eax
    47. 004013A5   jnz short Syllogis.004013A9
    48. 004013A7   mov bl,1                              ; 注册成功标志
    49. 004013A9   push Syllogis.004091BA

    50. /////////////////////////////////////////////////////////////////////////
    51. /////////////////////////////////////////////////////////////////////////



    52. 00402469   xor eax,eax
    53. 0040246B   xor ebx,ebx
    54. 0040246D   mov al,byte ptr ds:[ecx]              ; 注册码第一位
    55. 0040246F   mov bl,byte ptr ds:[edx]              ; 第一位为空格
    56. 00402471   sub eax,ebx                           ; -
    57. 00402473   jnz short Syllogis.004024A9           ; 不相等就OVER
    58. 00402475   test bl,bl
    59. 00402477   je short Syllogis.004024A9
    60. 00402479   mov al,byte ptr ds:[ecx+1]            ; 注册码第二位
    61. 0040247C   mov bl,byte ptr ds:[edx+1]            ; 用户名第二位
    62. 0040247F   sub eax,ebx                           ; -
    63. 00402481   jnz short Syllogis.004024A9           ; 不相等就OVER
    64. 00402483   test bl,bl
    65. 00402485   je short Syllogis.004024A9
    66. 00402487   mov al,byte ptr ds:[ecx+2]            ; 注册码第三位
    67. 0040248A   mov bl,byte ptr ds:[edx+2]            ; 用户名第三位
    68. 0040248D   sub eax,ebx                           ; -
    69. 0040248F   jnz short Syllogis.004024A9           ; 不相等就OVER
    70. 00402491   test bl,bl
    71. 00402493   je short Syllogis.004024A9
    72. 00402495   mov al,byte ptr ds:[ecx+3]            ; 注册码第四位
    73. 00402498   mov bl,byte ptr ds:[edx+3]            ; 用户名第四位
    74. 0040249B   sub eax,ebx                           ; -
    75. 0040249D   jnz short Syllogis.004024A9           ; 不相等就OVER
    76. 0040249F   add ecx,4
    77. 004024A2   add edx,4
    78. 004024A5   test bl,bl
    79. 004024A7   jnz short Syllogis.0040246D           ; 继续计算
    80. 004024A9   pop ebx
    81. 004024AA   retn

    82. /////////////////////////////////////////////////////////////////////////
    83. /////////////////////////////////////////////////////////////////////////

    84. 小结:

    85. 可以看出用户名位数和注册码位数要相等,将用户名第一位变为空格后再比较,明显注册码第一位为空格,所以注册信息为:

    86. name: lengxue
    87. code:  engxue
    88. --------------------------------------------------------------------------------
    复制代码

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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-11-22 16:26:59 | 显示全部楼层
    学习,收藏!!支持!!!!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表