安全中国首页 > 文章中心 > 补丁技术
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

Keygen入门系列算法到Delphi注册机

更新时间:2007-12-6 0:18:00
责任编辑:流火
热 点:
第4个学习笔记~注册机研究中~以后补上
0045004C    55              PUSH EBP
0045004D    8BEC            MOV EBP,ESP
0045004F    83C4 DC         ADD ESP,-24
00450052    33C9            XOR ECX,ECX
00450054    894D F8         MOV DWORD PTR SS:[EBP-8],ECX
00450057    894D F4         MOV DWORD PTR SS:[EBP-C],ECX
0045005A    8955 E0         MOV DWORD PTR SS:[EBP-20],EDX
0045005D    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
00450060    33C0            XOR EAX,EAX
00450062    55              PUSH EBP
00450063    68 8D014500     PUSH KeyGenMe.0045018D
00450068    64:FF30         PUSH DWORD PTR FS:[EAX]
0045006B    64:8920         MOV DWORD PTR FS:[EAX],ESP
0045006E    8D55 F8         LEA EDX,DWORD PTR SS:[EBP-8]
00450071    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00450074    8B80 00030000   MOV EAX,DWORD PTR DS:[EAX+300]
0045007A    E8 D9F2FDFF     CALL KeyGenMe.0042F358
0045007F    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
00450082    E8 4940FBFF     CALL KeyGenMe.004040D0                   ; 取用户名位数
00450087    8945 F0         MOV DWORD PTR SS:[EBP-10],EAX
0045008A    837D F0 02      CMP DWORD PTR SS:[EBP-10],2              ; 用户名位数与2比较
0045008E    0F8C DE000000   JL KeyGenMe.00450172
00450094    8D55 F4         LEA EDX,DWORD PTR SS:[EBP-C]
00450097    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
0045009A    8B80 08030000   MOV EAX,DWORD PTR DS:[EAX+308]
004500A0    E8 B3F2FDFF     CALL KeyGenMe.0042F358                   ; 取试验码位数
004500A5    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
004500A8    E8 2340FBFF     CALL KeyGenMe.004040D0
004500AD    8945 EC         MOV DWORD PTR SS:[EBP-14],EAX
004500B0    837D EC 0A      CMP DWORD PTR SS:[EBP-14],0A             ; 试验码与10比较
004500B4    0F85 B8000000   JNZ KeyGenMe.00450172
004500BA    8B45 EC         MOV EAX,DWORD PTR SS:[EBP-14]
004500BD    85C0            TEST EAX,EAX
004500BF    7E 34           JLE SHORT KeyGenMe.004500F5
004500C1    8945 E4         MOV DWORD PTR SS:[EBP-1C],EAX
004500C4    C745 E8 0100000>MOV DWORD PTR SS:[EBP-18],1
004500CB    8B45 F4         /MOV EAX,DWORD PTR SS:[EBP-C]
004500CE    8B55 E8         |MOV EDX,DWORD PTR SS:[EBP-18]
004500D1    807C10 FF 30    |CMP BYTE PTR DS:[EAX+EDX-1],30          ; 判断是否是数字?
004500D6    0F82 96000000   |JB KeyGenMe.00450172
004500DC    8B45 F4         |MOV EAX,DWORD PTR SS:[EBP-C]
004500DF    8B55 E8         |MOV EDX,DWORD PTR SS:[EBP-18]
004500E2    807C10 FF 39    |CMP BYTE PTR DS:[EAX+EDX-1],39          ; 判断是否是数字?
004500E7    0F87 85000000   |JA KeyGenMe.00450172
004500ED    FF45 E8         |INC DWORD PTR SS:[EBP-18]
004500F0    FF4D E4         |DEC DWORD PTR SS:[EBP-1C]
004500F3  ^ 75 D6           \JNZ SHORT KeyGenMe.004500CB
004500F5    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
004500F8    0FB600          MOVZX EAX,BYTE PTR DS:[EAX]              ; 取注册码第1
004500FB    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
004500FE    0FB652 05       MOVZX EDX,BYTE PTR DS:[EDX+5]            ; 取注册码第6个
00450102    03C2            ADD EAX,EDX                              ; 试验码第1和6相加
00450104    83F8 6D         CMP EAX,6D                               ; 和与6D比较
00450107    75 69           JNZ SHORT KeyGenMe.00450172              ; 不等就死
00450109    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
0045010C    0FB640 01       MOVZX EAX,BYTE PTR DS:[EAX+1]              取第2个
00450110    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
00450113    0FB652 06       MOVZX EDX,BYTE PTR DS:[EDX+6]            ; 取第7个
00450117    03C2            ADD EAX,EDX                              ; 第2与第7相加
00450119 >  83F8 67         CMP EAX,67
0045011C    75 54           JNZ SHORT KeyGenMe.00450172              ; 不等就死
0045011E    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
00450121    0FB640 02       MOVZX EAX,BYTE PTR DS:[EAX+2]            ; 取第3个
00450125    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
00450128    0FB652 07       MOVZX EDX,BYTE PTR DS:[EDX+7]            ; 取第8个
0045012C    03C2            ADD EAX,EDX                              ; 第2和第8相加
0045012E    83F8 69         CMP EAX,69                               ; 和与69
00450131    75 3F           JNZ SHORT KeyGenMe.00450172
00450133    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
00450136    0FB640 03       MOVZX EAX,BYTE PTR DS:[EAX+3]            ; 取第4
0045013A    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
0045013D    0FB652 08       MOVZX EDX,BYTE PTR DS:[EDX+8]            ; 取第9
00450141    03C2            ADD EAX,EDX
00450143    83F8 70         CMP EAX,70                               ; 与70比较
00450146    75 2A           JNZ SHORT KeyGenMe.00450172
00450148    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
0045014B    0FB640 04       MOVZX EAX,BYTE PTR DS:[EAX+4]            ; 取第5位
0045014F    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
00450152    0FB652 09       MOVZX EDX,BYTE PTR DS:[EDX+9]            ; 取第10位
00450156    F7EA            IMUL EDX                                 ; 第5位与第10位相乘
00450158    3D 8C0A0000     CMP EAX,0A8C                             ; 乘积与0A8C比较
0045015D    75 13           JNZ SHORT KeyGenMe.00450172
0045015F    6A 40           PUSH 40
00450161    68 98014500     PUSH KeyGenMe.00450198                   ; Congratulations
00450166    68 A8014500     PUSH KeyGenMe.004501A8                   ; Good job,man!
0045016B    6A 00           PUSH 0
0045016D    E8 2E63FBFF     CALL <JMP.&user32.MessageBoxA>
00450172    33C0            XOR EAX,EAX

算法总结:1,用户名不小于2,试验码必须为0~10的数字
         2,ord(edit2.text[1])+ord(edit2.text[6])=$6D
            ord(edit2.text[2])+ord(edit2.text[7])=$67
            ord(edit2.text[3])+ord(edit2.text[8])=$69
            ord(edit2.text[4])+ ord(edit2.text[9])=$70
             ord(edit2.text[5])* ord(edit2.text[10])=$0A8C

上一页 1 2 3 4 5 6 下一页

 
相关文章
一日一文章
 
一日一软件
一日一动画