首页
社区
课程
招聘
[旧帖] [原创]ESF Database Convert Professional 5.9.02算法分析 0.00雪花
发表于: 2008-7-31 06:50 3795

[旧帖] [原创]ESF Database Convert Professional 5.9.02算法分析 0.00雪花

2008-7-31 06:50
3795
【破文标题】ESF Database Convert Professional 5.9.02算法分析
【破文作者】tianxj
【作者邮箱】[email]tianxj_2007@126.com[/email]
【作者主页】WwW.ChiNaPYG.CoM
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】ESF Database Convert Professional 5.9.02
【软件大小】17986KB
【软件类别】国外软件/数据库类
【软件语言】英文
【更新时间】2008-7-30
【原版下载】华军软件园http://www.newhua.com/soft/68954.htm
【保护方式】注册码
【软件简介】ESF Database Convert在MySQL, Access, SQL Server, Oracle, Excel, Paradox, dBase和文本格式之间转换数据库。
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
"Invalid registration!"
**************************************************************
二、用PEiD对esfdbcv.exe查壳,为 什么都没找到  *
**************************************************************
三、运行OD,用F12暂停法来到算法关键
0040B5E0   $  6A FF         PUSH -1
0040B5E2   .  68 C47A4100   PUSH esfdbcv.00417AC4
0040B5E7   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
0040B5ED   .  50            PUSH EAX
0040B5EE   .  83EC 0C       SUB ESP,0C
0040B5F1   .  56            PUSH ESI
0040B5F2   .  57            PUSH EDI
0040B5F3   .  A1 C0A74200   MOV EAX,DWORD PTR DS:[42A7C0]
0040B5F8   .  33C4          XOR EAX,ESP
0040B5FA   .  50            PUSH EAX
0040B5FB   .  8D4424 18     LEA EAX,DWORD PTR SS:[ESP+18]
0040B5FF   .  64:A3 0000000>MOV DWORD PTR FS:[0],EAX
0040B605   .  C74424 14 000>MOV DWORD PTR SS:[ESP+14],0
0040B60D   .  8D4C24 2C     LEA ECX,DWORD PTR SS:[ESP+2C]
0040B611   .  C74424 20 000>MOV DWORD PTR SS:[ESP+20],0
0040B619   .  FF15 F89B4100 CALL DWORD PTR DS:[<&MFC80U.#6167>]      ;  MFC80U.7830685A
0040B61F   .  8D4C24 2C     LEA ECX,DWORD PTR SS:[ESP+2C]
0040B623   .  FF15 F49B4100 CALL DWORD PTR DS:[<&MFC80U.#6173>]      ;  MFC80U.78306810
0040B629   .  8D4C24 2C     LEA ECX,DWORD PTR SS:[ESP+2C]
0040B62D   .  FF15 08994100 CALL DWORD PTR DS:[<&MFC80U.#2895>]      ;  MFC80U.78303FC0
0040B633   .  83F8 01       CMP EAX,1                                ;  //将E-Mail长度与1比较
0040B636   .  7D 16         JGE SHORT esfdbcv.0040B64E               ;  //大于等于则跳
0040B638   .  8B7424 28     MOV ESI,DWORD PTR SS:[ESP+28]
0040B63C   .  68 B8A24100   PUSH esfdbcv.0041A2B8
0040B641   .  8BCE          MOV ECX,ESI
0040B643   .  FF15 38994100 CALL DWORD PTR DS:[<&MFC80U.#283>]       ;  MFC80U.78305D94
0040B649   .  E9 1E010000   JMP esfdbcv.0040B76C
0040B64E   >  8D4C24 2C     LEA ECX,DWORD PTR SS:[ESP+2C]
0040B652   .  FF15 F09B4100 CALL DWORD PTR DS:[<&MFC80U.#4078>]      ;  //将E-Mail转大写
0040B658   .  8D4C24 2C     LEA ECX,DWORD PTR SS:[ESP+2C]
0040B65C   .  FF15 08994100 CALL DWORD PTR DS:[<&MFC80U.#2895>]      ;  MFC80U.78303FC0
0040B662   .  83F8 14       CMP EAX,14                               ;  //将E-Mail长度与14比较
0040B665   .  7D 1C         JGE SHORT esfdbcv.0040B683               ;  //大于等于则跳
0040B667   .  BE 14000000   MOV ESI,14                               ;  //ESI=14
0040B66C   .  2BF0          SUB ESI,EAX                              ;  //ESI=ESI-EAX
0040B66E   .  8BFF          MOV EDI,EDI
0040B670   >  6A 50         PUSH 50
0040B672   .  8D4C24 30     LEA ECX,DWORD PTR SS:[ESP+30]
0040B676   .  FF15 34994100 CALL DWORD PTR DS:[<&MFC80U.#894>]       ;  MFC80U.783061D7
0040B67C   .  83EE 01       SUB ESI,1
0040B67F   .^ 75 EF         JNZ SHORT esfdbcv.0040B670               ;  //将E-Mail用"P"补足14h位
0040B681   .  EB 32         JMP SHORT esfdbcv.0040B6B5
0040B683   >  7E 30         JLE SHORT esfdbcv.0040B6B5
0040B685   .  6A 14         PUSH 14
0040B687   .  8D4424 18     LEA EAX,DWORD PTR SS:[ESP+18]
0040B68B   .  50            PUSH EAX
0040B68C   .  8D4C24 34     LEA ECX,DWORD PTR SS:[ESP+34]
0040B690   .  FF15 7C9A4100 CALL DWORD PTR DS:[<&MFC80U.#3990>]      ;  //取E-Mail的左边14h位
0040B696   .  50            PUSH EAX
0040B697   .  8D4C24 30     LEA ECX,DWORD PTR SS:[ESP+30]
0040B69B   .  C64424 24 01  MOV BYTE PTR SS:[ESP+24],1
0040B6A0   .  FF15 F4984100 CALL DWORD PTR DS:[<&MFC80U.#774>]       ;  MFC80U.7830609C
0040B6A6   .  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
0040B6AA   .  C64424 20 00  MOV BYTE PTR SS:[ESP+20],0
0040B6AF   .  FF15 749C4100 CALL DWORD PTR DS:[<&MFC80U.#577>]       ;  MFC80U.78306092
0040B6B5   >  6A 40         PUSH 40
0040B6B7   .  6A 00         PUSH 0
0040B6B9   .  8D4C24 34     LEA ECX,DWORD PTR SS:[ESP+34]
0040B6BD   .  FF15 EC9B4100 CALL DWORD PTR DS:[<&MFC80U.#5705>]      ;  //将左边第1位换为"@"
0040B6C3   .  6A 3A         PUSH 3A
0040B6C5   .  6A 40         PUSH 40
0040B6C7   .  8D4C24 34     LEA ECX,DWORD PTR SS:[ESP+34]
0040B6CB   .  FF15 E89B4100 CALL DWORD PTR DS:[<&MFC80U.#5484>]      ;  //将"@"换为":"
0040B6D1   .  68 B8A24100   PUSH esfdbcv.0041A2B8
0040B6D6   .  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
0040B6DA   .  FF15 38994100 CALL DWORD PTR DS:[<&MFC80U.#283>]       ;  MFC80U.78305D94
0040B6E0   .  8D4C24 0C     LEA ECX,DWORD PTR SS:[ESP+C]
0040B6E4   .  FF15 F0984100 CALL DWORD PTR DS:[<&MFC80U.#293>]       ;  MFC80U.78305C6D
0040B6EA   .  8B3D 5C9A4100 MOV EDI,DWORD PTR DS:[<&MFC80U.#2311>]   ;  MFC80U.7830730F
0040B6F0   .  C64424 20 03  MOV BYTE PTR SS:[ESP+20],3
0040B6F5   .  33F6          XOR ESI,ESI                              ;  //ESI=0
0040B6F7   .  EB 07         JMP SHORT esfdbcv.0040B700
0040B6F9   .  8DA424 000000>LEA ESP,DWORD PTR SS:[ESP]
0040B700   >  56            PUSH ESI
0040B701   .  8D4C24 30     LEA ECX,DWORD PTR SS:[ESP+30]
0040B705   .  FF15 E49B4100 CALL DWORD PTR DS:[<&MFC80U.#2444>]      ;  MFC80U.7830570A
0040B70B   .  0FB7C0        MOVZX EAX,AX                             ;  //依次将变形后的E_Mail送入EAX
0040B70E   .  0FB7C8        MOVZX ECX,AX                             ;  //ECX=EAX
0040B711   .  03CE          ADD ECX,ESI                              ;  //ECX=ECX+ESI
0040B713   .  81E1 0F000080 AND ECX,8000000F                         ;  //ECX=ECX and 8000000F
0040B719   .  79 05         JNS SHORT esfdbcv.0040B720
0040B71B   .  49            DEC ECX
0040B71C   .  83C9 F0       OR ECX,FFFFFFF0
0040B71F   .  41            INC ECX
0040B720   >  51            PUSH ECX
0040B721   .  8D5424 10     LEA EDX,DWORD PTR SS:[ESP+10]
0040B725   .  68 C4CA4100   PUSH esfdbcv.0041CAC4                    ;  UNICODE "%X"
0040B72A   .  52            PUSH EDX
0040B72B   .  FFD7          CALL EDI                                 ;  //将ECX转字符形式
0040B72D   .  83C4 0C       ADD ESP,0C
0040B730   .  8D4424 0C     LEA EAX,DWORD PTR SS:[ESP+C]
0040B734   .  50            PUSH EAX
0040B735   .  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
0040B739   .  FF15 689B4100 CALL DWORD PTR DS:[<&MFC80U.#896>]       ;  //字符相连
0040B73F   .  83C6 01       ADD ESI,1                                ;  //ESI=ESI+1
0040B742   .  83FE 14       CMP ESI,14                               ;  //ESI与14比较
0040B745   .^ 7C B9         JL SHORT esfdbcv.0040B700                ;  //小于等于则跳
0040B747   .  8B7424 28     MOV ESI,DWORD PTR SS:[ESP+28]
0040B74B   .  8D4C24 10     LEA ECX,DWORD PTR SS:[ESP+10]
0040B74F   .  51            PUSH ECX
0040B750   .  8BCE          MOV ECX,ESI
0040B752   .  FF15 F8984100 CALL DWORD PTR DS:[<&MFC80U.#280>]       ;  MFC80U.78305C90
0040B758   .  8D4C24 0C     LEA ECX,DWORD PTR SS:[ESP+C]
0040B75C   .  FF15 749C4100 CALL DWORD PTR DS:[<&MFC80U.#577>]       ;  MFC80U.78306092
0040B762   .  8D4C24 10     LEA ECX,DWORD PTR SS:[ESP+10]
0040B766   .  FF15 749C4100 CALL DWORD PTR DS:[<&MFC80U.#577>]       ;  MFC80U.78306092
0040B76C   >  8D4C24 2C     LEA ECX,DWORD PTR SS:[ESP+2C]
0040B770   .  FF15 749C4100 CALL DWORD PTR DS:[<&MFC80U.#577>]       ;  MFC80U.78306092
0040B776   .  8BC6          MOV EAX,ESI
0040B778   .  8B4C24 18     MOV ECX,DWORD PTR SS:[ESP+18]
0040B77C   .  64:890D 00000>MOV DWORD PTR FS:[0],ECX
0040B783   .  59            POP ECX
0040B784   .  5F            POP EDI
0040B785   .  5E            POP ESI
0040B786   .  83C4 18       ADD ESP,18
0040B789   .  C2 0800       RETN 8

**************************************************************  
【破解总结】
--------------------------------------------------------------
【算法总结】
只和E-Mail有关,将其变形后运算
--------------------------------------------------------------
【算法注册机】
易语言代码
.版本 2

.子程序 _按钮1_被单击
.局部变量 a, 文本型
.局部变量 b, 文本型
.局部变量 c, 文本型
.局部变量 d, 文本型
.局部变量 e, 整数型
.局部变量 f, 文本型
.局部变量 i, 整数型

.判断开始 (编辑框1.内容 = “”)
    编辑框2.内容 = “输入有误,请重新输入。”
.默认

    .如果 (取文本长度 (编辑框1.内容) < 20)
        a = 到大写 (编辑框1.内容)
        .计次循环首 (20 - 取文本长度 (编辑框1.内容), i)
            a = a + “P”
        .计次循环尾 ()

    .否则
        a = 取文本左边 (到大写 (编辑框1.内容), 20)
    .如果结束

    b = 文本替换 (a, 1, 1, “@”)
    .计次循环首 (取文本长度 (b), i)
        c = 取文本中间 (b, i, 1)
        .如果 (c = “@”)
            d = d + “:”
        .否则
            d = d + c
        .如果结束

    .计次循环尾 ()
    .计次循环首 (取文本长度 (d), i)
        e = 取代码 (d, i) + i - 1
        f = f + 取文本右边 (取十六进制文本 (e), 1)
    .计次循环尾 ()

    编辑框2.内容 = f

.判断结束
--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

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

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 6092
活跃值: (654)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
2
好简单的东西啊......
不过到了算法了也是不错的了
我也要给某软件写注册机 了  作者的要求啊...
够荒谬吧..................
2008-7-31 07:25
0
游客
登录 | 注册 方可回帖
返回
//