tianxj 发表于 2008-9-22 23:34:16

Advanced eLearning Builder 3.6.7算法分析

【破文标题】Advanced eLearning Builder 3.6.7算法分析
【破文作者】tianxj
【作者邮箱】[email protected]
【作者主页】WwW.ChiNaPYG.CoM
【破解工具】PEiD,OD
【破解平台】D-Windows XP sp2
【软件名称】Advanced eLearning Builder 3.6.7
【软件大小】2209KB
【软件语言】英文
【软件类别】国外软件/考试系统
【更新时间】2008-9-9
【原版下载】自己找一下
【保护方式】注册码
【软件简介】Advanced eLearning Builder是一款创建电子考题,指南,小型测验等电子教学材料的工具。使用该系统可以简单的通过点击几下鼠标创建各种类型的电子考题(可视化设计)等。
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
"Invalid Registration Key!"
**************************************************************
二、用PEiD对advelb.exe查壳,为 Borland Delphi 6.0 - 7.0
**************************************************************
三、运行OD,打开advelb.exe,输入注册信息,F12暂停,alt+K
调用堆栈 , 项目 19
地址=0012EAA4
堆栈=0049BB40
程序过程 / 参数=? advelb.0047F990
调用来自=advelb.0049BB3B
结构=0012EAA0
==============================================================0049BA18/.55               PUSH EBP
0049BA19|.8BEC             MOV EBP,ESP
0049BA1B|.B9 35000000      MOV ECX,35
0049BA20|>6A 00            /PUSH 0
0049BA22|.6A 00            |PUSH 0
0049BA24|.49               |DEC ECX
0049BA25|.^ 75 F9            \JNZ SHORT advelb.0049BA20
0049BA27|.51               PUSH ECX
0049BA28|.8955 F8          MOV DWORD PTR SS:,EDX
0049BA2B|.8945 FC          MOV DWORD PTR SS:,EAX
0049BA2E|.33C0             XOR EAX,EAX
0049BA30|.55               PUSH EBP
0049BA31|.68 06BD4900      PUSH advelb.0049BD06
0049BA36|.64:FF30          PUSH DWORD PTR FS:
0049BA39|.64:8920          MOV DWORD PTR FS:,ESP
0049BA3C|.A1 546C4B00      MOV EAX,DWORD PTR DS:
0049BA41|.C600 00          MOV BYTE PTR DS:,0
0049BA44|.8D95 80FEFFFF    LEA EDX,DWORD PTR SS:
0049BA4A|.8B45 FC          MOV EAX,DWORD PTR SS:
0049BA4D|.8B80 14030000    MOV EAX,DWORD PTR DS:
0049BA53|.E8 082FFCFF      CALL advelb.0045E960
0049BA58|.8B95 80FEFFFF    MOV EDX,DWORD PTR SS:         ;//用户名
0049BA5E|.8D85 84FEFFFF    LEA EAX,DWORD PTR SS:
0049BA64|.B9 FF000000      MOV ECX,0FF
0049BA69|.E8 FA8EF6FF      CALL advelb.00404968
0049BA6E|.8D95 84FEFFFF    LEA EDX,DWORD PTR SS:
0049BA74|.8D45 88          LEA EAX,DWORD PTR SS:
0049BA77|.B1 64            MOV CL,64
0049BA79|.E8 C275F6FF      CALL advelb.00403040
0049BA7E|.8D95 7CFEFFFF    LEA EDX,DWORD PTR SS:
0049BA84|.8B45 FC          MOV EAX,DWORD PTR SS:
0049BA87|.8B80 0C030000    MOV EAX,DWORD PTR DS:
0049BA8D|.E8 CE2EFCFF      CALL advelb.0045E960
0049BA92|.8B95 7CFEFFFF    MOV EDX,DWORD PTR SS:         ;//试练码
0049BA98|.8D85 84FEFFFF    LEA EAX,DWORD PTR SS:
0049BA9E|.B9 FF000000      MOV ECX,0FF
0049BAA3|.E8 C08EF6FF      CALL advelb.00404968
0049BAA8|.8D95 84FEFFFF    LEA EDX,DWORD PTR SS:
0049BAAE|.8D45 ED          LEA EAX,DWORD PTR SS:
0049BAB1|.B1 0A            MOV CL,0A
0049BAB3|.E8 8875F6FF      CALL advelb.00403040
0049BAB8|.8D85 78FEFFFF    LEA EAX,DWORD PTR SS:
0049BABE|.8D55 88          LEA EDX,DWORD PTR SS:
0049BAC1|.E8 6A8EF6FF      CALL advelb.00404930
0049BAC6|.8B85 78FEFFFF    MOV EAX,DWORD PTR SS:         ;//用户名
0049BACC|.50               PUSH EAX
0049BACD|.8D85 74FEFFFF    LEA EAX,DWORD PTR SS:
0049BAD3|.8D55 ED          LEA EDX,DWORD PTR SS:
0049BAD6|.E8 558EF6FF      CALL advelb.00404930
0049BADB|.8B85 74FEFFFF    MOV EAX,DWORD PTR SS:         ;//试练码
0049BAE1|.B9 7D000000      MOV ECX,7D                               ;//ECX=7Dh
0049BAE6|.5A               POP EDX
0049BAE7|.E8 9CF5FEFF      CALL advelb.0048B088                     ;//关键CALL1,第1种算法
0049BAEC|.84C0             TEST AL,AL
0049BAEE|.75 55            JNZ SHORT advelb.0049BB45                ;//关键跳转
0049BAF0|.8D85 70FEFFFF    LEA EAX,DWORD PTR SS:
0049BAF6|.8D55 88          LEA EDX,DWORD PTR SS:
0049BAF9|.E8 328EF6FF      CALL advelb.00404930
0049BAFE|.8B85 70FEFFFF    MOV EAX,DWORD PTR SS:         ;//用户名
0049BB04|.50               PUSH EAX
0049BB05|.8D85 6CFEFFFF    LEA EAX,DWORD PTR SS:
0049BB0B|.8D55 ED          LEA EDX,DWORD PTR SS:
0049BB0E|.E8 1D8EF6FF      CALL advelb.00404930
0049BB13|.8B85 6CFEFFFF    MOV EAX,DWORD PTR SS:         ;//试练码
0049BB19|.B9 87000000      MOV ECX,87                               ;//ECX=87h
0049BB1E|.5A               POP EDX
0049BB1F|.E8 64F5FEFF      CALL advelb.0048B088                     ;//关键CALL2,第2种算法
0049BB24|.84C0             TEST AL,AL
0049BB26|.75 1D            JNZ SHORT advelb.0049BB45                ;//关键跳转
0049BB28|.6A 00            PUSH 0
0049BB2A|.B9 14BD4900      MOV ECX,advelb.0049BD14                  ;ASCII "Advanced eLearning Builder"
0049BB2F|.BA 30BD4900      MOV EDX,advelb.0049BD30                  ;ASCII "Invalid Registration Key!"
0049BB34|.A1 106F4B00      MOV EAX,DWORD PTR DS:
0049BB39|.8B00             MOV EAX,DWORD PTR DS:
0049BB3B|.E8 503EFEFF      CALL advelb.0047F990
0049BB40|.E9 83010000      JMP advelb.0049BCC8
0049BB45|>A1 546C4B00      MOV EAX,DWORD PTR DS:
0049BB4A|.C600 01          MOV BYTE PTR DS:,1
0049BB4D|.A1 AC6C4B00      MOV EAX,DWORD PTR DS:
0049BB52|.8B00             MOV EAX,DWORD PTR DS:
0049BB54|.8B80 04030000    MOV EAX,DWORD PTR DS:
0049BB5A|.8078 39 00       CMP BYTE PTR DS:,0
0049BB5E|.74 0E            JE SHORT advelb.0049BB6E
0049BB60|.A1 AC6C4B00      MOV EAX,DWORD PTR DS:
0049BB65|.8B00             MOV EAX,DWORD PTR DS:
0049BB67|.E8 90530000      CALL advelb.004A0EFC
0049BB6C|.EB 0C            JMP SHORT advelb.0049BB7A
0049BB6E|>A1 AC6C4B00      MOV EAX,DWORD PTR DS:
0049BB73|.8B00             MOV EAX,DWORD PTR DS:
0049BB75|.E8 96510000      CALL advelb.004A0D10
0049BB7A|>8D95 68FEFFFF    LEA EDX,DWORD PTR SS:
0049BB80|.8B45 FC          MOV EAX,DWORD PTR SS:
0049BB83|.8B80 14030000    MOV EAX,DWORD PTR DS:
0049BB89|.E8 D22DFCFF      CALL advelb.0045E960
0049BB8E|.8B85 68FEFFFF    MOV EAX,DWORD PTR SS:
0049BB94|.E8 F38DF6FF      CALL advelb.0040498C
0049BB99|.85C0             TEST EAX,EAX
0049BB9B|.74 5E            JE SHORT advelb.0049BBFB
0049BB9D|.8D95 64FEFFFF    LEA EDX,DWORD PTR SS:
0049BBA3|.8B45 FC          MOV EAX,DWORD PTR SS:
0049BBA6|.8B80 14030000    MOV EAX,DWORD PTR DS:
0049BBAC|.E8 AF2DFCFF      CALL advelb.0045E960
0049BBB1|.8B85 64FEFFFF    MOV EAX,DWORD PTR SS:
0049BBB7|.50               PUSH EAX
0049BBB8|.8D95 60FEFFFF    LEA EDX,DWORD PTR SS:
0049BBBE|.8B45 FC          MOV EAX,DWORD PTR SS:
0049BBC1|.8B80 0C030000    MOV EAX,DWORD PTR DS:
0049BBC7|.E8 942DFCFF      CALL advelb.0045E960
0049BBCC|.8B85 60FEFFFF    MOV EAX,DWORD PTR SS:
0049BBD2|.B9 7D000000      MOV ECX,7D
0049BBD7|.5A               POP EDX
0049BBD8|.E8 ABF4FEFF      CALL advelb.0048B088
0049BBDD|.84C0             TEST AL,AL
0049BBDF|.74 1A            JE SHORT advelb.0049BBFB
0049BBE1|.BA 54BD4900      MOV EDX,advelb.0049BD54                  ;ASCII "advelb.dat"
0049BBE6|.8D45 88          LEA EAX,DWORD PTR SS:
0049BBE9|.E8 5EF0FEFF      CALL advelb.0048AC4C
0049BBEE|.A1 E46B4B00      MOV EAX,DWORD PTR DS:
0049BBF3|.C700 7D000000    MOV DWORD PTR DS:,7D
0049BBF9|.EB 5C            JMP SHORT advelb.0049BC57
0049BBFB|>8D95 5CFEFFFF    LEA EDX,DWORD PTR SS:
0049BC01|.8B45 FC          MOV EAX,DWORD PTR SS:
0049BC04|.8B80 14030000    MOV EAX,DWORD PTR DS:
0049BC0A|.E8 512DFCFF      CALL advelb.0045E960
0049BC0F|.8B85 5CFEFFFF    MOV EAX,DWORD PTR SS:
0049BC15|.50               PUSH EAX
0049BC16|.8D95 58FEFFFF    LEA EDX,DWORD PTR SS:
0049BC1C|.8B45 FC          MOV EAX,DWORD PTR SS:
0049BC1F|.8B80 0C030000    MOV EAX,DWORD PTR DS:
0049BC25|.E8 362DFCFF      CALL advelb.0045E960
0049BC2A|.8B85 58FEFFFF    MOV EAX,DWORD PTR SS:
0049BC30|.B9 87000000      MOV ECX,87
0049BC35|.5A               POP EDX
0049BC36|.E8 4DF4FEFF      CALL advelb.0048B088
0049BC3B|.84C0             TEST AL,AL
0049BC3D|.74 18            JE SHORT advelb.0049BC57
0049BC3F|.BA 54BD4900      MOV EDX,advelb.0049BD54                  ;ASCII "advelb.dat"
0049BC44|.8D45 88          LEA EAX,DWORD PTR SS:
0049BC47|.E8 00F0FEFF      CALL advelb.0048AC4C
0049BC4C|.A1 E46B4B00      MOV EAX,DWORD PTR DS:
0049BC51|.C700 87000000    MOV DWORD PTR DS:,87
0049BC57|>A1 546C4B00      MOV EAX,DWORD PTR DS:
0049BC5C|.8038 00          CMP BYTE PTR DS:,0
0049BC5F|.74 4F            JE SHORT advelb.0049BCB0
0049BC61|.6A 00            PUSH 0
0049BC63|.B9 14BD4900      MOV ECX,advelb.0049BD14                  ;ASCII "Advanced eLearning Builder"
0049BC68|.BA 60BD4900      MOV EDX,advelb.0049BD60                  ;ASCII "Successfully registered!"
0049BC6D|.A1 106F4B00      MOV EAX,DWORD PTR DS:
0049BC72|.8B00             MOV EAX,DWORD PTR DS:
0049BC74|.E8 173DFEFF      CALL advelb.0047F990
0049BC79|.A1 106F4B00      MOV EAX,DWORD PTR DS:
0049BC7E|.8B00             MOV EAX,DWORD PTR DS:
0049BC80|.BA 84BD4900      MOV EDX,advelb.0049BD84                  ;ASCII "Advanced eLearning Builder"
0049BC85|.E8 D636FEFF      CALL advelb.0047F360
0049BC8A|.8D95 54FEFFFF    LEA EDX,DWORD PTR SS:
0049BC90|.8B45 FC          MOV EAX,DWORD PTR SS:
0049BC93|.8B80 14030000    MOV EAX,DWORD PTR DS:
0049BC99|.E8 C22CFCFF      CALL advelb.0045E960
0049BC9E|.8B95 54FEFFFF    MOV EDX,DWORD PTR SS:
0049BCA4|.A1 546F4B00      MOV EAX,DWORD PTR DS:
0049BCA9|.E8 728AF6FF      CALL advelb.00404720
0049BCAE|.EB 18            JMP SHORT advelb.0049BCC8
0049BCB0|>6A 00            PUSH 0
0049BCB2|.B9 14BD4900      MOV ECX,advelb.0049BD14                  ;ASCII "Advanced eLearning Builder"
0049BCB7|.BA 30BD4900      MOV EDX,advelb.0049BD30                  ;ASCII "Invalid Registration Key!"
0049BCBC|.A1 106F4B00      MOV EAX,DWORD PTR DS:
0049BCC1|.8B00             MOV EAX,DWORD PTR DS:
0049BCC3|.E8 C83CFEFF      CALL advelb.0047F990
0049BCC8|>33C0             XOR EAX,EAX
0049BCCA|.5A               POP EDX
0049BCCB|.59               POP ECX
0049BCCC|.59               POP ECX
0049BCCD|.64:8910          MOV DWORD PTR FS:,EDX
0049BCD0|.68 0DBD4900      PUSH advelb.0049BD0D
0049BCD5|>8D85 54FEFFFF    LEA EAX,DWORD PTR SS:
0049BCDB|.BA 06000000      MOV EDX,6
0049BCE0|.E8 0B8AF6FF      CALL advelb.004046F0
0049BCE5|.8D85 6CFEFFFF    LEA EAX,DWORD PTR SS:
0049BCEB|.BA 04000000      MOV EDX,4
0049BCF0|.E8 FB89F6FF      CALL advelb.004046F0
0049BCF5|.8D85 7CFEFFFF    LEA EAX,DWORD PTR SS:
0049BCFB|.BA 02000000      MOV EDX,2
0049BD00|.E8 EB89F6FF      CALL advelb.004046F0
0049BD05\.C3               RETN
0049BD06   .^ E9 C583F6FF      JMP advelb.004040D0
0049BD0B   .^ EB C8            JMP SHORT advelb.0049BCD5
0049BD0D   .8BE5             MOV ESP,EBP
0049BD0F   .5D               POP EBP
0049BD10   .C3               RETN
==============================================================
0048B088/$55               PUSH EBP
0048B089|.8BEC             MOV EBP,ESP
0048B08B|.81C4 D0FEFFFF    ADD ESP,-130
0048B091|.53               PUSH EBX
0048B092|.33DB             XOR EBX,EBX
0048B094|.899D D0FEFFFF    MOV DWORD PTR SS:,EBX
0048B09A|.894D F4          MOV DWORD PTR SS:,ECX             ;//=ECX=7Dh
0048B09D|.8955 F8          MOV DWORD PTR SS:,EDX
0048B0A0|.8945 FC          MOV DWORD PTR SS:,EAX
0048B0A3|.8B45 FC          MOV EAX,DWORD PTR SS:             ;//试练码
0048B0A6|.E8 D19AF7FF      CALL advelb.00404B7C
0048B0AB|.8B45 F8          MOV EAX,DWORD PTR SS:             ;//用户名
0048B0AE|.E8 C99AF7FF      CALL advelb.00404B7C
0048B0B3|.33C0             XOR EAX,EAX
0048B0B5|.55               PUSH EBP
0048B0B6|.68 A6B14800      PUSH advelb.0048B1A6
0048B0BB|.64:FF30          PUSH DWORD PTR FS:
0048B0BE|.64:8920          MOV DWORD PTR FS:,ESP
0048B0C1|.C645 EB 01       MOV BYTE PTR SS:,1
0048B0C5|.8B45 FC          MOV EAX,DWORD PTR SS:             ;//试练码
0048B0C8|.E8 BF98F7FF      CALL advelb.0040498C                     ;//取试练码长度
0048B0CD|.83F8 0A          CMP EAX,0A
0048B0D0|.0F85 AA000000    JNZ advelb.0048B180                      ;//试练码长度不等于0Ah则跳
0048B0D6|.8B45 F8          MOV EAX,DWORD PTR SS:             ;//用户名
0048B0D9|.E8 AE98F7FF      CALL advelb.0040498C                     ;//取用户名长度
0048B0DE|.48               DEC EAX
0048B0DF|.0F8C 9B000000    JL advelb.0048B180                     ;//用户名长度小于1则跳
0048B0E5|.8D8D D0FEFFFF    LEA ECX,DWORD PTR SS:
0048B0EB|.8B55 F4          MOV EDX,DWORD PTR SS:             ;//EDX==7Dh
0048B0EE|.8B45 F8          MOV EAX,DWORD PTR SS:             ;//用户名
0048B0F1|.E8 92FEFFFF      CALL advelb.0048AF88                     ;//算法CALL
0048B0F6|.8B95 D0FEFFFF    MOV EDX,DWORD PTR SS:         ;//真码
0048B0FC|.8D85 D4FEFFFF    LEA EAX,DWORD PTR SS:
0048B102|.B9 FF000000      MOV ECX,0FF
0048B107|.E8 5C98F7FF      CALL advelb.00404968
0048B10C|.8D95 D4FEFFFF    LEA EDX,DWORD PTR SS:
0048B112|.8D45 D5          LEA EAX,DWORD PTR SS:
0048B115|.B1 0A            MOV CL,0A
0048B117|.E8 247FF7FF      CALL advelb.00403040
0048B11C|.C745 EC 01000000 MOV DWORD PTR SS:,1
0048B123|>837D EC 03       /CMP DWORD PTR SS:,3
0048B127|.74 48            |JE SHORT advelb.0048B171
0048B129|.837D EC 05       |CMP DWORD PTR SS:,5
0048B12D|.74 42            |JE SHORT advelb.0048B171
0048B12F|.837D EC 08       |CMP DWORD PTR SS:,8
0048B133|.74 3C            |JE SHORT advelb.0048B171
0048B135|.807D EB 00       |CMP BYTE PTR SS:,0
0048B139|.74 2D            |JE SHORT advelb.0048B168
0048B13B|.8B45 EC          |MOV EAX,DWORD PTR SS:
0048B13E|.8B55 FC          |MOV EDX,DWORD PTR SS:
0048B141|.48               |DEC EAX
0048B142|.85D2             |TEST EDX,EDX
0048B144|.74 05            |JE SHORT advelb.0048B14B
0048B146|.3B42 FC          |CMP EAX,DWORD PTR DS:
0048B149|.72 05            |JB SHORT advelb.0048B150
0048B14B|>E8 6487F7FF      |CALL advelb.004038B4
0048B150|>40               |INC EAX
0048B151|.8A4402 FF      |MOV AL,BYTE PTR DS:
0048B155|.8B55 EC          |MOV EDX,DWORD PTR SS:
0048B158|.83FA 0A          |CMP EDX,0A
0048B15B|.76 05            |JBE SHORT advelb.0048B162
0048B15D|.E8 5287F7FF      |CALL advelb.004038B4
0048B162|>3A4415 D5      |CMP AL,BYTE PTR SS:
0048B166|.74 04            |JE SHORT advelb.0048B16C
0048B168|>33C0             |XOR EAX,EAX
0048B16A|.EB 02            |JMP SHORT advelb.0048B16E
0048B16C|>B0 01            |MOV AL,1
0048B16E|>8845 EB          |MOV BYTE PTR SS:,AL
0048B171|>FF45 EC          |INC DWORD PTR SS:
0048B174|.837D EC 0B       |CMP DWORD PTR SS:,0B
0048B178|.^ 75 A9            \JNZ SHORT advelb.0048B123               ;//循环,真码假码逐位比较
0048B17A|.8A45 EB          MOV AL,BYTE PTR SS:
0048B17D|.8845 F3          MOV BYTE PTR SS:,AL
0048B180|>33C0             XOR EAX,EAX
0048B182|.5A               POP EDX
0048B183|.59               POP ECX
0048B184|.59               POP ECX
0048B185|.64:8910          MOV DWORD PTR FS:,EDX
0048B188|.68 ADB14800      PUSH advelb.0048B1AD
0048B18D|>8D85 D0FEFFFF    LEA EAX,DWORD PTR SS:
0048B193|.E8 3495F7FF      CALL advelb.004046CC
0048B198|.8D45 F8          LEA EAX,DWORD PTR SS:
0048B19B|.BA 02000000      MOV EDX,2
0048B1A0|.E8 4B95F7FF      CALL advelb.004046F0
0048B1A5\.C3               RETN
0048B1A6   .^ E9 258FF7FF      JMP advelb.004040D0
0048B1AB   .^ EB E0            JMP SHORT advelb.0048B18D
0048B1AD   .8A45 F3          MOV AL,BYTE PTR SS:
0048B1B0   .5B               POP EBX
0048B1B1   .8BE5             MOV ESP,EBP
0048B1B3   .5D               POP EBP
0048B1B4   .C3               RETN
==============================================================
0048AF88/$55               PUSH EBP
0048AF89|.8BEC             MOV EBP,ESP
0048AF8B|.51               PUSH ECX
0048AF8C|.B9 05000000      MOV ECX,5
0048AF91|>6A 00            /PUSH 0
0048AF93|.6A 00            |PUSH 0
0048AF95|.49               |DEC ECX
0048AF96|.^ 75 F9            \JNZ SHORT advelb.0048AF91
0048AF98|.51               PUSH ECX
0048AF99|.874D FC          XCHG DWORD PTR SS:,ECX
0048AF9C|.53               PUSH EBX
0048AF9D|.894D F4          MOV DWORD PTR SS:,ECX
0048AFA0|.8955 F8          MOV DWORD PTR SS:,EDX             ;//=EDX=7Dh
0048AFA3|.8945 FC          MOV DWORD PTR SS:,EAX
0048AFA6|.8B45 FC          MOV EAX,DWORD PTR SS:             ;//用户名
0048AFA9|.E8 CE9BF7FF      CALL advelb.00404B7C
0048AFAE|.33C0             XOR EAX,EAX
0048AFB0|.55               PUSH EBP
0048AFB1|.68 7BB04800      PUSH advelb.0048B07B
0048AFB6|.64:FF30          PUSH DWORD PTR FS:
0048AFB9|.64:8920          MOV DWORD PTR FS:,ESP
0048AFBC|.8D55 F0          LEA EDX,DWORD PTR SS:
0048AFBF|.8B45 FC          MOV EAX,DWORD PTR SS:             ;//用户名
0048AFC2|.E8 61D9F7FF      CALL advelb.00408928                     ;//用户名转大写
0048AFC7|.8D55 E0          LEA EDX,DWORD PTR SS:
0048AFCA|.8B45 F0          MOV EAX,DWORD PTR SS:            ;//大写用户名
0048AFCD|.E8 A2FAFFFF      CALL advelb.0048AA74                     ;//取大写用户名MD5值大写
0048AFD2|.8B55 E0          MOV EDX,DWORD PTR SS:            ;//大写用户名MD5值大写
0048AFD5|.8D45 F0          LEA EAX,DWORD PTR SS:
0048AFD8|.E8 8797F7FF      CALL advelb.00404764
0048AFDD|.FF75 F0          PUSH DWORD PTR SS:
0048AFE0|.8D55 DC          LEA EDX,DWORD PTR SS:
0048AFE3|.8B45 F8          MOV EAX,DWORD PTR SS:             ;//EAX==7Dh
0048AFE6|.E8 F5DDF7FF      CALL advelb.00408DE0                     ;//7Dh转10进制字符形式,即125
0048AFEB|.FF75 DC          PUSH DWORD PTR SS:
0048AFEE|.8D55 D4          LEA EDX,DWORD PTR SS:
0048AFF1|.8B45 F8          MOV EAX,DWORD PTR SS:
0048AFF4|.E8 E7DDF7FF      CALL advelb.00408DE0
0048AFF9|.8B45 D4          MOV EAX,DWORD PTR SS:            ;//"125"
0048AFFC|.8D55 D8          LEA EDX,DWORD PTR SS:
0048AFFF|.E8 70FAFFFF      CALL advelb.0048AA74                     ;//取字符串"125"MD5值大写
0048B004|.FF75 D8          PUSH DWORD PTR SS:               ;//字符串"125"MD5值大写
0048B007|.8D45 EC          LEA EAX,DWORD PTR SS:
0048B00A|.BA 03000000      MOV EDX,3
0048B00F|.E8 389AF7FF      CALL advelb.00404A4C                     ;//将大写用户名MD5值大写和字符串"125"及其MD5值大写相连
0048B014|.8D55 D0          LEA EDX,DWORD PTR SS:
0048B017|.8B45 EC          MOV EAX,DWORD PTR SS:            ;//相连字符串
0048B01A|.E8 55FAFFFF      CALL advelb.0048AA74                     ;//取相连字符串MD5值大写
0048B01F|.8B55 D0          MOV EDX,DWORD PTR SS:            ;//相连字符串MD5值大写
0048B022|.8D45 EC          LEA EAX,DWORD PTR SS:
0048B025|.E8 3A97F7FF      CALL advelb.00404764
0048B02A|.8D45 EC          LEA EAX,DWORD PTR SS:
0048B02D|.50               PUSH EAX
0048B02E|.B9 0A000000      MOV ECX,0A
0048B033|.BA 07000000      MOV EDX,7
0048B038|.8B45 EC          MOV EAX,DWORD PTR SS:            ;//相连字符串MD5值大写
0048B03B|.E8 AC9BF7FF      CALL advelb.00404BEC                     ;//取相连字符串MD5值大写的7~16位
0048B040|.8B45 F4          MOV EAX,DWORD PTR SS:
0048B043|.8B55 EC          MOV EDX,DWORD PTR SS:            ;//相连字符串MD5值大写的7~16位,即真码
0048B046|.E8 D596F7FF      CALL advelb.00404720
0048B04B|.33C0             XOR EAX,EAX
0048B04D|.5A               POP EDX
0048B04E|.59               POP ECX
0048B04F|.59               POP ECX
0048B050|.64:8910          MOV DWORD PTR FS:,EDX
0048B053|.68 82B04800      PUSH advelb.0048B082
0048B058|>8D45 D0          LEA EAX,DWORD PTR SS:
0048B05B|.BA 05000000      MOV EDX,5
0048B060|.E8 8B96F7FF      CALL advelb.004046F0
0048B065|.8D45 EC          LEA EAX,DWORD PTR SS:
0048B068|.BA 02000000      MOV EDX,2
0048B06D|.E8 7E96F7FF      CALL advelb.004046F0
0048B072|.8D45 FC          LEA EAX,DWORD PTR SS:
0048B075|.E8 5296F7FF      CALL advelb.004046CC
0048B07A\.C3               RETN
0048B07B   .^ E9 5090F7FF      JMP advelb.004040D0
0048B080   .^ EB D6            JMP SHORT advelb.0048B058
0048B082   .5B               POP EBX
0048B083   .8BE5             MOV ESP,EBP
0048B085   .5D               POP EBP
0048B086   .C3               RETN**************************************************************
【破解总结】
--------------------------------------------------------------
【算法总结】
有两种注册算法,分别使用了3次标准MD5运算
--------------------------------------------------------------
【算法注册机】
VB代码
Private Sub Command1_Click()
If Len(Text1.Text) = 0 Then
Text2.Text = "请输入用户名!"
Else
Text2.Text = Mid((MD5(MD5(UCase(Text1.Text)) & "125" & MD5("125"))), 7, 10)'MD5模块,"125"也可以是"135"
End If
End Sub
--------------------------------------------------------------
【注册信息】
保存在"advelb.dat"
--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!


   _/_/_/   _/   _/   _/_/_/
    _/   _/_/_/    _/      
   _/_/_/    _/_/   _/_/_/_/
_/         _/      _/    _/
_/         _/      _/_/_/ _/    tianxj
页: [1]
查看完整版本: Advanced eLearning Builder 3.6.7算法分析