- UID
- 3725
注册时间2005-10-14
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 无聊 2024-12-26 09:55 |
---|
签到天数: 88 天 [LV.6]常住居民II
|
【破解作者】 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
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h>
- #include <ctype.h>
- int main(void)
- {static int i,x,y,z;
- static char num1[15];
- static int num2[2];
- static int num3[4];
- static int num4[1];
- time_t t;
- srand((unsigned) time(&t));
- printf("Please enter a name with at least 6 characters!");
- scanf("%s",num1);
- printf ("\n\n\n Serial = 0");
- for(i=0; i<2; i++)
- {num2[i]=rand() % 10;
- printf("%d",num2[i]);
- }
- x=num2[0]*10;
- x+=num2[1];
- printf("5-");
- for(i=0; i<4; i++)
- {num3[i]=rand() % 10;
- printf("%d",num3[i]);
- y+=num3[i]+48;
- }
- printf("-");
- num4[0]=rand() % 10;
- z=(x+y+num4[0]*5)%1000;
- printf("%d",z);
- printf("%d",num4[0]);
- printf ("\n\n\n\n Serial = 0");
- for(i=0; i<2; i++)
- {num2[i]=rand() % 10;
- printf("%d",num2[i]);
- }
- x=num2[0]*10;
- x+=num2[1];
- printf("6-");
- printf("%d",toupper(num1[0])+num2[1]);
- printf("%d",toupper(num1[2])+num2[0]);
- printf("-");
- num4[0]=rand() % 10;
- y=0;
- for(i=0;i<strlen(num1);i++)
- y+=num1[i];
- z=(x+y+num4[0]*5);
- printf("%d",z%1000/100);
- printf("%d",z%100/10);
- printf("%d",z%10);
- printf("%d",num4[0]);
- getch();
- return 0;
- }
复制代码
注册信息保存在注册表中:
[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"
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! |
|