飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 16007|回复: 36

一个可以给EXE文件加密码的工具

[复制链接]
  • TA的每日心情
    无聊
    2024-12-26 09:55
  • 签到天数: 88 天

    [LV.6]常住居民II

    发表于 2006-3-25 23:11:13 | 显示全部楼层 |阅读模式
    破解作者】 HBQJXHW[PYG]
    【使用工具】 OD、PEID
    【破解平台】 WIN2000-SP4
    【软件名称】 Exe Password
    【下载地址】 http://www.salfeld.com/prg/exepw04.exe
    【软件简介】 一个可以给EXE文件加密码的工具
    【软件大小】 1.59M
    【加壳方式】 无壳
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】
    1、首先用PEID检查,无壳(Borland Delphi 6.0 - 7.0)。
    2、运行软件,输入注册信息,NAME:HBQJXHW[PYG] 注册码:1234567890 输入完毕后,点击注册按钮。
    3、有错误提示窗口Sorry, wrong serial number.
    4、右键-->Ultra字符串参考-->查找ASCII-->Ctrl+F-->输入"Sorry, wrong serial number."-->双击来到:0055B3EF处!
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    0055B1D2   .  55            PUSH EBP
    0055B1D3   .  68 22B45500   PUSH ExePW.0055B422
    0055B1D8   .  64:FF30       PUSH DWORD PTR FS:[EAX]
    0055B1DB   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
    0055B1DE   .  E8 692F0000   CALL ExePW.0055E14C
    0055B1E3   .  84C0          TEST AL,AL
    0055B1E5   .  75 4E         JNZ SHORT ExePW.0055B235
    0055B1E7   .  E8 B048F1FF   CALL ExePW.0046FA9C
    0055B1EC   .  84C0          TEST AL,AL
    0055B1EE   .  75 45         JNZ SHORT ExePW.0055B235
    0055B1F0   .  833D D4275700>CMP DWORD PTR DS:[5727D4],0
    0055B1F7   .  75 15         JNZ SHORT ExePW.0055B20E
    0055B1F9   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000
    0055B1FB   .  66:8B0D 30B45>MOV CX,WORD PTR DS:[55B430]              ; |
    0055B202   .  33D2          XOR EDX,EDX                              ; |
    0055B204   .  B8 3CB45500   MOV EAX,ExePW.0055B43C                   ; |ASCII 44,"iese Funktion kann nur von einem Benutzer mit
    administrativen Rech"
    0055B209   .  E8 4AAAEDFF   CALL ExePW.00435C58                      ; \ExePW.00435C58
    0055B20E   >  833D D4275700>CMP DWORD PTR DS:[5727D4],1
    0055B215   .  0F85 EC010000 JNZ ExePW.0055B407
    0055B21B   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000
    0055B21D   .  66:8B0D 30B45>MOV CX,WORD PTR DS:[55B430]              ; |
    0055B224   .  33D2          XOR EDX,EDX                              ; |
    0055B226   .  B8 F0B45500   MOV EAX,ExePW.0055B4F0                   ; |this option can only be set by users with administrative\n\nrights. please login with an admin account and run\n\nthis function again.
    0055B22B   .  E8 28AAEDFF   CALL ExePW.00435C58                      ; \ExePW.00435C58
    0055B230   .  E9 D2010000   JMP ExePW.0055B407
    0055B235   >  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
    0055B238   .  8B83 6C030000 MOV EAX,DWORD PTR DS:[EBX+36C]
    0055B23E   .  E8 D910EFFF   CALL ExePW.0044C31C
    0055B243   .  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  name给EAX
    0055B246   .  E8 0993EAFF   CALL ExePW.00404554                      ;  计算NAME位数
    0055B24B   .  83F8 06       CMP EAX,6                                ;  判断NAME是否大于6位
    0055B24E   .  7F 4F         JG SHORT ExePW.0055B29F                  ;  如果小于6位,则提示输入6位以上。
    0055B250   .  833D D4275700>CMP DWORD PTR DS:[5727D4],0
    0055B257   .  75 15         JNZ SHORT ExePW.0055B26E
    0055B259   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000
    0055B25B   .  66:8B0D 30B45>MOV CX,WORD PTR DS:[55B430]              ; |
    0055B262   .  33D2          XOR EDX,EDX                              ; |
    0055B264   .  B8 7CB55500   MOV EAX,ExePW.0055B57C                   ; |geben sie mindestens einen 6-stelligen namen ein !
    0055B269   .  E8 EAA9EDFF   CALL ExePW.00435C58                      ; \ExePW.00435C58
    0055B26E   >  833D D4275700>CMP DWORD PTR DS:[5727D4],1
    0055B275   .  75 15         JNZ SHORT ExePW.0055B28C
    0055B277   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000
    0055B279   .  66:8B0D 30B45>MOV CX,WORD PTR DS:[55B430]              ; |
    0055B280   .  33D2          XOR EDX,EDX                              ; |
    0055B282   .  B8 B8B55500   MOV EAX,ExePW.0055B5B8                   ; |please enter a name with at least 6 characters!
    0055B287   .  E8 CCA9EDFF   CALL ExePW.00435C58                      ; \ExePW.00435C58
    0055B28C   >  8B83 6C030000 MOV EAX,DWORD PTR DS:[EBX+36C]
    0055B292   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
    0055B294   .  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
    0055B29A   .  E9 68010000   JMP ExePW.0055B407
    0055B29F   >  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
    0055B2A2   .  8B83 70030000 MOV EAX,DWORD PTR DS:[EBX+370]
    0055B2A8   .  E8 6F10EFFF   CALL ExePW.0044C31C                      ;  (初始 cpu 选择)
    0055B2AD   .  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    0055B2B0   .  50            PUSH EAX
    0055B2B1   .  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
    0055B2B4   .  8B83 6C030000 MOV EAX,DWORD PTR DS:[EBX+36C]
    0055B2BA   .  E8 5D10EFFF   CALL ExePW.0044C31C
    0055B2BF   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
    0055B2C2   .  5A            POP EDX
    0055B2C3   .  E8 CC370000   CALL ExePW.0055EA94                      ;  重要算法CALL,进入
    0055B2C8   .  84C0          TEST AL,AL
    0055B2CA   .  0F84 ED000000 JE ExePW.0055B3BD
    0055B2D0   .  33C0          XOR EAX,EAX
    0055B2D2   .  55            PUSH EBP
    0055B2D3   .  68 9FB35500   PUSH ExePW.0055B39F
    0055B2D8   .  64:FF30       PUSH DWORD PTR FS:[EAX]
    0055B2DB   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
    0055B2DE   .  B2 01         MOV DL,1
    0055B2E0   .  A1 A0B44300   MOV EAX,DWORD PTR DS:[43B4A0]
    0055B2E5   .  E8 B602EEFF   CALL ExePW.0043B5A0
    0055B2EA   .  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
    0055B2ED   .  BA 02000080   MOV EDX,80000002
    0055B2F2   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0055B2F5   .  E8 8203EEFF   CALL ExePW.0043B67C
    0055B2FA   .  B1 01         MOV CL,1
    0055B2FC   .  BA F0B55500   MOV EDX,ExePW.0055B5F0                   ;  software\salfeld\exelock
    0055B301   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0055B304   .  E8 DB03EEFF   CALL ExePW.0043B6E4
    0055B309   .  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
    0055B30C   .  8B83 6C030000 MOV EAX,DWORD PTR DS:[EBX+36C]
    0055B312   .  E8 0510EFFF   CALL ExePW.0044C31C
    0055B317   .  8B4D EC       MOV ECX,DWORD PTR SS:[EBP-14]
    0055B31A   .  BA 14B65500   MOV EDX,ExePW.0055B614                   ;  user
    0055B31F   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0055B322   .  E8 F108EEFF   CALL ExePW.0043BC18
    0055B327   .  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
    0055B32A   .  8B83 70030000 MOV EAX,DWORD PTR DS:[EBX+370]
    0055B330   .  E8 E70FEFFF   CALL ExePW.0044C31C
    0055B335   .  8B4D E8       MOV ECX,DWORD PTR SS:[EBP-18]
    0055B338   .  BA 24B65500   MOV EDX,ExePW.0055B624                   ;  id
    0055B33D   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0055B340   .  E8 D308EEFF   CALL ExePW.0043BC18
    0055B345   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0055B348   .  E8 B781EAFF   CALL ExePW.00403504
    0055B34D   .  833D D4275700>CMP DWORD PTR DS:[5727D4],0
    0055B354   .  75 15         JNZ SHORT ExePW.0055B36B
    0055B356   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000
    0055B358   .  66:8B0D 30B45>MOV CX,WORD PTR DS:[55B430]              ; |
    0055B35F   .  B2 02         MOV DL,2                                 ; |
    0055B361   .  B8 30B65500   MOV EAX,ExePW.0055B630                   ; |programm wurde erfolgreich in vollversion verwandelt.\nbitte programm neu starten.
    0055B366   .  E8 EDA8EDFF   CALL ExePW.00435C58                      ; \ExePW.00435C58
    0055B36B   >  833D D4275700>CMP DWORD PTR DS:[5727D4],1
    0055B372   .  75 15         JNZ SHORT ExePW.0055B389
    0055B374   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000
    0055B376   .  66:8B0D 30B45>MOV CX,WORD PTR DS:[55B430]              ; |
    0055B37D   .  B2 02         MOV DL,2                                 ; |
    0055B37F   .  B8 8CB65500   MOV EAX,ExePW.0055B68C                   ; |programm was successfully registered.\nplease restart this program now.
    0055B384   .  E8 CFA8EDFF   CALL ExePW.00435C58                      ; \ExePW.00435C58
    0055B389   >  A1 E4E75600   MOV EAX,DWORD PTR DS:[56E7E4]
    0055B38E   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
    0055B390   .  E8 4B0EF1FF   CALL ExePW.0046C1E0
    0055B395   .  33C0          XOR EAX,EAX
    0055B397   .  5A            POP EDX
    0055B398   .  59            POP ECX
    0055B399   .  59            POP ECX
    0055B39A   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
    0055B39D   .  EB 68         JMP SHORT ExePW.0055B407
    0055B39F   .^ E9 4086EAFF   JMP ExePW.004039E4
    0055B3A4   .  B8 DCB65500   MOV EAX,ExePW.0055B6DC                   ;  error writing licence information to registry.\nplease contact developer: [email protected]
    0055B3A9   .  E8 A2A9EDFF   CALL ExePW.00435D50
    0055B3AE   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0055B3B1   .  E8 4E81EAFF   CALL ExePW.00403504
    0055B3B6   .  E8 9189EAFF   CALL ExePW.00403D4C
    0055B3BB   .  EB 4A         JMP SHORT ExePW.0055B407
    0055B3BD   >  833D D4275700>CMP DWORD PTR DS:[5727D4],0
    0055B3C4   .  75 15         JNZ SHORT ExePW.0055B3DB
    0055B3C6   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000
    0055B3C8   .  66:8B0D 30B45>MOV CX,WORD PTR DS:[55B430]              ; |
    0055B3CF   .  33D2          XOR EDX,EDX                              ; |
    0055B3D1   .  B8 44B75500   MOV EAX,ExePW.0055B744                   ; |die eingegebene seriennummer ist falsch.
    0055B3D6   .  E8 7DA8EDFF   CALL ExePW.00435C58                      ; \ExePW.00435C58
    0055B3DB   >  833D D4275700>CMP DWORD PTR DS:[5727D4],1
    0055B3E2   .  75 15         JNZ SHORT ExePW.0055B3F9
    0055B3E4   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000
    0055B3E6   .  66:8B0D 30B45>MOV CX,WORD PTR DS:[55B430]              ; |
    0055B3ED   .  33D2          XOR EDX,EDX                              ; |
    0055B3EF   .  B8 78B75500   MOV EAX,ExePW.0055B778                   ; |sorry, wrong serial number.
    0055B3F4   .  E8 5FA8EDFF   CALL ExePW.00435C58                      ; \ExePW.00435C58
    0055B3F9   >  8B83 6C030000 MOV EAX,DWORD PTR DS:[EBX+36C]
    0055B3FF   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
    0055B401   .  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
    0055B407   >  33C0          XOR EAX,EAX


    +++++++++++++CALL ExePW.0055EA94++++++++++++++++++++++++++++++
    0055EA94  /$  55            PUSH EBP
    0055EA95  |.  8BEC          MOV EBP,ESP
    0055EA97  |.  B9 0F000000   MOV ECX,0F
    0055EA9C  |>  6A 00         /PUSH 0
    0055EA9E  |.  6A 00         |PUSH 0
    0055EAA0  |.  49            |DEC ECX
    0055EAA1  |.^ 75 F9         \JNZ SHORT ExePW.0055EA9C
    0055EAA3  |.  51            PUSH ECX
    0055EAA4  |.  53            PUSH EBX
    0055EAA5  |.  56            PUSH ESI
    0055EAA6  |.  57            PUSH EDI
    0055EAA7  |.  8955 F8       MOV DWORD PTR SS:[EBP-8],EDX             ;  试练码给 SS:[EBP-8]
    0055EAAA  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX             ;  NAME给 SS:[EBP-4]
    0055EAAD  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0055EAB0  |.  E8 8F5CEAFF   CALL ExePW.00404744
    0055EAB5  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  试练码给EAX
    0055EAB8  |.  E8 875CEAFF   CALL ExePW.00404744
    0055EABD  |.  33C0          XOR EAX,EAX
    0055EABF  |.  55            PUSH EBP
    0055EAC0  |.  68 9AEE5500   PUSH ExePW.0055EE9A
    0055EAC5  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    0055EAC8  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    0055EACB  |.  C645 F7 00    MOV BYTE PTR SS:[EBP-9],0
    0055EACF  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
    0055EAD2  |.  50            PUSH EAX
    0055EAD3  |.  B9 01000000   MOV ECX,1                                ;  常数1
    0055EAD8  |.  BA 04000000   MOV EDX,4                                ;  常数4
    0055EADD  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EAE0  |.  E8 CF5CEAFF   CALL ExePW.004047B4                      ;  取试练码第4个字符
    0055EAE5  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
    0055EAE8  |.  50            PUSH EAX
    0055EAE9  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EAEC  |.  E8 635AEAFF   CALL ExePW.00404554
    0055EAF1  |.  8BD0          MOV EDX,EAX
    0055EAF3  |.  B9 01000000   MOV ECX,1
    0055EAF8  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EAFB  |.  E8 B45CEAFF   CALL ExePW.004047B4                      ;  取试练码最后1个字符
    0055EB00  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    0055EB03  |.  50            PUSH EAX
    0055EB04  |.  B9 02000000   MOV ECX,2
    0055EB09  |.  BA 02000000   MOV EDX,2
    0055EB0E  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EB11  |.  E8 9E5CEAFF   CALL ExePW.004047B4                      ;  取试练码第2、3个字符
    0055EB16  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]            ;  试练码第4个字符的地址给EAX
    0055EB19  |.  BA B4EE5500   MOV EDX,ExePW.0055EEB4                   ;  常数5的地址给EDX
    0055EB1E  |.  E8 7D5BEAFF   CALL ExePW.004046A0                      ;  比较试练码第4个字符是否等于常数5
    0055EB23  |.  0F85 6A010000 JNZ ExePW.0055EC93
    0055EB29  |.  68 C0EE5500   PUSH ExePW.0055EEC0                      ;  常数0压入堆栈
    0055EB2E  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]               ;  试练码第2、3个字符压入堆栈
    0055EB31  |.  68 B4EE5500   PUSH ExePW.0055EEB4                      ;  常数5压入堆栈
    0055EB36  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    0055EB39  |.  BA 03000000   MOV EDX,3
    0055EB3E  |.  E8 D15AEAFF   CALL ExePW.00404614                      ;  压入堆栈的三个数重新组合成一个四位数为SN1
    0055EB43  |.  8D45 D0       LEA EAX,DWORD PTR SS:[EBP-30]
    0055EB46  |.  50            PUSH EAX
    0055EB47  |.  B9 01000000   MOV ECX,1
    0055EB4C  |.  BA 06000000   MOV EDX,6
    0055EB51  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EB54  |.  E8 5B5CEAFF   CALL ExePW.004047B4                      ;  取试练码第6个字符
    0055EB59  |.  8B45 D0       MOV EAX,DWORD PTR SS:[EBP-30]
    0055EB5C  |.  33DB          XOR EBX,EBX
    0055EB5E  |.  8A18          MOV BL,BYTE PTR DS:[EAX]
    0055EB60  |.  8D45 CC       LEA EAX,DWORD PTR SS:[EBP-34]
    0055EB63  |.  50            PUSH EAX
    0055EB64  |.  B9 01000000   MOV ECX,1
    0055EB69  |.  BA 07000000   MOV EDX,7
    0055EB6E  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EB71  |.  E8 3E5CEAFF   CALL ExePW.004047B4                      ;  取试练码第7个字符
    0055EB76  |.  8B45 CC       MOV EAX,DWORD PTR SS:[EBP-34]
    0055EB79  |.  0FB630        MOVZX ESI,BYTE PTR DS:[EAX]
    0055EB7C  |.  8D45 C8       LEA EAX,DWORD PTR SS:[EBP-38]
    0055EB7F  |.  50            PUSH EAX
    0055EB80  |.  B9 01000000   MOV ECX,1
    0055EB85  |.  BA 08000000   MOV EDX,8
    0055EB8A  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EB8D  |.  E8 225CEAFF   CALL ExePW.004047B4                      ;  取试练码第8个字符
    0055EB92  |.  8B45 C8       MOV EAX,DWORD PTR SS:[EBP-38]
    0055EB95  |.  0FB638        MOVZX EDI,BYTE PTR DS:[EAX]
    0055EB98  |.  8D45 C4       LEA EAX,DWORD PTR SS:[EBP-3C]
    0055EB9B  |.  50            PUSH EAX
    0055EB9C  |.  B9 01000000   MOV ECX,1
    0055EBA1  |.  BA 09000000   MOV EDX,9
    0055EBA6  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EBA9  |.  E8 065CEAFF   CALL ExePW.004047B4                      ;  取试练码第9个字符
    0055EBAE  |.  8B45 C4       MOV EAX,DWORD PTR SS:[EBP-3C]
    0055EBB1  |.  0FB600        MOVZX EAX,BYTE PTR DS:[EAX]
    0055EBB4  |.  8945 D4       MOV DWORD PTR SS:[EBP-2C],EAX
    0055EBB7  |.  FF75 E0       PUSH DWORD PTR SS:[EBP-20]
    0055EBBA  |.  68 CCEE5500   PUSH ExePW.0055EECC                      ;  在SN1后加上“-”
    0055EBBF  |.  8D45 C0       LEA EAX,DWORD PTR SS:[EBP-40]
    0055EBC2  |.  50            PUSH EAX
    0055EBC3  |.  B9 01000000   MOV ECX,1
    0055EBC8  |.  BA 06000000   MOV EDX,6
    0055EBCD  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EBD0  |.  E8 DF5BEAFF   CALL ExePW.004047B4                      ;  取试练码第6个字符
    0055EBD5  |.  FF75 C0       PUSH DWORD PTR SS:[EBP-40]
    0055EBD8  |.  8D45 BC       LEA EAX,DWORD PTR SS:[EBP-44]
    0055EBDB  |.  50            PUSH EAX
    0055EBDC  |.  B9 01000000   MOV ECX,1
    0055EBE1  |.  BA 07000000   MOV EDX,7
    0055EBE6  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EBE9  |.  E8 C65BEAFF   CALL ExePW.004047B4                      ;  取试练码第7个字符
    0055EBEE  |.  FF75 BC       PUSH DWORD PTR SS:[EBP-44]
    0055EBF1  |.  8D45 B8       LEA EAX,DWORD PTR SS:[EBP-48]
    0055EBF4  |.  50            PUSH EAX
    0055EBF5  |.  B9 01000000   MOV ECX,1
    0055EBFA  |.  BA 08000000   MOV EDX,8
    0055EBFF  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EC02  |.  E8 AD5BEAFF   CALL ExePW.004047B4                      ;  取试练码第8个字符
    0055EC07  |.  FF75 B8       PUSH DWORD PTR SS:[EBP-48]
    0055EC0A  |.  8D45 B4       LEA EAX,DWORD PTR SS:[EBP-4C]
    0055EC0D  |.  50            PUSH EAX
    0055EC0E  |.  B9 01000000   MOV ECX,1
    0055EC13  |.  BA 09000000   MOV EDX,9
    0055EC18  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EC1B  |.  E8 945BEAFF   CALL ExePW.004047B4                      ;  取试练码第9个字符
    0055EC20  |.  FF75 B4       PUSH DWORD PTR SS:[EBP-4C]
    0055EC23  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    0055EC26  |.  BA 06000000   MOV EDX,6
    0055EC2B  |.  E8 E459EAFF   CALL ExePW.00404614                      ;  把试练码第6、7、8、9个字符组成一个四位数记为SN2
    0055EC30  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]            ;  取试练码第2、3个字符组成的数给EAX
    0055EC33  |.  E8 5CA4EAFF   CALL ExePW.00409094                      ;  把试练码第2、3个字符组成的数转换为十六进数
    0055EC38  |.  03F3          ADD ESI,EBX                              ;  这里的几个ADD是把SN2各位的HEX码值相加再加上试练码第2、3个字符组成的数转换为十六进数
    0055EC3A  |.  03FE          ADD EDI,ESI
    0055EC3C  |.  037D D4       ADD EDI,DWORD PTR SS:[EBP-2C]
    0055EC3F  |.  03C7          ADD EAX,EDI
    0055EC41  |.  50            PUSH EAX                                 ;  最后计算的结果压入堆栈
    0055EC42  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]            ;  把试练码最后1个字符的地址给EAX记为SN4
    0055EC45  |.  E8 4AA4EAFF   CALL ExePW.00409094
    0055EC4A  |.  8D0480        LEA EAX,DWORD PTR DS:[EAX+EAX*4]         ;  试练码最后1个字符+取试练码最后1个字符*5给EAX
    0055EC4D  |.  5A            POP EDX
    0055EC4E  |.  03D0          ADD EDX,EAX                              ;  上面计算结果加上这次计算的结果给EDX并转换为十进制数记为SN3
    0055EC50  |.  8955 D8       MOV DWORD PTR SS:[EBP-28],EDX
    0055EC53  |.  FF75 E0       PUSH DWORD PTR SS:[EBP-20]
    0055EC56  |.  68 CCEE5500   PUSH ExePW.0055EECC                      ;  -
    0055EC5B  |.  8D55 B0       LEA EDX,DWORD PTR SS:[EBP-50]
    0055EC5E  |.  8B45 D8       MOV EAX,DWORD PTR SS:[EBP-28]
    0055EC61  |.  E8 F2A2EAFF   CALL ExePW.00408F58
    0055EC66  |.  FF75 B0       PUSH DWORD PTR SS:[EBP-50]
    0055EC69  |.  FF75 E8       PUSH DWORD PTR SS:[EBP-18]
    0055EC6C  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    0055EC6F  |.  BA 04000000   MOV EDX,4
    0055EC74  |.  E8 9B59EAFF   CALL ExePW.00404614
    0055EC79  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0055EC7C  |.  8B55 E0       MOV EDX,DWORD PTR SS:[EBP-20]            ;  SN1-SN2-SN3SN4
    0055EC7F  |.  E8 1C5AEAFF   CALL ExePW.004046A0                      ;  注册码比较
    0055EC84  |.  0F85 DB010000 JNZ ExePW.0055EE65
    0055EC8A  |.  C645 F7 01    MOV BYTE PTR SS:[EBP-9],1
    0055EC8E  |.  E9 D2010000   JMP ExePW.0055EE65
    上面是当注册码第四位等于5时计算,注册码与用户名无关系。

    下面是当注册码第四位等于6时计算,注册码与用户名有关系。
    0055EC93  |>  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]            ;  试练码第4个字符的地址给EAX
    0055EC96  |.  BA D8EE5500   MOV EDX,ExePW.0055EED8                   ;  常数6的地址给EDX
    0055EC9B  |.  E8 005AEAFF   CALL ExePW.004046A0                      ;  比较试练码第4个字符是否等于常数6
    0055ECA0  |.  0F85 BF010000 JNZ ExePW.0055EE65                       ;  如果试练码第4个字符不等于常数5、6则注册错误
    0055ECA6  |.  68 C0EE5500   PUSH ExePW.0055EEC0                      ;  0
    0055ECAB  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]
    0055ECAE  |.  68 D8EE5500   PUSH ExePW.0055EED8                      ;  6
    0055ECB3  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    0055ECB6  |.  BA 03000000   MOV EDX,3
    0055ECBB  |.  E8 5459EAFF   CALL ExePW.00404614
    0055ECC0  |.  8D45 AC       LEA EAX,DWORD PTR SS:[EBP-54]
    0055ECC3  |.  50            PUSH EAX
    0055ECC4  |.  8D55 A8       LEA EDX,DWORD PTR SS:[EBP-58]
    0055ECC7  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0055ECCA  |.  E8 D59CEAFF   CALL ExePW.004089A4
    0055ECCF  |.  8B45 A8       MOV EAX,DWORD PTR SS:[EBP-58]
    0055ECD2  |.  B9 01000000   MOV ECX,1
    0055ECD7  |.  BA 01000000   MOV EDX,1
    0055ECDC  |.  E8 D35AEAFF   CALL ExePW.004047B4
    0055ECE1  |.  8B45 AC       MOV EAX,DWORD PTR SS:[EBP-54]
    0055ECE4  |.  8A00          MOV AL,BYTE PTR DS:[EAX]
    0055ECE6  |.  33DB          XOR EBX,EBX
    0055ECE8  |.  8AD8          MOV BL,AL
    0055ECEA  |.  8D45 A4       LEA EAX,DWORD PTR SS:[EBP-5C]
    0055ECED  |.  50            PUSH EAX
    0055ECEE  |.  8D55 A0       LEA EDX,DWORD PTR SS:[EBP-60]
    0055ECF1  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0055ECF4  |.  E8 AB9CEAFF   CALL ExePW.004089A4
    0055ECF9  |.  8B45 A0       MOV EAX,DWORD PTR SS:[EBP-60]
    0055ECFC  |.  B9 01000000   MOV ECX,1
    0055ED01  |.  BA 03000000   MOV EDX,3
    0055ED06  |.  E8 A95AEAFF   CALL ExePW.004047B4
    0055ED0B  |.  8B45 A4       MOV EAX,DWORD PTR SS:[EBP-5C]
    0055ED0E  |.  8A00          MOV AL,BYTE PTR DS:[EAX]
    0055ED10  |.  8BF0          MOV ESI,EAX
    0055ED12  |.  81E6 FF000000 AND ESI,0FF
    0055ED18  |.  8D45 9C       LEA EAX,DWORD PTR SS:[EBP-64]
    0055ED1B  |.  50            PUSH EAX
    0055ED1C  |.  B9 01000000   MOV ECX,1
    0055ED21  |.  BA 01000000   MOV EDX,1
    0055ED26  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
    0055ED29  |.  E8 865AEAFF   CALL ExePW.004047B4
    0055ED2E  |.  8B45 9C       MOV EAX,DWORD PTR SS:[EBP-64]
    0055ED31  |.  E8 5EA3EAFF   CALL ExePW.00409094
    0055ED36  |.  8BF8          MOV EDI,EAX
    0055ED38  |.  8D45 98       LEA EAX,DWORD PTR SS:[EBP-68]
    0055ED3B  |.  50            PUSH EAX
    0055ED3C  |.  B9 01000000   MOV ECX,1
    0055ED41  |.  BA 02000000   MOV EDX,2
    0055ED46  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
    0055ED49  |.  E8 665AEAFF   CALL ExePW.004047B4
    0055ED4E  |.  8B45 98       MOV EAX,DWORD PTR SS:[EBP-68]
    0055ED51  |.  E8 3EA3EAFF   CALL ExePW.00409094
    0055ED56  |.  8945 DC       MOV DWORD PTR SS:[EBP-24],EAX
    0055ED59  |.  FF75 E0       PUSH DWORD PTR SS:[EBP-20]
    0055ED5C  |.  68 CCEE5500   PUSH ExePW.0055EECC                      ;  -
    0055ED61  |.  8D55 94       LEA EDX,DWORD PTR SS:[EBP-6C]
    0055ED64  |.  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]
    0055ED67  |.  03C3          ADD EAX,EBX
    0055ED69  |.  E8 EAA1EAFF   CALL ExePW.00408F58
    0055ED6E  |.  FF75 94       PUSH DWORD PTR SS:[EBP-6C]
    0055ED71  |.  8D55 90       LEA EDX,DWORD PTR SS:[EBP-70]
    0055ED74  |.  8D0437        LEA EAX,DWORD PTR DS:[EDI+ESI]
    0055ED77  |.  E8 DCA1EAFF   CALL ExePW.00408F58
    0055ED7C  |.  FF75 90       PUSH DWORD PTR SS:[EBP-70]
    0055ED7F  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    0055ED82  |.  BA 04000000   MOV EDX,4
    0055ED87  |.  E8 8858EAFF   CALL ExePW.00404614
    0055ED8C  |.  33C0          XOR EAX,EAX
    0055ED8E  |.  8945 D8       MOV DWORD PTR SS:[EBP-28],EAX
    0055ED91  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0055ED94  |.  E8 BB57EAFF   CALL ExePW.00404554
    0055ED99  |.  8BF0          MOV ESI,EAX
    0055ED9B  |.  85F6          TEST ESI,ESI
    0055ED9D  |.  7E 2A         JLE SHORT ExePW.0055EDC9
    0055ED9F  |.  BF 01000000   MOV EDI,1
    0055EDA4  |>  8D45 8C       /LEA EAX,DWORD PTR SS:[EBP-74]
    0055EDA7  |.  50            |PUSH EAX
    0055EDA8  |.  B9 01000000   |MOV ECX,1
    0055EDAD  |.  8BD7          |MOV EDX,EDI
    0055EDAF  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]
    0055EDB2  |.  E8 FD59EAFF   |CALL ExePW.004047B4
    0055EDB7  |.  8B45 8C       |MOV EAX,DWORD PTR SS:[EBP-74]
    0055EDBA  |.  8A18          |MOV BL,BYTE PTR DS:[EAX]
    0055EDBC  |.  33C0          |XOR EAX,EAX
    0055EDBE  |.  8AC3          |MOV AL,BL
    0055EDC0  |.  8BD8          |MOV EBX,EAX
    0055EDC2  |.  015D D8       |ADD DWORD PTR SS:[EBP-28],EBX
    0055EDC5  |.  47            |INC EDI
    0055EDC6  |.  4E            |DEC ESI
    0055EDC7  |.^ 75 DB         \JNZ SHORT ExePW.0055EDA4
    0055EDC9  |>  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
    0055EDCC  |.  E8 C3A2EAFF   CALL ExePW.00409094
    0055EDD1  |.  8BD8          MOV EBX,EAX
    0055EDD3  |.  8B75 D8       MOV ESI,DWORD PTR SS:[EBP-28]
    0055EDD6  |.  03F3          ADD ESI,EBX
    0055EDD8  |.  8D45 88       LEA EAX,DWORD PTR SS:[EBP-78]
    0055EDDB  |.  50            PUSH EAX
    0055EDDC  |.  B9 01000000   MOV ECX,1
    0055EDE1  |.  BA 01000000   MOV EDX,1
    0055EDE6  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
    0055EDE9  |.  E8 C659EAFF   CALL ExePW.004047B4
    0055EDEE  |.  8B45 88       MOV EAX,DWORD PTR SS:[EBP-78]
    0055EDF1  |.  8A18          MOV BL,BYTE PTR DS:[EAX]
    0055EDF3  |.  8D45 84       LEA EAX,DWORD PTR SS:[EBP-7C]
    0055EDF6  |.  8BD3          MOV EDX,EBX
    0055EDF8  |.  E8 7F56EAFF   CALL ExePW.0040447C
    0055EDFD  |.  8B45 84       MOV EAX,DWORD PTR SS:[EBP-7C]
    0055EE00  |.  E8 8FA2EAFF   CALL ExePW.00409094
    0055EE05  |.  8BD8          MOV EBX,EAX
    0055EE07  |.  8D049B        LEA EAX,DWORD PTR DS:[EBX+EBX*4]
    0055EE0A  |.  03F0          ADD ESI,EAX
    0055EE0C  |.  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
    0055EE0F  |.  8BC6          MOV EAX,ESI
    0055EE11  |.  E8 42A1EAFF   CALL ExePW.00408F58
    0055EE16  |.  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
    0055EE19  |.  E8 3657EAFF   CALL ExePW.00404554
    0055EE1E  |.  83F8 04       CMP EAX,4
    0055EE21  |.  7C 16         JL SHORT ExePW.0055EE39
    0055EE23  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
    0055EE26  |.  50            PUSH EAX
    0055EE27  |.  B9 03000000   MOV ECX,3
    0055EE2C  |.  BA 02000000   MOV EDX,2
    0055EE31  |.  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
    0055EE34  |.  E8 7B59EAFF   CALL ExePW.004047B4
    0055EE39  |>  FF75 E0       PUSH DWORD PTR SS:[EBP-20]
    0055EE3C  |.  68 CCEE5500   PUSH ExePW.0055EECC                      ;  -
    0055EE41  |.  FF75 E4       PUSH DWORD PTR SS:[EBP-1C]
    0055EE44  |.  FF75 E8       PUSH DWORD PTR SS:[EBP-18]
    0055EE47  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    0055EE4A  |.  BA 04000000   MOV EDX,4
    0055EE4F  |.  E8 C057EAFF   CALL ExePW.00404614
    0055EE54  |.  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]
    0055EE57  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
    0055EE5A  |.  E8 4158EAFF   CALL ExePW.004046A0
    0055EE5F  |.  75 04         JNZ SHORT ExePW.0055EE65
    0055EE61  |.  C645 F7 01    MOV BYTE PTR SS:[EBP-9],1
    0055EE65  |>  33C0          XOR EAX,EAX
    0055EE67  |.  5A            POP EDX
    0055EE68  |.  59            POP ECX
    0055EE69  |.  59            POP ECX
    0055EE6A  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
    0055EE6D  |.  68 A1EE5500   PUSH ExePW.0055EEA1
    0055EE72  |>  8D45 84       LEA EAX,DWORD PTR SS:[EBP-7C]
    0055EE75  |.  BA 14000000   MOV EDX,14
    0055EE7A  |.  E8 3954EAFF   CALL ExePW.004042B8
    0055EE7F  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
    0055EE82  |.  BA 05000000   MOV EDX,5
    0055EE87  |.  E8 2C54EAFF   CALL ExePW.004042B8
    0055EE8C  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    0055EE8F  |.  BA 02000000   MOV EDX,2
    0055EE94  |.  E8 1F54EAFF   CALL ExePW.004042B8
    0055EE99  \.  C3            RETN
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


    如果注册码第四位等于5,计算注册码与用户名无关系。

    第1位数:    0
    第2-3位数:  任意两位数00-99
    第4位数:    5
    第5位数:    -
    第6-9位数:  任意四位数0000-9999
    第10位数:   -
    第11-13位数:把前面的任意四位数各位HEX值相加+前面的任意两位的十六进制数+后面的最后任意一位数*0x5之后转换为十进制数。
    第14位数:   任意一位数0-9
    ---------------------------------------
    如果注册码第四位等于6,计算注册码与用户名有关系。
    第1位数:    0
    第2-3位数:  任意两位数00-99
    第4位数:    6
    第5位数:    -
    第6-7位数:  取用户名的第一位大字母的HEX值+前面的任意两位的第二位数
    第8-9位数:  取用户名的第三位大字母的HEX值+前面的任意两位的第一位数
    第10位数:   -
    第11-13位数:把用户名各位HEX值相加+前面的任意两位的为十六进制数+后面的最后任意一位数*0x5之后转换为十进制数,只取后面三位数。
    第14位数:   任意一位数0-9


    1. #include <stdlib.h>
    2. #include <stdio.h>
    3. #include <time.h>
    4. #include <ctype.h>
    5. int main(void)
    6. {static int i,x,y,z;
    7. static char num1[15];
    8. static int num2[2];
    9. static int num3[4];
    10. static int num4[1];
    11.    time_t t;
    12.    srand((unsigned) time(&t));
    13.    printf("Please enter a name with at least 6 characters!");
    14.    scanf("%s",num1);
    15.        printf ("\n\n\n    Serial =     0");
    16.    for(i=0; i<2; i++)
    17.       {num2[i]=rand() % 10;
    18.        printf("%d",num2[i]);
    19.        }
    20.        x=num2[0]*10;
    21.        x+=num2[1];
    22.        printf("5-");
    23.        for(i=0; i<4; i++)
    24.             {num3[i]=rand() % 10;
    25.              printf("%d",num3[i]);
    26.              y+=num3[i]+48;
    27.              }
    28.              printf("-");
    29.              num4[0]=rand() % 10;
    30.              z=(x+y+num4[0]*5)%1000;
    31.              printf("%d",z);
    32.              printf("%d",num4[0]);
    33. printf ("\n\n\n\n    Serial =     0");
    34.    for(i=0; i<2; i++)
    35.       {num2[i]=rand() % 10;
    36.        printf("%d",num2[i]);
    37.        }
    38.        x=num2[0]*10;
    39.        x+=num2[1];
    40.        printf("6-");
    41.        printf("%d",toupper(num1[0])+num2[1]);
    42.        printf("%d",toupper(num1[2])+num2[0]);
    43.              printf("-");
    44.              num4[0]=rand() % 10;
    45.              y=0;
    46.              for(i=0;i<strlen(num1);i++)
    47.                  y+=num1[i];
    48.                  z=(x+y+num4[0]*5);
    49.                  printf("%d",z%1000/100);
    50.                  printf("%d",z%100/10);
    51.                  printf("%d",z%10);
    52.                  printf("%d",num4[0]);
    53.   getch();
    54.   return 0;
    55. }
    复制代码



    注册信息保存在注册表中:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Salfeld\ExeLock]
    "RunOnly"=dword:00000000
    "Backup"=dword:00000000
    "Context"=dword:00000001
    "RunOnlyUser"="HBQJXHW[PYG]"
    "BackupDir"=""
    "PasswordPrompt"="Please enter password"
    "RegUser"=""
    "RegSerial"=""
    "User"="HBQJXHW[PYG]"
    "ID"="0525-0580-2621"或者"0866-7889-0602"
    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-3-26 00:59:20 | 显示全部楼层
    支持。
    虽然看不懂!!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2025-1-14 15:35
  • 签到天数: 1637 天

    [LV.Master]伴坛终老

    发表于 2006-3-28 11:19:41 | 显示全部楼层
    支持。支持。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-4-29 19:47:44 | 显示全部楼层
    支持一下。
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2015-8-20 02:55
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-10-6 21:22:04 | 显示全部楼层
    真够牛的啊,!很少一部分看得懂!/:011
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-10-7 12:22:31 | 显示全部楼层
    看的懂一部分呵呵/:014
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-10-15 12:26:47 | 显示全部楼层
    写的好啊,详细明了,感谢,十分的感谢。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-10-17 17:28:58 | 显示全部楼层
    看得不是很明白,不过还是谢谢了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-10-18 13:34:59 | 显示全部楼层
    看不懂  支持一下
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-25 23:59:13 | 显示全部楼层
    写得很好  后面这些是VC代码吗
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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