首页
社区
课程
招聘
[旧帖] [原创]Super Email Verifier 1.87 算法分析 0.00雪花
发表于: 2009-7-15 16:03 4240

[旧帖] [原创]Super Email Verifier 1.87 算法分析 0.00雪花

2009-7-15 16:03
4240
【破文标题】Super Email Verifier 1.87 算法分析
【破文作者】tianxj
【作者邮箱】[email]tianxj_2007@126.com[/email]
【作者主页】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,下万能断点,来到关键比较之处
00558DE5    E8 72FCFFFF     CALL    XVerifie.00558A5C                ; //算法CALL
00558DEA    8B45 F0         MOV     EAX, DWORD PTR SS:[EBP-10]       ; //注册码
00558DED    8B55 08         MOV     EDX, DWORD PTR SS:[EBP+8]        ; //试炼码
00558DF0    E8 C315EBFF     CALL    XVerifie.0040A3B8                ; //比较CALL

跟进算法CALL
00558A5C    55              PUSH    EBP
00558A5D    8BEC            MOV     EBP, ESP
00558A5F    83C4 E4         ADD     ESP, -1C
00558A62    53              PUSH    EBX
00558A63    56              PUSH    ESI
00558A64    57              PUSH    EDI
00558A65    33DB            XOR     EBX, EBX
00558A67    895D E4         MOV     DWORD PTR SS:[EBP-1C], EBX
00558A6A    895D F4         MOV     DWORD PTR SS:[EBP-C], EBX
00558A6D    8BF9            MOV     EDI, ECX
00558A6F    8955 FC         MOV     DWORD PTR SS:[EBP-4], EDX
00558A72    8BF0            MOV     ESI, EAX
00558A74    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
00558A77    E8 80C5EAFF     CALL    XVerifie.00404FFC
00558A7C    33C0            XOR     EAX, EAX
00558A7E    55              PUSH    EBP
00558A7F    68 758B5500     PUSH    XVerifie.00558B75
00558A84    64:FF30         PUSH    DWORD PTR FS:[EAX]
00558A87    64:8920         MOV     DWORD PTR FS:[EAX], ESP
00558A8A    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
00558A8D    E8 82C3EAFF     CALL    XVerifie.00404E14
00558A92    3B46 4C         CMP     EAX, DWORD PTR DS:[ESI+4C]
00558A95    7F 0D           JG      SHORT XVerifie.00558AA4          ; //用户名长度大于100位则跳
00558A97    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]
00558A9A    E8 75C3EAFF     CALL    XVerifie.00404E14
00558A9F    3B46 50         CMP     EAX, DWORD PTR DS:[ESI+50]
00558AA2    7D 0C           JGE     SHORT XVerifie.00558AB0          ; //用户名长度大于等于3位则跳
00558AA4    8BC7            MOV     EAX, EDI
00558AA6    E8 85C0EAFF     CALL    XVerifie.00404B30
00558AAB    E9 9F000000     JMP     XVerifie.00558B4F
00558AB0    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]        ; //用户名
00558AB3    E8 5CC3EAFF     CALL    XVerifie.00404E14                ; //取用户名长度
00558AB8    8BD8            MOV     EBX, EAX
00558ABA    EB 31           JMP     SHORT XVerifie.00558AED
00558ABC    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]        ; //用户名
00558ABF    8A4418 FF       MOV     AL, BYTE PTR DS:[EAX+EBX-1]      ; //倒取用户名ASCII码
00558AC3    25 FF000000     AND     EAX, 0FF
00558AC8    33D2            XOR     EDX, EDX
00558ACA    52              PUSH    EDX
00558ACB    50              PUSH    EAX
00558ACC    8B46 68         MOV     EAX, DWORD PTR DS:[ESI+68]       ; //常数06B5D2A2h
00558ACF    8B56 6C         MOV     EDX, DWORD PTR DS:[ESI+6C]
00558AD2    E8 7DD2EAFF     CALL    XVerifie.00405D54                ; //常数06B5D2A2h与ASCII求余
00558AD7    52              PUSH    EDX
00558AD8    50              PUSH    EAX
00558AD9    8D45 E4         LEA     EAX, DWORD PTR SS:[EBP-1C]
00558ADC    E8 A71FEBFF     CALL    XVerifie.0040AA88                ; //将余数转为10进制
00558AE1    8B55 E4         MOV     EDX, DWORD PTR SS:[EBP-1C]
00558AE4    8D45 F4         LEA     EAX, DWORD PTR SS:[EBP-C]
00558AE7    E8 30C3EAFF     CALL    XVerifie.00404E1C                ; //将10进制字符相连
00558AEC    4B              DEC     EBX
00558AED    8B45 FC         MOV     EAX, DWORD PTR SS:[EBP-4]        ; //用户名
00558AF0    E8 1FC3EAFF     CALL    XVerifie.00404E14                ; //取用户名长度
00558AF5    83E8 06         SUB     EAX, 6                           ; //用户名长度与6相减
00558AF8    3BD8            CMP     EBX, EAX                         ; //用户名长度与差比较
00558AFA    7C 04           JL      SHORT XVerifie.00558B00          ; //小于则跳出循环
00558AFC    85DB            TEST    EBX, EBX
00558AFE  ^ 7F BC           JG      SHORT XVerifie.00558ABC          ; //循环
00558B00    8D55 F8         LEA     EDX, DWORD PTR SS:[EBP-8]
00558B03    8B45 F4         MOV     EAX, DWORD PTR SS:[EBP-C]        ; //10进制相连字符串
00558B06    E8 55D3EAFF     CALL    XVerifie.00405E60                ; //10进制相连字符串转为16进制
00558B0B    8945 E8         MOV     DWORD PTR SS:[EBP-18], EAX
00558B0E    8955 EC         MOV     DWORD PTR SS:[EBP-14], EDX
00558B11    8B5E 60         MOV     EBX, DWORD PTR DS:[ESI+60]
00558B14    85DB            TEST    EBX, EBX
00558B16    7F 11           JG      SHORT XVerifie.00558B29
00558B18    FF75 EC         PUSH    DWORD PTR SS:[EBP-14]
00558B1B    FF75 E8         PUSH    DWORD PTR SS:[EBP-18]
00558B1E    8BD7            MOV     EDX, EDI
00558B20    33C0            XOR     EAX, EAX
00558B22    E8 D11FEBFF     CALL    XVerifie.0040AAF8
00558B27    EB 26           JMP     SHORT XVerifie.00558B4F
00558B29    FF75 EC         PUSH    DWORD PTR SS:[EBP-14]
00558B2C    FF75 E8         PUSH    DWORD PTR SS:[EBP-18]
00558B2F    8BD7            MOV     EDX, EDI
00558B31    8BC3            MOV     EAX, EBX
00558B33    E8 C01FEBFF     CALL    XVerifie.0040AAF8                ; //将16进制按12位字符形式输出
00558B38    8B07            MOV     EAX, DWORD PTR DS:[EDI]          ; //12位16进制字符串,即注册码
00558B3A    E8 D5C2EAFF     CALL    XVerifie.00404E14
00558B3F    8BC8            MOV     ECX, EAX
00558B41    2B4E 60         SUB     ECX, DWORD PTR DS:[ESI+60]
00558B44    8B56 60         MOV     EDX, DWORD PTR DS:[ESI+60]
00558B47    42              INC     EDX
00558B48    8BC7            MOV     EAX, EDI
00558B4A    E8 5DC5EAFF     CALL    XVerifie.004050AC
00558B4F    33C0            XOR     EAX, EAX
00558B51    5A              POP     EDX
00558B52    59              POP     ECX
00558B53    59              POP     ECX
00558B54    64:8910         MOV     DWORD PTR FS:[EAX], EDX
00558B57    68 7C8B5500     PUSH    XVerifie.00558B7C
00558B5C    8D45 E4         LEA     EAX, DWORD PTR SS:[EBP-1C]
00558B5F    E8 CCBFEAFF     CALL    XVerifie.00404B30
00558B64    8D45 F4         LEA     EAX, DWORD PTR SS:[EBP-C]
00558B67    E8 C4BFEAFF     CALL    XVerifie.00404B30
00558B6C    8D45 FC         LEA     EAX, DWORD PTR SS:[EBP-4]
00558B6F    E8 BCBFEAFF     CALL    XVerifie.00404B30
00558B74    C3              RETN
00558B75  ^ E9 76B8EAFF     JMP     XVerifie.004043F0
00558B7A  ^ EB E0           JMP     SHORT XVerifie.00558B5C
00558B7C    5F              POP     EDI
00558B7D    5E              POP     ESI
00558B7E    5B              POP     EBX
00558B7F    8BE5            MOV     ESP, EBP
00558B81    5D              POP     EBP
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老大以及很多前辈们的学习教程以及王者之剑等所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 474
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

难得看到用易语言写注册机的
开眼界了
2009-7-15 16:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
已经不行了 爱爱爱啊
2009-12-16 16:27
0
游客
登录 | 注册 方可回帖
返回
//