- UID
 - 6880
 
 注册时间2006-1-12
阅读权限30
最后登录1970-1-1
龙战于野 
  
 
 
 
TA的每日心情  | 开心 2018-2-26 08:32 | 
|---|
 
  签到天数: 19 天 [LV.4]偶尔看看III  
 | 
 
软件名称:HiFi Recorder 2.0 
软件语言:英文 
软件类别:国外软件/共享版/音频工具 
运行环境:Win9x/Me/NT/2000/XP/2003 
保护方式:UPX壳+注册码 
下载地址:http://www.onlinedown.net/soft/52965.htm 
软件信息:漂亮的高保真录音机。   
  
 
一、注册算法跟踪 
 
UPX壳,跟踪算法脱不脱壳影响不大。OD载入,F9运行很容易找到下面关键地方。  
  
00409843    8B45 A0              MOV EAX,DWORD PTR SS:[EBP-60] 
00409846    FFB0 882C0000        PUSH DWORD PTR DS:[EAX+2C88] 
0040984C    E8 632F0000          CALL HiFiReco.0040C7B4              ; 关键Call 
00409851    59                   POP ECX 
00409852    84C0                 TEST AL,AL 
00409854    74 39                JE SHORT HiFiReco.0040988F          ; 跳注册验证失败 
00409856    8B55 A0              MOV EDX,DWORD PTR SS:[EBP-60] 
00409859    C682 8F2C0000 01     MOV BYTE PTR DS:[EDX+2C8F],1        ; (Initial CPU selection) 
00409860    66:C745 B4 5C00      MOV WORD PTR SS:[EBP-4C],5C 
00409866    BA 15C64D00          MOV EDX,HiFiReco.004DC615           ; Successfully Registered! 
0040986B    8D45 D0              LEA EAX,DWORD PTR SS:[EBP-30] 
 
F7进入0040984C 处 CALL HiFiReco.0040C7B4 
 
0040C7B4    55                   PUSH EBP 
0040C7B5    8BEC                 MOV EBP,ESP 
0040C7B7    81C4 34FFFFFF        ADD ESP,-0CC 
0040C7BD    B8 C0044E00          MOV EAX,HiFiReco.004E04C0 
0040C7C2    E8 3D820800          CALL HiFiReco.00494A04 
0040C7C7    C745 A0 01000000     MOV DWORD PTR SS:[EBP-60],1 
0040C7CE    8D55 08              LEA EDX,DWORD PTR SS:[EBP+8] 
0040C7D1    8D45 08              LEA EAX,DWORD PTR SS:[EBP+8]          ; [EBP+8]假码地址 
0040C7D4    E8 DB370900          CALL HiFiReco.0049FFB4 
0040C7D9    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040C7DC    66:C745 94 0800      MOV WORD PTR SS:[EBP-6C],8 
0040C7E2    66:C745 94 1400      MOV WORD PTR SS:[EBP-6C],14 
0040C7E8    8D55 08              LEA EDX,DWORD PTR SS:[EBP+8] 
0040C7EB    8D45 FC              LEA EAX,DWORD PTR SS:[EBP-4] 
0040C7EE    E8 C1370900          CALL HiFiReco.0049FFB4 
0040C7F3    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040C7F6    66:C745 94 0800      MOV WORD PTR SS:[EBP-6C],8 
0040C7FC    66:C745 94 2000      MOV WORD PTR SS:[EBP-6C],20 
0040C802    BA B0034E00          MOV EDX,HiFiReco.004E03B0             ; 数组[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ] 
0040C807    8D45 F8              LEA EAX,DWORD PTR SS:[EBP-8] 
0040C80A    E8 6D370900          CALL HiFiReco.0049FF7C 
0040C80F    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040C812    66:C745 94 0800      MOV WORD PTR SS:[EBP-6C],8 
0040C818    33D2                 XOR EDX,EDX 
0040C81A    8995 34FFFFFF        MOV DWORD PTR SS:[EBP-CC],EDX 
0040C820    C785 38FFFFFF 120000>MOV DWORD PTR SS:[EBP-C8],12          | 
0040C82A    C785 3CFFFFFF 130000>MOV DWORD PTR SS:[EBP-C4],13          | 
0040C834    C785 40FFFFFF 110000>MOV DWORD PTR SS:[EBP-C0],11          | 
0040C83E    C785 44FFFFFF 0C0000>MOV DWORD PTR SS:[EBP-BC],0C          |  
0040C848    C785 48FFFFFF 0E0000>MOV DWORD PTR SS:[EBP-B8],0E          | 用于确定注册码 
0040C852    C785 4CFFFFFF 140000>MOV DWORD PTR SS:[EBP-B4],14          | 后半部分的位置 
0040C85C    C785 50FFFFFF 0B0000>MOV DWORD PTR SS:[EBP-B0],0B          | 设为C 
0040C866    C785 54FFFFFF 0D0000>MOV DWORD PTR SS:[EBP-AC],0D          | 
0040C870    C785 58FFFFFF 100000>MOV DWORD PTR SS:[EBP-A8],10          | 
0040C87A    C785 5CFFFFFF 0F0000>MOV DWORD PTR SS:[EBP-A4],0F          | 
0040C884    C745 80 07000000     MOV DWORD PTR SS:[EBP-80],7           ; 定位数组元素的初试值 
0040C88B    C785 7CFFFFFF FFFFFF>MOV DWORD PTR SS:[EBP-84],-1 
0040C895    66:C745 94 2C00      MOV WORD PTR SS:[EBP-6C],2C 
0040C89B    BA D5034E00          MOV EDX,HiFiReco.004E03D5             ; - (2D) 
0040C8A0    8D45 C4              LEA EAX,DWORD PTR SS:[EBP-3C] 
0040C8A3    E8 D4360900          CALL HiFiReco.0049FF7C 
0040C8A8    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040C8AB    8D55 C4              LEA EDX,DWORD PTR SS:[EBP-3C] 
0040C8AE    8D45 FC              LEA EAX,DWORD PTR SS:[EBP-4] 
0040C8B1    E8 363A0900          CALL HiFiReco.004A02EC 
0040C8B6    8985 7CFFFFFF        MOV DWORD PTR SS:[EBP-84],EAX 
0040C8BC    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040C8BF    8D45 C4              LEA EAX,DWORD PTR SS:[EBP-3C] 
0040C8C2    BA 02000000          MOV EDX,2 
0040C8C7    E8 80370900          CALL HiFiReco.004A004C 
0040C8CC    83BD 7CFFFFFF 00     CMP DWORD PTR SS:[EBP-84],0 
0040C8D3    0F84 A8000000        JE HiFiReco.0040C981 
0040C8D9    66:C745 94 3800      MOV WORD PTR SS:[EBP-6C],38 
0040C8DF    8D45 BC              LEA EAX,DWORD PTR SS:[EBP-44] 
0040C8E2    E8 3D53FFFF          CALL HiFiReco.00401C24 
0040C8E7    50                   PUSH EAX 
0040C8E8    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040C8EB    8D45 FC              LEA EAX,DWORD PTR SS:[EBP-4] 
0040C8EE    E8 ADB0FFFF          CALL HiFiReco.004079A0 
0040C8F3    8BC8                 MOV ECX,EAX 
0040C8F5    2B8D 7CFFFFFF        SUB ECX,DWORD PTR SS:[EBP-84] 
0040C8FB    8B95 7CFFFFFF        MOV EDX,DWORD PTR SS:[EBP-84] 
0040C901    42                   INC EDX 
0040C902    8D45 FC              LEA EAX,DWORD PTR SS:[EBP-4] 
0040C905    E8 FE380900          CALL HiFiReco.004A0208 
0040C90A    8D55 BC              LEA EDX,DWORD PTR SS:[EBP-44] 
0040C90D    52                   PUSH EDX 
0040C90E    8D45 C0              LEA EAX,DWORD PTR SS:[EBP-40] 
0040C911    E8 0E53FFFF          CALL HiFiReco.00401C24 
0040C916    50                   PUSH EAX 
0040C917    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040C91A    8B8D 7CFFFFFF        MOV ECX,DWORD PTR SS:[EBP-84] 
0040C920    49                   DEC ECX 
0040C921    8D45 FC              LEA EAX,DWORD PTR SS:[EBP-4] 
0040C924    BA 01000000          MOV EDX,1 
0040C929    E8 DA380900          CALL HiFiReco.004A0208 
0040C92E    8D4D C0              LEA ECX,DWORD PTR SS:[EBP-40] 
0040C931    51                   PUSH ECX 
0040C932    8D45 B8              LEA EAX,DWORD PTR SS:[EBP-48] 
0040C935    E8 EA52FFFF          CALL HiFiReco.00401C24 
0040C93A    8BC8                 MOV ECX,EAX 
0040C93C    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040C93F    58                   POP EAX 
0040C940    5A                   POP EDX 
0040C941    E8 5E370900          CALL HiFiReco.004A00A4 
0040C946    8D55 B8              LEA EDX,DWORD PTR SS:[EBP-48] 
0040C949    8D45 FC              LEA EAX,DWORD PTR SS:[EBP-4] 
0040C94C    E8 2B370900          CALL HiFiReco.004A007C 
0040C951    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040C954    8D45 B8              LEA EAX,DWORD PTR SS:[EBP-48] 
0040C957    BA 02000000          MOV EDX,2 
0040C95C    E8 EB360900          CALL HiFiReco.004A004C 
0040C961    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040C964    8D45 BC              LEA EAX,DWORD PTR SS:[EBP-44] 
0040C967    BA 02000000          MOV EDX,2 
0040C96C    E8 DB360900          CALL HiFiReco.004A004C 
0040C971    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040C974    8D45 C0              LEA EAX,DWORD PTR SS:[EBP-40] 
0040C977    BA 02000000          MOV EDX,2 
0040C97C    E8 CB360900          CALL HiFiReco.004A004C 
0040C981    83BD 7CFFFFFF 00     CMP DWORD PTR SS:[EBP-84],0 
0040C988  ^ 0F85 07FFFFFF        JNZ HiFiReco.0040C895                 ; 这个循环是去除假码中的'-'(2D) 
0040C98E    8D45 FC              LEA EAX,DWORD PTR SS:[EBP-4] 
0040C991    E8 0AB0FFFF          CALL HiFiReco.004079A0                ; 去除'-'后假码的长度 
0040C996    83F8 14              CMP EAX,14                            ; 注册码有效长度=14 (20) 
0040C999    74 43                JE SHORT HiFiReco.0040C9DE 
0040C99B    33C0                 XOR EAX,EAX 
0040C99D    50                   PUSH EAX 
0040C99E    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040C9A1    8D45 F8              LEA EAX,DWORD PTR SS:[EBP-8] 
0040C9A4    BA 02000000          MOV EDX,2 
0040C9A9    E8 9E360900          CALL HiFiReco.004A004C 
0040C9AE    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040C9B1    8D45 FC              LEA EAX,DWORD PTR SS:[EBP-4] 
0040C9B4    BA 02000000          MOV EDX,2 
0040C9B9    E8 8E360900          CALL HiFiReco.004A004C 
0040C9BE    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040C9C1    8D45 08              LEA EAX,DWORD PTR SS:[EBP+8] 
0040C9C4    BA 02000000          MOV EDX,2 
0040C9C9    E8 7E360900          CALL HiFiReco.004A004C 
0040C9CE    58                   POP EAX 
0040C9CF    8B55 84              MOV EDX,DWORD PTR SS:[EBP-7C] 
0040C9D2    64:8915 00000000     MOV DWORD PTR FS:[0],EDX 
0040C9D9    E9 F8020000          JMP HiFiReco.0040CCD6 
0040C9DE    66:C745 94 4400      MOV WORD PTR SS:[EBP-6C],44           ; 假码长度等于14跳到这里 
0040C9E4    8D45 F4              LEA EAX,DWORD PTR SS:[EBP-C] 
0040C9E7    E8 3852FFFF          CALL HiFiReco.00401C24 
0040C9EC    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040C9EF    66:C745 94 0800      MOV WORD PTR SS:[EBP-6C],8 
0040C9F5    68 4C004A00          PUSH HiFiReco.004A004C 
0040C9FA    6A 03                PUSH 3 
0040C9FC    68 241C4000          PUSH HiFiReco.00401C24 
0040CA01    6A 03                PUSH 3 
0040CA03    6A 0B                PUSH 0B 
0040CA05    6A 04                PUSH 4 
0040CA07    8D55 C8              LEA EDX,DWORD PTR SS:[EBP-38] 
0040CA0A    52                   PUSH EDX 
0040CA0B    E8 84640800          CALL HiFiReco.00492E94 
0040CA10    83C4 1C              ADD ESP,1C 
0040CA13    8345 A0 0B           ADD DWORD PTR SS:[EBP-60],0B 
0040CA17    C785 68FFFFFF 010000>MOV DWORD PTR SS:[EBP-98],1 
0040CA21    66:C745 94 5000      MOV WORD PTR SS:[EBP-6C],50 
0040CA27    8D45 B4              LEA EAX,DWORD PTR SS:[EBP-4C] 
0040CA2A    E8 F551FFFF          CALL HiFiReco.00401C24 
0040CA2F    50                   PUSH EAX 
0040CA30    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040CA33    8D45 FC              LEA EAX,DWORD PTR SS:[EBP-4]          ; [EBP-4]假码地址 
0040CA36    B9 01000000          MOV ECX,1 
0040CA3B    8B95 68FFFFFF        MOV EDX,DWORD PTR SS:[EBP-98]         ; 假码下标 
0040CA41    E8 C2370900          CALL HiFiReco.004A0208                ; 逐个取出假码前半部分 
0040CA46    8D55 B4              LEA EDX,DWORD PTR SS:[EBP-4C]         ; [EBP-4C]取出的地址 
0040CA49    8D45 F8              LEA EAX,DWORD PTR SS:[EBP-8]          ; [EBP-8]数组地址 
0040CA4C    E8 9B380900          CALL HiFiReco.004A02EC                ; 假码在数组中对应的下标(设为P) 
0040CA51    8985 78FFFFFF        MOV DWORD PTR SS:[EBP-88],EAX         ; 数组中无对应的字符返回零 
0040CA57    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040CA5A    8D45 B4              LEA EAX,DWORD PTR SS:[EBP-4C] 
0040CA5D    BA 02000000          MOV EDX,2 
0040CA62    E8 E5350900          CALL HiFiReco.004A004C 
0040CA67    8B8D 78FFFFFF        MOV ECX,DWORD PTR SS:[EBP-88] 
0040CA6D    034D 80              ADD ECX,DWORD PTR SS:[EBP-80]         ; [EBP-80]=7 (P+7) 
0040CA70    898D 70FFFFFF        MOV DWORD PTR SS:[EBP-90],ECX 
0040CA76    8B85 78FFFFFF        MOV EAX,DWORD PTR SS:[EBP-88] 
0040CA7C    8985 6CFFFFFF        MOV DWORD PTR SS:[EBP-94],EAX 
0040CA82    C785 64FFFFFF 010000>MOV DWORD PTR SS:[EBP-9C],1 
0040CA8C    66:C745 94 0800      MOV WORD PTR SS:[EBP-6C],8 
0040CA92    8B95 64FFFFFF        MOV EDX,DWORD PTR SS:[EBP-9C] 
0040CA98    3B95 70FFFFFF        CMP EDX,DWORD PTR SS:[EBP-90] 
0040CA9E    7F 34                JG SHORT HiFiReco.0040CAD4 
0040CAA0    FF85 6CFFFFFF        INC DWORD PTR SS:[EBP-94]             ; [EBP-94]P+1 
0040CAA6    8D45 F8              LEA EAX,DWORD PTR SS:[EBP-8]          ; [EBP-8]数组地址 
0040CAA9    E8 F2AEFFFF          CALL HiFiReco.004079A0                ; 得到数组中下标最大值 
0040CAAE    3B85 6CFFFFFF        CMP EAX,DWORD PTR SS:[EBP-94]         ; 是否大于最大值 
0040CAB4    7D 0A                JGE SHORT HiFiReco.0040CAC0 
0040CAB6    C785 6CFFFFFF 010000>MOV DWORD PTR SS:[EBP-94],1           ; 大于最大值从1开始 
0040CAC0    FF85 64FFFFFF        INC DWORD PTR SS:[EBP-9C] 
0040CAC6    8B95 64FFFFFF        MOV EDX,DWORD PTR SS:[EBP-9C] 
0040CACC    3B95 70FFFFFF        CMP EDX,DWORD PTR SS:[EBP-90]         ; 循环 P+7 次 
0040CAD2  ^ 7E CC                JLE SHORT HiFiReco.0040CAA0           ; 就是[EBP-94]=P+7+P 
0040CAD4    8B8D 68FFFFFF        MOV ECX,DWORD PTR SS:[EBP-98] 
0040CADA    8B848D 34FFFFFF      MOV EAX,DWORD PTR SS:[EBP+ECX*4-CC]   ; [EBP+ECX*4-CC]=C 
0040CAE1    83C0 F6              ADD EAX,-0A                           ; 后半部分注册码的顺序 
0040CAE4    8985 74FFFFFF        MOV DWORD PTR SS:[EBP-8C],EAX 
0040CAEA    66:C745 94 5C00      MOV WORD PTR SS:[EBP-6C],5C 
0040CAF0    8D45 B0              LEA EAX,DWORD PTR SS:[EBP-50]         ; [EBP-50]假码地址 
0040CAF3    E8 2C51FFFF          CALL HiFiReco.00401C24 
0040CAF8    50                   PUSH EAX 
0040CAF9    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040CAFC    8D45 F8              LEA EAX,DWORD PTR SS:[EBP-8]          ; [EBP-8]数组地址 
0040CAFF    B9 01000000          MOV ECX,1 
0040CB04    8B95 6CFFFFFF        MOV EDX,DWORD PTR SS:[EBP-94]         ; [EBP-94]=P+7+P 
0040CB0A    E8 F9360900          CALL HiFiReco.004A0208                ; 根据EDX值取数组中字符 
0040CB0F    8D55 B0              LEA EDX,DWORD PTR SS:[EBP-50]         ; [EBP-50]数组中取出字符 
0040CB12    8B85 74FFFFFF        MOV EAX,DWORD PTR SS:[EBP-8C] 
0040CB18    C1E0 02              SHL EAX,2 
0040CB1B    8D4D C8              LEA ECX,DWORD PTR SS:[EBP-38]         ; 存放取出数组中字符的初试地址 
0040CB1E    03C1                 ADD EAX,ECX                           ; EAX=(C-$A)shl 2 确定注册码后半部分的第几位 
0040CB20    E8 57350900          CALL HiFiReco.004A007C                ; 取出数组中字符的地址入栈 
0040CB25    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040CB28    8D45 B0              LEA EAX,DWORD PTR SS:[EBP-50] 
0040CB2B    BA 02000000          MOV EDX,2 
0040CB30    E8 17350900          CALL HiFiReco.004A004C 
0040CB35    FF85 68FFFFFF        INC DWORD PTR SS:[EBP-98]             ; [EBP-98]记数器 
0040CB3B    83BD 68FFFFFF 0A     CMP DWORD PTR SS:[EBP-98],0A          ; [EBP-98]假码前半部分位数 
0040CB42  ^ 0F8E D9FEFFFF        JLE HiFiReco.0040CA21 
0040CB48    66:C745 94 6800      MOV WORD PTR SS:[EBP-6C],68 
0040CB4E    8D45 AC              LEA EAX,DWORD PTR SS:[EBP-54] 
0040CB51    E8 CE50FFFF          CALL HiFiReco.00401C24 
0040CB56    50                   PUSH EAX 
0040CB57    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040CB5A    8D45 FC              LEA EAX,DWORD PTR SS:[EBP-4] 
0040CB5D    B9 0A000000          MOV ECX,0A 
0040CB62    BA 01000000          MOV EDX,1 
0040CB67    E8 9C360900          CALL HiFiReco.004A0208 
0040CB6C    8D55 AC              LEA EDX,DWORD PTR SS:[EBP-54] 
0040CB6F    8D45 F4              LEA EAX,DWORD PTR SS:[EBP-C] 
0040CB72    E8 05350900          CALL HiFiReco.004A007C 
0040CB77    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040CB7A    8D45 AC              LEA EAX,DWORD PTR SS:[EBP-54] 
0040CB7D    BA 02000000          MOV EDX,2 
0040CB82    E8 C5340900          CALL HiFiReco.004A004C 
0040CB87    C785 60FFFFFF 010000>MOV DWORD PTR SS:[EBP-A0],1 
0040CB91    66:C745 94 0800      MOV WORD PTR SS:[EBP-6C],8 
0040CB97    83BD 60FFFFFF 0A     CMP DWORD PTR SS:[EBP-A0],0A 
0040CB9E    7F 53                JG SHORT HiFiReco.0040CBF3 
0040CBA0    66:C745 94 7400      MOV WORD PTR SS:[EBP-6C],74 
0040CBA6    8D45 A8              LEA EAX,DWORD PTR SS:[EBP-58] 
0040CBA9    E8 7650FFFF          CALL HiFiReco.00401C24 
0040CBAE    8BC8                 MOV ECX,EAX 
0040CBB0    FF45 A0              INC DWORD PTR SS:[EBP-60] 
0040CBB3    8B95 60FFFFFF        MOV EDX,DWORD PTR SS:[EBP-A0] 
0040CBB9    C1E2 02              SHL EDX,2 
0040CBBC    8D45 C8              LEA EAX,DWORD PTR SS:[EBP-38] 
0040CBBF    03D0                 ADD EDX,EAX                           ; 定位 
0040CBC1    8D45 F4              LEA EAX,DWORD PTR SS:[EBP-C]          ; [EBP-C]假码前半部分 
0040CBC4    E8 DB340900          CALL HiFiReco.004A00A4                ; 连接数组中找出的字符 
0040CBC9    8D55 A8              LEA EDX,DWORD PTR SS:[EBP-58] 
0040CBCC    8D45 F4              LEA EAX,DWORD PTR SS:[EBP-C] 
0040CBCF    E8 A8340900          CALL HiFiReco.004A007C 
0040CBD4    FF4D A0              DEC DWORD PTR SS:[EBP-60] 
0040CBD7    8D45 A8              LEA EAX,DWORD PTR SS:[EBP-58] 
0040CBDA    BA 02000000          MOV EDX,2 
0040CBDF    E8 68340900          CALL HiFiReco.004A004C 
0040CBE4    FF85 60FFFFFF        INC DWORD PTR SS:[EBP-A0] 
0040CBEA    83BD 60FFFFFF 0A     CMP DWORD PTR SS:[EBP-A0],0A          ; 假码后半部分位数是循环次数 
0040CBF1  ^ 7E AD                JLE SHORT HiFiReco.0040CBA0 
0040CBF3    8D55 FC              LEA EDX,DWORD PTR SS:[EBP-4]           
0040CBF6    8D45 F4              LEA EAX,DWORD PTR SS:[EBP-C] 
0040CBF9    E8 32350900          CALL HiFiReco.004A0130                ; 验证注册码 
0040CBFE    84C0                 TEST AL,AL 
0040CC00    74 6B                JE SHORT HiFiReco.0040CC6D 
0040CC02    B0 01                MOV AL,1 
0040CC04    50                   PUSH EAX 
0040CC05    8345 A0 F5           ADD DWORD PTR SS:[EBP-60],-0B 
0040CC09    68 4C004A00          PUSH HiFiReco.004A004C 
0040CC0E    6A 03                PUSH 3 
0040CC10    6A 0B                PUSH 0B 
0040CC12    6A 04                PUSH 4 
 
 
二、算法小结 
 
1. 注册码长度20 (不能有'-') 
 
2. 注册码前半部分(10)在数组[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ] 
   中的下标为P(若不在数组中P=0) 
 
3. 根据:P+7+P(若大于24h,减24h直到小于24h),作为下标找出对应的字符 
 
4. 找出字符的排列顺序(组成注册码后半部分) 
 
   注册码第1位   (12-A) shl 2 =20    |       | 8   (A) 
           2位   13           =24    |       | 9   (C) 
           3位   11           =1C    |       | 7   (E) 
           4位   0C           =8     | 根据  | 2   (G) 
           5位   0E           =10    | 大小  | 4   (I) 
           6位   14           =28    | 排列  | 10  (K) 
           7位   0B           =4     | 顺序  | 1   (M) 
           8位   0D           =C     |       | 3   (O) 
           9位   10           =18    |       | 6   (Q) 
          10位   0F           =14    |       | 5   (8) 
 
5. 若注册码前半部分是:1234567890 
   对应的数组字符是:  ACEGIKMOQ8 
 
6. 按4的顺序排列:MGOI8QEACK 
    
7. 连接得到注册码:1234567890MGOI8QEACK 
 
8. 注册信息保存在:HKEY_LOCAL_MACHINE\SOFTWARE\ShuangzSoft\HiFiRecorder |   
 
 
 
 |