飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4198|回复: 5

[原创] HiFi Recorder注册算法分析

[复制链接]
  • TA的每日心情
    开心
    2018-2-26 08:32
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    发表于 2007-1-1 12:03:01 | 显示全部楼层 |阅读模式
    软件名称: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
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-1-3 15:43:17 | 显示全部楼层
    谢谢lz了..不错啊
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-2-14 10:20
  • 签到天数: 489 天

    [LV.9]以坛为家II

    发表于 2007-1-5 11:37:06 | 显示全部楼层
    嘿嘿,真是学习的乐园哦
    收一份先,谢谢了
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-10-11 00:31
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2007-1-5 13:32:14 | 显示全部楼层
    不错不错,要是能有注册机源码那对于我们新手帮助会更大呀!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2007-1-5 17:59:10 | 显示全部楼层
    好啊,学习了。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-9-23 08:32:05 | 显示全部楼层
    不错,值得学习。谢谢。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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