飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3572|回复: 2

[原创] Super Email Verifier 1.87 算法分析

[复制链接]
  • TA的每日心情
    开心
    前天 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-7-15 16:06:46 | 显示全部楼层 |阅读模式
    【破文标题】Super Email Verifier 1.87 算法分析
    【破文作者】tianxj
    【作者邮箱】tianxj_2007@126.com
    【作者主页】WwW.ChiNaPYG.CoM
    破解工具】PEiD,OD
    【破解平台】Windows XP
    【软件名称】Super Email Verifier 1.87
    【软件大小】1240KB
    【软件类别】国外软件/邮件处理  
    【软件授权】共享版
    【软件语言】英文
    【运行环境】Win9x/Me/NT/2000/XP/2003
    【更新时间】2009-6-24 9:42:33
    【原版下载】http://www.onlinedown.net/soft/65952.htm
    【保护方式】注册码
    【软件简介】Super Email Verifier是一款批量电子邮件地址检验工具,可以帮助你快速的检查电子邮箱地址的准确性。
    【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------
    【破解内容】
    --------------------------------------------------------------
    **************************************************************
    一、运行程序,进行注册,输入错误的注册信息进行检测,有错误提示"Sorry, the license name and register key you input doesn't match."
    **************************************************************
    二、用PEiD对XVerifier.exe查壳,为 Borland Delphi 6.0 - 7.0
    **************************************************************
    三、打开OD,下万能断点,来到关键比较之处

    1. 00558DE5    E8 72FCFFFF     CALL    XVerifie.00558A5C                ; //算法CALL
    2. 00558DEA    8B45 F0         MOV     EAX, DWORD PTR SS:[EBP-10]       ; //注册码
    3. 00558DED    8B55 08         MOV     EDX, DWORD PTR SS:[EBP+8]        ; //试炼码
    4. 00558DF0    E8 C315EBFF     CALL    XVerifie.0040A3B8                ; //比较CALL
    复制代码
    跟进算法CALL

    1. 00558A5C    55              PUSH    EBP
    2. 00558A5D    8BEC            MOV     EBP, ESP
    3. 00558A5F    83C4 E4         ADD     ESP, -1C
    4. 00558A62    53              PUSH    EBX
    5. 00558A63    56              PUSH    ESI
    6. 00558A64    57              PUSH    EDI
    7. 00558A65    33DB            XOR     EBX, EBX
    8. 00558A67    895D E4         MOV     DWORD PTR SS:[EBP-1C], EBX
    9. 00558A6A    895D F4         MOV     DWORD PTR SS:[EBP-C], EBX
    10. 00558A6D    8BF9            MOV     EDI, ECX
    11. 00558A6F    8955 FC         MOV     DWORD PTR SS:[EBP-4], EDX
    12. 00558A72    8BF0            MOV     ESI, EAX
    13. 00558A74    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
    14. 00558A77    E8 80C5EAFF     CALL    XVerifie.00404FFC
    15. 00558A7C    33C0            XOR     EAX, EAX
    16. 00558A7E    55              PUSH    EBP
    17. 00558A7F    68 758B5500     PUSH    XVerifie.00558B75
    18. 00558A84    64:FF30         PUSH    DWORD PTR FS:[EAX]
    19. 00558A87    64:8920         MOV     DWORD PTR FS:[EAX], ESP
    20. 00558A8A    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
    21. 00558A8D    E8 82C3EAFF     CALL    XVerifie.00404E14
    22. 00558A92    3B46 4C         CMP     EAX, DWORD PTR DS:[ESI+4C]
    23. 00558A95    7F 0D           JG      SHORT XVerifie.00558AA4          ; //用户名长度大于100位则跳
    24. 00558A97    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
    25. 00558A9A    E8 75C3EAFF     CALL    XVerifie.00404E14
    26. 00558A9F    3B46 50         CMP     EAX, DWORD PTR DS:[ESI+50]
    27. 00558AA2    7D 0C           JGE     SHORT XVerifie.00558AB0          ; //用户名长度大于等于3位则跳
    28. 00558AA4    8BC7            MOV     EAX, EDI
    29. 00558AA6    E8 85C0EAFF     CALL    XVerifie.00404B30
    30. 00558AAB    E9 9F000000     JMP     XVerifie.00558B4F
    31. 00558AB0    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]        ; //用户名
    32. 00558AB3    E8 5CC3EAFF     CALL    XVerifie.00404E14                ; //取用户名长度
    33. 00558AB8    8BD8            MOV     EBX, EAX
    34. 00558ABA    EB 31           JMP     SHORT XVerifie.00558AED
    35. 00558ABC    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]        ; //用户名
    36. 00558ABF    8A4418 FF       MOV     AL, BYTE PTR DS:[EAX+EBX-1]      ; //倒取用户名ASCII码
    37. 00558AC3    25 FF000000     AND     EAX, 0FF
    38. 00558AC8    33D2            XOR     EDX, EDX
    39. 00558ACA    52              PUSH    EDX
    40. 00558ACB    50              PUSH    EAX
    41. 00558ACC    8B46 68         MOV     EAX, DWORD PTR DS:[ESI+68]       ; //常数06B5D2A2h
    42. 00558ACF    8B56 6C         MOV     EDX, DWORD PTR DS:[ESI+6C]
    43. 00558AD2    E8 7DD2EAFF     CALL    XVerifie.00405D54                ; //常数06B5D2A2h与ASCII求余
    44. 00558AD7    52              PUSH    EDX
    45. 00558AD8    50              PUSH    EAX
    46. 00558AD9    8D45 E4         LEA     EAX, DWORD PTR SS:[EBP-1C]
    47. 00558ADC    E8 A71FEBFF     CALL    XVerifie.0040AA88                ; //将余数转为10进制
    48. 00558AE1    8B55 E4         MOV     EDX, DWORD PTR SS:[EBP-1C]
    49. 00558AE4    8D45 F4         LEA     EAX, DWORD PTR SS:[EBP-C]
    50. 00558AE7    E8 30C3EAFF     CALL    XVerifie.00404E1C                ; //将10进制字符相连
    51. 00558AEC    4B              DEC     EBX
    52. 00558AED    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]        ; //用户名
    53. 00558AF0    E8 1FC3EAFF     CALL    XVerifie.00404E14                ; //取用户名长度
    54. 00558AF5    83E8 06         SUB     EAX, 6                           ; //用户名长度与6相减
    55. 00558AF8    3BD8            CMP     EBX, EAX                         ; //用户名长度与差比较
    56. 00558AFA    7C 04           JL      SHORT XVerifie.00558B00          ; //小于则跳出循环
    57. 00558AFC    85DB            TEST    EBX, EBX
    58. 00558AFE  ^ 7F BC           JG      SHORT XVerifie.00558ABC          ; //循环
    59. 00558B00    8D55 F8         LEA     EDX, DWORD PTR SS:[EBP-8]
    60. 00558B03    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-C]        ; //10进制相连字符串
    61. 00558B06    E8 55D3EAFF     CALL    XVerifie.00405E60                ; //10进制相连字符串转为16进制
    62. 00558B0B    8945 E8         MOV     DWORD PTR SS:[EBP-18], EAX
    63. 00558B0E    8955 EC         MOV     DWORD PTR SS:[EBP-14], EDX
    64. 00558B11    8B5E 60         MOV     EBX, DWORD PTR DS:[ESI+60]
    65. 00558B14    85DB            TEST    EBX, EBX
    66. 00558B16    7F 11           JG      SHORT XVerifie.00558B29
    67. 00558B18    FF75 EC         PUSH    DWORD PTR SS:[EBP-14]
    68. 00558B1B    FF75 E8         PUSH    DWORD PTR SS:[EBP-18]
    69. 00558B1E    8BD7            MOV     EDX, EDI
    70. 00558B20    33C0            XOR     EAX, EAX
    71. 00558B22    E8 D11FEBFF     CALL    XVerifie.0040AAF8
    72. 00558B27    EB 26           JMP     SHORT XVerifie.00558B4F
    73. 00558B29    FF75 EC         PUSH    DWORD PTR SS:[EBP-14]
    74. 00558B2C    FF75 E8         PUSH    DWORD PTR SS:[EBP-18]
    75. 00558B2F    8BD7            MOV     EDX, EDI
    76. 00558B31    8BC3            MOV     EAX, EBX
    77. 00558B33    E8 C01FEBFF     CALL    XVerifie.0040AAF8                ; //将16进制按12位字符形式输出
    78. 00558B38    8B07            MOV     EAX, DWORD PTR DS:[EDI]          ; //12位16进制字符串,即注册码
    79. 00558B3A    E8 D5C2EAFF     CALL    XVerifie.00404E14
    80. 00558B3F    8BC8            MOV     ECX, EAX
    81. 00558B41    2B4E 60         SUB     ECX, DWORD PTR DS:[ESI+60]
    82. 00558B44    8B56 60         MOV     EDX, DWORD PTR DS:[ESI+60]
    83. 00558B47    42              INC     EDX
    84. 00558B48    8BC7            MOV     EAX, EDI
    85. 00558B4A    E8 5DC5EAFF     CALL    XVerifie.004050AC
    86. 00558B4F    33C0            XOR     EAX, EAX
    87. 00558B51    5A              POP     EDX
    88. 00558B52    59              POP     ECX
    89. 00558B53    59              POP     ECX
    90. 00558B54    64:8910         MOV     DWORD PTR FS:[EAX], EDX
    91. 00558B57    68 7C8B5500     PUSH    XVerifie.00558B7C
    92. 00558B5C    8D45 E4         LEA     EAX, DWORD PTR SS:[EBP-1C]
    93. 00558B5F    E8 CCBFEAFF     CALL    XVerifie.00404B30
    94. 00558B64    8D45 F4         LEA     EAX, DWORD PTR SS:[EBP-C]
    95. 00558B67    E8 C4BFEAFF     CALL    XVerifie.00404B30
    96. 00558B6C    8D45 FC         LEA     EAX, DWORD PTR SS:[EBP-4]
    97. 00558B6F    E8 BCBFEAFF     CALL    XVerifie.00404B30
    98. 00558B74    C3              RETN
    99. 00558B75  ^ E9 76B8EAFF     JMP     XVerifie.004043F0
    100. 00558B7A  ^ EB E0           JMP     SHORT XVerifie.00558B5C
    101. 00558B7C    5F              POP     EDI
    102. 00558B7D    5E              POP     ESI
    103. 00558B7E    5B              POP     EBX
    104. 00558B7F    8BE5            MOV     ESP, EBP
    105. 00558B81    5D              POP     EBP
    106. 00558B82    C3              RETN
    复制代码
    **************************************************************  
    【破解总结】
    --------------------------------------------------------------
    【算法总结】
    简单算法
    --------------------------------------------------------------
    【算法注册机
    易语言代码
    .版本 2

    .局部变量 a, 整数型
    .局部变量 b, 整数型
    .局部变量 c, 文本型
    .局部变量 d, 文本型
    .局部变量 l, 整数型
    .局部变量 i, 整数型

    l = 取文本长度 (编辑框1.内容)
    .如果 (l > 100 或 l < 3)
        编辑框2.内容 = “输入有误,请重新输入!”
    .否则

        .计次循环首 (6, i)
            a = 取代码 (编辑框1.内容, l - i + 1)
            b = 到整数 (进制转换 (“06B5D2A2”, 16, 10)) % a
            c = c + 到文本 (b)
            .如果真 (l - i = 0)
                跳出循环 ()
            .如果真结束

        .计次循环尾 ()
        d = 取文本右边 (“000000000000” + 进制转换 (c, 10, 16), 12)
        编辑框2.内容 = d
    --------------------------------------------------------------
    【注册信息】
    用户名:tianxj
    注册码:003D57B765B6
    --------------------------------------------------------------
    感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及王者之剑等所有帮助过我的论坛兄弟姐妹们!谢谢
    --------------------------------------------------------------
    【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-11-29 21:31
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2009-7-15 21:46:34 | 显示全部楼层
    学习,老兄,你绝对是强人。。。。。。讲解的也很详细,谢谢你了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-7-16 08:15:39 | 显示全部楼层
    小弟向老兄学习了!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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