tianxj 发表于 2008-4-17 21:49:25

Easy File & Folder Protector 4.82算法分析

【破文作者】tianxj
【作者邮箱】[email protected]
【作者主页】www.chinapyg.com
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】Easy File & Folder Protector 4.82(2008-4-1版)
【软件大小】746KB
【软件语言】英文
【原版下载】自己找一下
【保护方式】注册码
【软件简介】
一个非常Easy的文件和文件夹保护程序.只要你给Easy File & Folder Protector设置一个密码, 你就可以保护你的任何文件和文件夹,没有这个密码任何人都无法访问经过Easy File & Folder Protector 保护的文件和文件夹.对文件夹进行保护时文件夹进行了隐藏,这样就显得更
安全.此外,它还可防止别人通过网络访问你的文件.如果你要保护自己的隐私,你就要试试Easy File & Folder Protector了.使用方法: 启动保护: "添加文件或文件夹"--->"启动"按钮--->"应用"按钮 解除保护: "点选文件列表中的文件或文件夹"--->"解除"按钮
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
"registration key is not valid"
**************************************************************
二、用PEiD对这个软件查壳,为 Borland Delphi 6.0 - 7.0
**************************************************************
三、用PE Explorer和DeDe查找按钮事件
004A2284/.55            PUSH EBP
**************************************************************
四、运行OD,打开EFPP,输入错误的注册信息004A2284/.55            PUSH EBP
004A2285|.8BEC          MOV EBP,ESP
004A2287|.6A 00         PUSH 0
004A2289|.6A 00         PUSH 0
004A228B|.53            PUSH EBX
004A228C|.8BD8          MOV EBX,EAX
004A228E|.33C0          XOR EAX,EAX
004A2290|.55            PUSH EBP
004A2291|.68 07234A00   PUSH EFPP.004A2307
004A2296|.64:FF30       PUSH DWORD PTR FS:
004A2299|.64:8920       MOV DWORD PTR FS:,ESP
004A229C|.8D55 F8       LEA EDX,DWORD PTR SS:
004A229F|.8B83 20030000 MOV EAX,DWORD PTR DS:
004A22A5|.E8 6E14FCFF   CALL EFPP.00463718
004A22AA|.8B45 F8       MOV EAX,DWORD PTR SS:             ;//EAX==试练码
004A22AD|.8D55 FC       LEA EDX,DWORD PTR SS:
004A22B0|.E8 4337FEFF   CALL EFPP.004859F8
004A22B5|.837D FC 00    CMP DWORD PTR SS:,0
004A22B9|.75 0D         JNZ SHORT EFPP.004A22C8                  ;//试练码不为空则跳
004A22BB|.8D45 FC       LEA EAX,DWORD PTR SS:
004A22BE|.BA 1C234A00   MOV EDX,EFPP.004A231C                  ;err
004A22C3|.E8 B024F6FF   CALL EFPP.00404778
004A22C8|>8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==试练码
004A22CB|.E8 B0FEFFFF   CALL EFPP.004A2180                     ;//关键CALL
004A22D0|.84C0          TEST AL,AL
004A22D2|.74 07         JE SHORT EFPP.004A22DB                   ;//关键跳转
004A22D4|.8BC3          MOV EAX,EBX
004A22D6|.E8 F1E3FDFF   CALL EFPP.004806CC
004A22DB|>8B83 20030000 MOV EAX,DWORD PTR DS:
004A22E1|.8B10          MOV EDX,DWORD PTR DS:
004A22E3|.FF92 C4000000 CALL DWORD PTR DS:
004A22E9|.33C0          XOR EAX,EAX
004A22EB|.5A            POP EDX
004A22EC|.59            POP ECX
004A22ED|.59            POP ECX
004A22EE|.64:8910       MOV DWORD PTR FS:,EDX
004A22F1|.68 0E234A00   PUSH EFPP.004A230E
004A22F6|>8D45 F8       LEA EAX,DWORD PTR SS:
004A22F9|.E8 E223F6FF   CALL EFPP.004046E0
004A22FE|.8D45 FC       LEA EAX,DWORD PTR SS:
004A2301|.E8 DA23F6FF   CALL EFPP.004046E0
004A2306\.C3            RETN
004A2307   .^ E9 B01DF6FF   JMP EFPP.004040BC
004A230C   .^ EB E8         JMP SHORT EFPP.004A22F6
004A230E   .5B            POP EBX
004A230F   .59            POP ECX
004A2310   .59            POP ECX
004A2311   .5D            POP EBP
004A2312   .C3            RETN
==============================================================
004A2180/$55            PUSH EBP
004A2181|.8BEC          MOV EBP,ESP
004A2183|.83C4 F8       ADD ESP,-8
004A2186|.53            PUSH EBX
004A2187|.33D2          XOR EDX,EDX
004A2189|.8955 F8       MOV DWORD PTR SS:,EDX
004A218C|.8945 FC       MOV DWORD PTR SS:,EAX
004A218F|.8B45 FC       MOV EAX,DWORD PTR SS:
004A2192|.E8 F929F6FF   CALL EFPP.00404B90
004A2197|.33C0          XOR EAX,EAX
004A2199|.55            PUSH EBP
004A219A|.68 28224A00   PUSH EFPP.004A2228
004A219F|.64:FF30       PUSH DWORD PTR FS:
004A21A2|.64:8920       MOV DWORD PTR FS:,ESP
004A21A5|.33DB          XOR EBX,EBX
004A21A7|.8D55 F8       LEA EDX,DWORD PTR SS:
004A21AA|.8B45 FC       MOV EAX,DWORD PTR SS:
004A21AD|.E8 866BFEFF   CALL EFPP.00488D38
004A21B2|.8B55 F8       MOV EDX,DWORD PTR SS:
004A21B5|.8D45 FC       LEA EAX,DWORD PTR SS:
004A21B8|.E8 BB25F6FF   CALL EFPP.00404778
004A21BD|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==试练码
004A21C0|.E8 BF5FFFFF   CALL EFPP.00498184                     ;//关键CALL
004A21C5|.84C0          TEST AL,AL
004A21C7|.74 21         JE SHORT EFPP.004A21EA                   ;//关键跳转
004A21C9|.8B45 FC       MOV EAX,DWORD PTR SS:
004A21CC|.E8 FF84FFFF   CALL EFPP.0049A6D0
004A21D1|.6A 00         PUSH 0                                 ; /Arg1 = 00000000
004A21D3|.66:8B0D 38224>MOV CX,WORD PTR DS:            ; |
004A21DA|.B2 02         MOV DL,2                                 ; |
004A21DC|.B8 44224A00   MOV EAX,EFPP.004A2244                  ; |registration key is ok
004A21E1|.E8 9E05F9FF   CALL EFPP.00432784                     ; \EFPP.00432784
004A21E6|.B3 01         MOV BL,1
004A21E8|.EB 23         JMP SHORT EFPP.004A220D
004A21EA|>6A 00         PUSH 0                                 ; /Arg1 = 00000000
004A21EC|.66:8B0D 38224>MOV CX,WORD PTR DS:            ; |
004A21F3|.B2 01         MOV DL,1                                 ; |
004A21F5|.B8 64224A00   MOV EAX,EFPP.004A2264                  ; |registration key is not valid
004A21FA|.E8 8505F9FF   CALL EFPP.00432784                     ; \EFPP.00432784
004A21FF|.A1 B0534A00   MOV EAX,DWORD PTR DS:
004A2204|.8B00          MOV EAX,DWORD PTR DS:
004A2206|.C680 C5040000>MOV BYTE PTR DS:,1
004A220D|>33C0          XOR EAX,EAX
004A220F|.5A            POP EDX
004A2210|.59            POP ECX
004A2211|.59            POP ECX
004A2212|.64:8910       MOV DWORD PTR FS:,EDX
004A2215|.68 2F224A00   PUSH EFPP.004A222F
004A221A|>8D45 F8       LEA EAX,DWORD PTR SS:
004A221D|.BA 02000000   MOV EDX,2
004A2222|.E8 DD24F6FF   CALL EFPP.00404704
004A2227\.C3            RETN
004A2228   .^ E9 8F1EF6FF   JMP EFPP.004040BC
004A222D   .^ EB EB         JMP SHORT EFPP.004A221A
004A222F   .8BC3          MOV EAX,EBX
004A2231   .5B            POP EBX
004A2232   .59            POP ECX
004A2233   .59            POP ECX
004A2234   .5D            POP EBP
004A2235   .C3            RETN
==============================================================
00498184/$55            PUSH EBP
00498185|.8BEC          MOV EBP,ESP
00498187|.33C9          XOR ECX,ECX
00498189|.51            PUSH ECX
0049818A|.51            PUSH ECX
0049818B|.51            PUSH ECX
0049818C|.51            PUSH ECX
0049818D|.51            PUSH ECX
0049818E|.51            PUSH ECX
0049818F|.51            PUSH ECX
00498190|.53            PUSH EBX
00498191|.56            PUSH ESI
00498192|.57            PUSH EDI
00498193|.8945 FC       MOV DWORD PTR SS:,EAX
00498196|.8B45 FC       MOV EAX,DWORD PTR SS:
00498199|.E8 F2C9F6FF   CALL EFPP.00404B90
0049819E|.33C0          XOR EAX,EAX
004981A0|.55            PUSH EBP
004981A1|.68 C8824900   PUSH EFPP.004982C8
004981A6|.64:FF30       PUSH DWORD PTR FS:
004981A9|.64:8920       MOV DWORD PTR FS:,ESP
004981AC|.33DB          XOR EBX,EBX
004981AE|.8D55 EC       LEA EDX,DWORD PTR SS:
004981B1|.8B45 FC       MOV EAX,DWORD PTR SS:
004981B4|.E8 7F0BFFFF   CALL EFPP.00488D38
004981B9|.8B55 EC       MOV EDX,DWORD PTR SS:
004981BC|.8D45 FC       LEA EAX,DWORD PTR SS:
004981BF|.E8 B4C5F6FF   CALL EFPP.00404778
004981C4|.8B45 FC       MOV EAX,DWORD PTR SS:
004981C7|.E8 D4C7F6FF   CALL EFPP.004049A0
004981CC|.83F8 10       CMP EAX,10
004981CF|.0F85 D0000000 JNZ EFPP.004982A5                        ;//注册码长度必须为16位
004981D5|.E8 86F6FFFF   CALL EFPP.00497860
004981DA|.8D45 E8       LEA EAX,DWORD PTR SS:
004981DD|.50            PUSH EAX
004981DE|.B9 08000000   MOV ECX,8
004981E3|.BA 01000000   MOV EDX,1
004981E8|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==试练码
004981EB|.E8 10CAF6FF   CALL EFPP.00404C00
004981F0|.8B4D E8       MOV ECX,DWORD PTR SS:            ;//ECX==试练码前8位
004981F3|.8D45 F4       LEA EAX,DWORD PTR SS:
004981F6|.BA E0824900   MOV EDX,EFPP.004982E0                  ;$
004981FB|.E8 ECC7F6FF   CALL EFPP.004049EC
00498200|.8D45 E4       LEA EAX,DWORD PTR SS:
00498203|.50            PUSH EAX
00498204|.B9 08000000   MOV ECX,8
00498209|.BA 09000000   MOV EDX,9
0049820E|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==试练码
00498211|.E8 EAC9F6FF   CALL EFPP.00404C00
00498216|.8B4D E4       MOV ECX,DWORD PTR SS:            ;//ECX==试练码后8位
00498219|.8D45 F0       LEA EAX,DWORD PTR SS:
0049821C|.BA E0824900   MOV EDX,EFPP.004982E0                  ;$
00498221|.E8 C6C7F6FF   CALL EFPP.004049EC
00498226|.8D55 F8       LEA EDX,DWORD PTR SS:
00498229|.8B45 F4       MOV EAX,DWORD PTR SS:             ;//EAX==试练码前8位
0049822C|.E8 BBB0F6FF   CALL EFPP.004032EC
00498231|.837D F8 00    CMP DWORD PTR SS:,0
00498235|.75 6E         JNZ SHORT EFPP.004982A5                  ;//前8位必须在0~9、A~F、a~f
00498237|.8D55 F8       LEA EDX,DWORD PTR SS:
0049823A|.8B45 F0       MOV EAX,DWORD PTR SS:            ;//EAX==试练码后8位
0049823D|.E8 AAB0F6FF   CALL EFPP.004032EC
00498242|.837D F8 00    CMP DWORD PTR SS:,0
00498246|.75 5D         JNZ SHORT EFPP.004982A5                  ;//后8位必须在在0~9、A~F、a~f
00498248|.BE 01000000   MOV ESI,1                              ;//ESI=1
0049824D|>33C0          /XOR EAX,EAX                           ;//EAX=0
0049824F|.8945 F8       |MOV DWORD PTR SS:,EAX
00498252|.8B45 FC       |MOV EAX,DWORD PTR SS:            ;//EAX==试练码
00498255|.E8 46C7F6FF   |CALL EFPP.004049A0                      ;//取试练码长度
0049825A|.85C0          |TEST EAX,EAX
0049825C|.7E 1E         |JLE SHORT EFPP.0049827C               ;//若小于等于则跳
0049825E|.BA 01000000   |MOV EDX,1                               ;//EDX=1
00498263|>B9 EC824900   |/MOV ECX,EFPP.004982EC
00498268|.8A4C31 FF   ||MOV CL,BYTE PTR DS:         ;//依次将0~F送入CL
0049826C|.8B7D FC       ||MOV EDI,DWORD PTR SS:         ;//EAX==试练码
0049826F|.3A4C17 FF   ||CMP CL,BYTE PTR DS:         ;//依次与试练码比较
00498273|.75 03         ||JNZ SHORT EFPP.00498278                ;//若不相等则跳
00498275|.FF45 F8       ||INC DWORD PTR SS:               ;//计数
00498278|>42            ||INC EDX                              ;//EDX=EDX+1
00498279|.48            ||DEC EAX                              ;//EAX=EAX-1
0049827A|.^ 75 E7         |\JNZ SHORT EFPP.00498263                ;//循环,测试某数字在试炼码中出现的次数
0049827C|>837D F8 05    |CMP DWORD PTR SS:,5            ;//与5比较
00498280|.7E 09         |JLE SHORT EFPP.0049828B               ;//若同一数字在试炼码中出现次数小于等于5则跳
00498282|.C745 F8 FFFFF>|MOV DWORD PTR SS:,-1             ;//=-1
00498289|.EB 06         |JMP SHORT EFPP.00498291               ;//跳出循环
0049828B|>46            |INC ESI                                 ;//ESI=ESI+1
0049828C|.83FE 11       |CMP ESI,11                              ;//ESI与11比较
0049828F|.^ 75 BC         \JNZ SHORT EFPP.0049824D               ;//循环
00498291|>837D F8 00    CMP DWORD PTR SS:,0               ;//与0比较
00498295|.7C 0E         JL SHORT EFPP.004982A5                   ;//若小于则跳
00498297|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==试练码
0049829A|.E8 19FDFFFF   CALL EFPP.00497FB8                     ;//关键CALL
0049829F|.84C0          TEST AL,AL                               ;//标志位比较
004982A1|.74 02         JE SHORT EFPP.004982A5                   ;//关键跳转
004982A3|.B3 01         MOV BL,1
004982A5|>33C0          XOR EAX,EAX
004982A7|.5A            POP EDX
004982A8|.59            POP ECX
004982A9|.59            POP ECX
004982AA|.64:8910       MOV DWORD PTR FS:,EDX
004982AD|.68 CF824900   PUSH EFPP.004982CF
004982B2|>8D45 E4       LEA EAX,DWORD PTR SS:
004982B5|.BA 05000000   MOV EDX,5
004982BA|.E8 45C4F6FF   CALL EFPP.00404704
004982BF|.8D45 FC       LEA EAX,DWORD PTR SS:
004982C2|.E8 19C4F6FF   CALL EFPP.004046E0
004982C7\.C3            RETN
004982C8   .^ E9 EFBDF6FF   JMP EFPP.004040BC
004982CD   .^ EB E3         JMP SHORT EFPP.004982B2
004982CF   .8BC3          MOV EAX,EBX
004982D1   .5F            POP EDI
004982D2   .5E            POP ESI
004982D3   .5B            POP EBX
004982D4   .8BE5          MOV ESP,EBP
004982D6   .5D            POP EBP
004982D7   .C3            RETN
==============================================================
00497FB8/$55            PUSH EBP
00497FB9|.8BEC          MOV EBP,ESP
00497FBB|.B9 08000000   MOV ECX,8
00497FC0|>6A 00         /PUSH 0
00497FC2|.6A 00         |PUSH 0
00497FC4|.49            |DEC ECX
00497FC5|.^ 75 F9         \JNZ SHORT EFPP.00497FC0
00497FC7|.53            PUSH EBX
00497FC8|.56            PUSH ESI
00497FC9|.57            PUSH EDI
00497FCA|.8BF0          MOV ESI,EAX                              ;//ESI=EAX=试练码
00497FCC|.33C0          XOR EAX,EAX                              ;//EAX=0
00497FCE|.55            PUSH EBP
00497FCF|.68 73814900   PUSH EFPP.00498173
00497FD4|.64:FF30       PUSH DWORD PTR FS:
00497FD7|.64:8920       MOV DWORD PTR FS:,ESP
00497FDA|.33DB          XOR EBX,EBX
00497FDC|.8D45 FC       LEA EAX,DWORD PTR SS:
00497FDF|.8A16          MOV DL,BYTE PTR DS:               ;//试练码第1位ASC值
00497FE1|.E8 E2C8F6FF   CALL EFPP.004048C8
00497FE6|.8B45 FC       MOV EAX,DWORD PTR SS:
00497FE9|.E8 4AFFFFFF   CALL EFPP.00497F38
00497FEE|.8BF8          MOV EDI,EAX
00497FF0|.8D45 F8       LEA EAX,DWORD PTR SS:
00497FF3|.8A56 01       MOV DL,BYTE PTR DS:               ;//试练码第2位ASC值
00497FF6|.E8 CDC8F6FF   CALL EFPP.004048C8
00497FFB|.8B45 F8       MOV EAX,DWORD PTR SS:
00497FFE|.E8 35FFFFFF   CALL EFPP.00497F38
00498003|.03F8          ADD EDI,EAX
00498005|.8D45 F4       LEA EAX,DWORD PTR SS:
00498008|.8A56 02       MOV DL,BYTE PTR DS:               ;//试练码第3位ASC值
0049800B|.E8 B8C8F6FF   CALL EFPP.004048C8
00498010|.8B45 F4       MOV EAX,DWORD PTR SS:
00498013|.E8 20FFFFFF   CALL EFPP.00497F38
00498018|.03F8          ADD EDI,EAX
0049801A|.8D45 F0       LEA EAX,DWORD PTR SS:
0049801D|.8A56 03       MOV DL,BYTE PTR DS:               ;//试练码第4位ASC值
00498020|.E8 A3C8F6FF   CALL EFPP.004048C8
00498025|.8B45 F0       MOV EAX,DWORD PTR SS:
00498028|.E8 0BFFFFFF   CALL EFPP.00497F38
0049802D|.03F8          ADD EDI,EAX
0049802F|.A1 A4564A00   MOV EAX,DWORD PTR DS:
00498034|.3B38          CMP EDI,DWORD PTR DS:               ;//4个试练码值右移2位后的和等于8
00498036|.0F85 1C010000 JNZ EFPP.00498158
0049803C|.8D45 EC       LEA EAX,DWORD PTR SS:
0049803F|.8A56 04       MOV DL,BYTE PTR DS:               ;//试练码第5位ASC值
00498042|.E8 81C8F6FF   CALL EFPP.004048C8
00498047|.8B45 EC       MOV EAX,DWORD PTR SS:
0049804A|.E8 E9FEFFFF   CALL EFPP.00497F38
0049804F|.8BF8          MOV EDI,EAX
00498051|.8D45 E8       LEA EAX,DWORD PTR SS:
00498054|.8A56 07       MOV DL,BYTE PTR DS:               ;//试练码第8位ASC值
00498057|.E8 6CC8F6FF   CALL EFPP.004048C8
0049805C|.8B45 E8       MOV EAX,DWORD PTR SS:
0049805F|.E8 D4FEFFFF   CALL EFPP.00497F38
00498064|.03F8          ADD EDI,EAX
00498066|.8D45 E4       LEA EAX,DWORD PTR SS:
00498069|.8A56 0A       MOV DL,BYTE PTR DS:               ;//试练码第11位ASC值
0049806C|.E8 57C8F6FF   CALL EFPP.004048C8
00498071|.8B45 E4       MOV EAX,DWORD PTR SS:
00498074|.E8 BFFEFFFF   CALL EFPP.00497F38
00498079|.03F8          ADD EDI,EAX
0049807B|.8D45 E0       LEA EAX,DWORD PTR SS:
0049807E|.8A56 0D       MOV DL,BYTE PTR DS:               ;//试练码第14位ASC值
00498081|.E8 42C8F6FF   CALL EFPP.004048C8
00498086|.8B45 E0       MOV EAX,DWORD PTR SS:
00498089|.E8 AAFEFFFF   CALL EFPP.00497F38
0049808E|.03F8          ADD EDI,EAX
00498090|.A1 D8564A00   MOV EAX,DWORD PTR DS:
00498095|.3B38          CMP EDI,DWORD PTR DS:               ;//4个试练码值右移2位后的和等于8
00498097|.0F85 BB000000 JNZ EFPP.00498158
0049809D|.8D45 DC       LEA EAX,DWORD PTR SS:
004980A0|.8A16          MOV DL,BYTE PTR DS:               ;//试练码第1位ASC值
004980A2|.E8 21C8F6FF   CALL EFPP.004048C8
004980A7|.8B45 DC       MOV EAX,DWORD PTR SS:
004980AA|.E8 89FEFFFF   CALL EFPP.00497F38
004980AF|.8BF8          MOV EDI,EAX
004980B1|.8D45 D8       LEA EAX,DWORD PTR SS:
004980B4|.8A56 01       MOV DL,BYTE PTR DS:               ;//试练码第2位ASC值
004980B7|.E8 0CC8F6FF   CALL EFPP.004048C8
004980BC|.8B45 D8       MOV EAX,DWORD PTR SS:
004980BF|.E8 74FEFFFF   CALL EFPP.00497F38
004980C4|.03F8          ADD EDI,EAX
004980C6|.8D45 D4       LEA EAX,DWORD PTR SS:
004980C9|.8A56 02       MOV DL,BYTE PTR DS:               ;//试练码第3位ASC值
004980CC|.E8 F7C7F6FF   CALL EFPP.004048C8
004980D1|.8B45 D4       MOV EAX,DWORD PTR SS:
004980D4|.E8 5FFEFFFF   CALL EFPP.00497F38
004980D9|.03F8          ADD EDI,EAX
004980DB|.8D45 D0       LEA EAX,DWORD PTR SS:
004980DE|.8A56 03       MOV DL,BYTE PTR DS:               ;//试练码第4位ASC值
004980E1|.E8 E2C7F6FF   CALL EFPP.004048C8
004980E6|.8B45 D0       MOV EAX,DWORD PTR SS:
004980E9|.E8 4AFEFFFF   CALL EFPP.00497F38
004980EE|.03F8          ADD EDI,EAX
004980F0|.A1 A4564A00   MOV EAX,DWORD PTR DS:
004980F5|.3B38          CMP EDI,DWORD PTR DS:               ;//4个试练码值右移2位后的和等于8
004980F7|.75 5F         JNZ SHORT EFPP.00498158
004980F9|.8D45 CC       LEA EAX,DWORD PTR SS:
004980FC|.8A56 06       MOV DL,BYTE PTR DS:               ;//试练码第7位ASC值
004980FF|.E8 C4C7F6FF   CALL EFPP.004048C8
00498104|.8B45 CC       MOV EAX,DWORD PTR SS:
00498107|.E8 2CFEFFFF   CALL EFPP.00497F38
0049810C|.8BF8          MOV EDI,EAX
0049810E|.8D45 C8       LEA EAX,DWORD PTR SS:
00498111|.8A56 09       MOV DL,BYTE PTR DS:               ;//试练码第10位ASC值
00498114|.E8 AFC7F6FF   CALL EFPP.004048C8
00498119|.8B45 C8       MOV EAX,DWORD PTR SS:
0049811C|.E8 17FEFFFF   CALL EFPP.00497F38
00498121|.03F8          ADD EDI,EAX
00498123|.8D45 C4       LEA EAX,DWORD PTR SS:
00498126|.8A56 0C       MOV DL,BYTE PTR DS:               ;//试练码第13位ASC值
00498129|.E8 9AC7F6FF   CALL EFPP.004048C8
0049812E|.8B45 C4       MOV EAX,DWORD PTR SS:
00498131|.E8 02FEFFFF   CALL EFPP.00497F38
00498136|.03F8          ADD EDI,EAX
00498138|.8D45 C0       LEA EAX,DWORD PTR SS:
0049813B|.8A56 0F       MOV DL,BYTE PTR DS:               ;//试练码第16位ASC值
0049813E|.E8 85C7F6FF   CALL EFPP.004048C8
00498143|.8B45 C0       MOV EAX,DWORD PTR SS:
00498146|.E8 EDFDFFFF   CALL EFPP.00497F38
0049814B|.03F8          ADD EDI,EAX
0049814D|.A1 D0534A00   MOV EAX,DWORD PTR DS:
00498152|.3B38          CMP EDI,DWORD PTR DS:               ;//4个试练码值右移2位后的和等于8
00498154|.75 02         JNZ SHORT EFPP.00498158
00498156|.B3 01         MOV BL,1                                 ;//BL=1
00498158|>33C0          XOR EAX,EAX                              ;//EAX=0
0049815A|.5A            POP EDX
0049815B|.59            POP ECX
0049815C|.59            POP ECX
0049815D|.64:8910       MOV DWORD PTR FS:,EDX
00498160|.68 7A814900   PUSH EFPP.0049817A
00498165|>8D45 C0       LEA EAX,DWORD PTR SS:
00498168|.BA 10000000   MOV EDX,10
0049816D|.E8 92C5F6FF   CALL EFPP.00404704
00498172\.C3            RETN
00498173   .^ E9 44BFF6FF   JMP EFPP.004040BC
00498178   .^ EB EB         JMP SHORT EFPP.00498165
0049817A   .8BC3          MOV EAX,EBX                              ;//EAX=EBX
0049817C   .5F            POP EDI
0049817D   .5E            POP ESI
0049817E   .5B            POP EBX
0049817F   .8BE5          MOV ESP,EBP
00498181   .5D            POP EBP
00498182   .C3            RETN**************************************************************
【破解总结】
--------------------------------------------------------------
【算法总结】
1、注册码长度必须为16位
2、字符必须在0~9、A~F、a~f之内
3、同一数字在注册码中出现次数小于等于5
4、1、2、3、4位的值右移2位后的和等于8;5、8、11、14位的值右移2位后的和等于8;7、10、13、16位的值右移2位后的和等于8
--------------------------------------------------------------
【算法注册机】
--------------------------------------------------------------
Private Sub Command1_Click()
Randomize
Dim a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16
tianxj:
a1 = Int((15 * Rnd) + 0)
a2 = Int((15 * Rnd) + 0)
a3 = Int((15 * Rnd) + 0)
a4 = Int((15 * Rnd) + 0)
a5 = Int((15 * Rnd) + 0)
a6 = Int((15 * Rnd) + 0)
a7 = Int((15 * Rnd) + 0)
a8 = Int((15 * Rnd) + 0)
a9 = Int((15 * Rnd) + 0)
a10 = Int((15 * Rnd) + 0)
a11 = Int((15 * Rnd) + 0)
a12 = Int((15 * Rnd) + 0)
a13 = Int((15 * Rnd) + 0)
a14 = Int((15 * Rnd) + 0)
a15 = Int((15 * Rnd) + 0)
a16 = Int((15 * Rnd) + 0)
If (a1 \ 4 + a2 \ 4 + a3 \ 4 + a4 \ 4 = 8) And (a5 \ 4 + a8 \ 4 + a11 \ 4 + a14 \ 4 = 8) And (a7 \ 4 + a10 \ 4 + a13 \ 4 + a16 \ 4 = 8) Then
Text1.Text = Hex(a1) & Hex(a2) & Hex(a3) & Hex(a4) & Hex(a5) & Hex(a6) & Hex(a7) & Hex(a8) & Hex(a9) & Hex(a10) & Hex(a11) & Hex(a12) & Hex(a13) & Hex(a14) & Hex(a15) & Hex(a16)
Exit Sub
End If
GoTo tianxj
End Sub
--------------------------------------------------------------
【注册信息】
一组可用的注册码:89AB808909A0AB0B

注册表信息

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

hj2008mt 发表于 2008-4-18 10:23:58

兄弟又出算法了,好!!

qifeon 发表于 2008-4-18 19:01:21

厉害,算法玩这么好。

flyskey 发表于 2008-4-19 20:46:45

根本就是在看天书..../:002

frozenrain 发表于 2008-4-19 21:06:01

要是给出注册机代码就好了

daan 发表于 2008-4-20 18:04:34

感觉太复杂了~!埃。一下就没信息了!~/:L

tianxj 发表于 2008-4-20 19:03:44

原帖由 frozenrain 于 2008-4-19 21:06 发表 https://www.chinapyg.com/images/common/back.gif
要是给出注册机代码就好了

晕了,那不是有VB注册机代码吗

云飘飘 发表于 2008-4-25 22:14:02

这个算法有点麻烦!

套用了几层~~
页: [1]
查看完整版本: Easy File & Folder Protector 4.82算法分析