您的位置:首页精文荟萃破解文章 → 小红包花样短信 V4.0 算法分析

小红包花样短信 V4.0 算法分析

时间:2004/10/15 0:55:00来源:本站整理作者:蓝点我要评论(0)

 

软件简介
———————————————————————————————
   小红包花样短信以前叫做诺基亚闪烁短信息。她能使您发送自己定制的闪烁、图片短信到诺基亚和西门子
手机!·支持一些西门子手机的图片短信·增强的短信编辑器·新增我的收藏夹,内附幽默短语200条·新增
简易电话号码簿·可自定义短信签名!

授权方式: 共享

下载地址:http://jshttp.skycn.net/down/redbagsms40_cn.zip

———————————————————————————————
破解者:青锋剑客

破解目的:获得注册码,做出注册机。

破解工具:fi2.5 fs regmon softice4.5 ollydbg1.07 tc2.0


破解过程:

1。用FI2.5检查程序的壳,是upx0.89-6-1.21,用fs脱壳。

2.先熟悉一下程序,调出注册界面,用户名输入shifeng,注册号输入87654321,点注册,让重新启动程序,
可以看出要验证注册码。

3.调出regmon,再次启动小红包,查出小红包要调用
HKEY_CURRENT_USER\Software\iRedBag\RedBag SMS\4.0\RegCode

4.CTRL+D调出SI,下断点bpx regqueryvalueexa if *(esp->8)=='RegC' do "d (esp->14)"
启动小红包中断,按一次F12,按若干次F10,当内存数据区显示87654321时,中断于4678E0,继续按F10
会来到4B246D。向上看,会来到这里。

004B243E   BA 34294B00      MOV EDX,REDBAGSM.004B2934                ; ASCII "RegName"
004B2443   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B2446   E8 F152FBFF      CALL REDBAGSM.0046773C
004B244B   B9 1C294B00      MOV ECX,REDBAGSM.004B291C                ; ASCII "UNREGISTERED"
004B2450   BA 44294B00      MOV EDX,REDBAGSM.004B2944                ; ASCII "RegCode"
004B2455   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B2458   E8 DF52FBFF      CALL REDBAGSM.0046773C
004B245D   8D4D E0          LEA ECX,DWORD PTR SS:[EBP-20]
004B2460   BA 44294B00      MOV EDX,REDBAGSM.004B2944                ; ASCII "RegCode"
004B2465   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B2468   E8 FB52FBFF      CALL REDBAGSM.00467768                   ;取注册号
004B246D   8B45 E0          MOV EAX,DWORD PTR SS:[EBP-20]
004B2470   50               PUSH EAX
004B2471   8D4D DC          LEA ECX,DWORD PTR SS:[EBP-24]
004B2474   BA 34294B00      MOV EDX,REDBAGSM.004B2934                ; ASCII "RegName"
004B2479   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B247C   E8 E752FBFF      CALL REDBAGSM.00467768                  ;取用户名
004B2481   8B45 DC          MOV EAX,DWORD PTR SS:[EBP-24]
004B2484   5A               POP EDX
004B2485   E8 1AF4FFFF      CALL REDBAGSM.004B18A4                  ; 关键调用,计算注册码并验证
004B248A   84C0             TEST AL,AL
004B248C   74 2C            JE SHORT REDBAGSM.004B24BA               ; 跳则死
004B248E   8D4D D8          LEA ECX,DWORD PTR SS:[EBP-28]
004B2491   BA BC284B00      MOV EDX,REDBAGSM.004B28BC                ; ASCII "Signature"
004B2496   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B2499   E8 CA52FBFF      CALL REDBAGSM.00467768
004B249E   8B55 D8          MOV EDX,DWORD PTR SS:[EBP-28]
004B24A1   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]

5.为方便调试,启动ollydbg,CTRL+G输入4B246D,F2在此下断点。F8几次,进入关键调用:

004B18A4   55               PUSH EBP
004B18A5   8BEC             MOV EBP,ESP
004B18A7   B9 0D000000      MOV ECX,0D
004B18AC   6A 00            PUSH 0
004B18AE   6A 00            PUSH 0
004B18B0   49               DEC ECX
004B18B1  ^75 F9            JNZ SHORT REDBAGSM.004B18AC
004B18B3   53               PUSH EBX
004B18B4   8955 F8          MOV DWORD PTR SS:[EBP-8],EDX
004B18B7   8945 FC          MOV DWORD PTR SS:[EBP-4],EAX
004B18BA   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
004B18BD   E8 8631F5FF      CALL REDBAGSM.00404A48
004B18C2   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B18C5   E8 7E31F5FF      CALL REDBAGSM.00404A48
004B18CA   33C0             XOR EAX,EAX
004B18CC   55               PUSH EBP
004B18CD   68 E21B4B00      PUSH REDBAGSM.004B1BE2
004B18D2   64:FF30          PUSH DWORD PTR FS:[EAX]
004B18D5   64:8920          MOV DWORD PTR FS:[EAX],ESP
004B18D8   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]           ;用户名
004B18DB   E8 802FF5FF      CALL REDBAGSM.00404860                 ;用户名长度
004B18E0   83F8 03          CMP EAX,3
004B18E3   7D 07            JGE SHORT REDBAGSM.004B18EC            ;用户名长度要大于3位
004B18E5   33DB             XOR EBX,EBX
004B18E7   E9 DB020000      JMP REDBAGSM.004B1BC7
004B18EC   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]           ;注册码
004B18EF   E8 6C2FF5FF      CALL REDBAGSM.00404860                 ;注册码长度
004B18F4   83F8 0F          CMP EAX,0F
004B18F7   74 07            JE SHORT REDBAGSM.004B1900             ; 注册码长度为15,在此不跳则死
重新开始,注册码输入987654321012345
004B18F9   33DB             XOR EBX,EBX
004B18FB   E9 C7020000      JMP REDBAGSM.004B1BC7
004B1900   8D45 E4          LEA EAX,DWORD PTR SS:[EBP-1C]
004B1903   50               PUSH EAX
004B1904   B9 05000000      MOV ECX,5
004B1909   BA 01000000      MOV EDX,1
004B190E   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]            ;注册码
004B1911   E8 A231F5FF      CALL REDBAGSM.00404AB8                  ;取前五位
004B1916   8B45 E4          MOV EAX,DWORD PTR SS:[EBP-1C]
004B1919   BA F81B4B00      MOV EDX,REDBAGSM.004B1BF8                ; ASCII "RBSMS"
004B191E   E8 8130F5FF      CALL REDBAGSM.004049A4                ;与RBSMS比较,不等不跳
004B1923   74 07            JE SHORT REDBAGSM.004B192C            ; 在此不跳则死,点Z标志使之跳
004B1925   33DB             XOR EBX,EBX
004B1927   E9 9B020000      JMP REDBAGSM.004B1BC7
004B192C   8D45 DC          LEA EAX,DWORD PTR SS:[EBP-24]
004B192F   50               PUSH EAX
004B1930   B9 02000000      MOV ECX,2
004B1935   BA 0D000000      MOV EDX,0D
004B193A   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]          ;取注册码
004B193D   E8 7631F5FF      CALL REDBAGSM.00404AB8                ;取注册码13,14位
004B1942   8B4D DC          MOV ECX,DWORD PTR SS:[EBP-24]
004B1945   8D45 E0          LEA EAX,DWORD PTR SS:[EBP-20]
004B1948   BA 081C4B00      MOV EDX,REDBAGSM.004B1C08
004B194D   E8 5A2FF5FF      CALL REDBAGSM.004048AC
004B1952   8B45 E0          MOV EAX,DWORD PTR SS:[EBP-20]
004B1955   E8 EE73F5FF      CALL REDBAGSM.00408D48
004B195A   8BD8             MOV EBX,EAX
004B195C   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
004B195F   E8 FC2EF5FF      CALL REDBAGSM.00404860               ;取用户名长度
004B1964   3BD8             CMP EBX,EAX                    ;注册码13,14位与长度的16进制要相等
004B1966   74 07            JE SHORT REDBAGSM.004B196F          ;不跳则死,点Z标志使之跳
004B1968   33DB             XOR EBX,EBX
004B196A   E9 58020000      JMP REDBAGSM.004B1BC7
004B196F   68 081C4B00      PUSH REDBAGSM.004B1C08
004B1974   8D45 D4          LEA EAX,DWORD PTR SS:[EBP-2C]
004B1977   50               PUSH EAX
004B1978   B9 01000000      MOV ECX,1
004B197D   BA 0A000000      MOV EDX,0A                      ;注意EDX的A
004B1982   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B1985   E8 2E31F5FF      CALL REDBAGSM.00404AB8            ;取注册码第10位到内存
004B198A   FF75 D4          PUSH DWORD PTR SS:[EBP-2C]
004B198D   8D45 D0          LEA EAX,DWORD PTR SS:[EBP-30]
004B1990   50               PUSH EAX
004B1991   B9 01000000      MOV ECX,1
004B1996   BA 0C000000      MOV EDX,0C                      ;注意EDX的C
004B199B   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B199E   E8 1531F5FF      CALL REDBAGSM.00404AB8         ;取注册码第12位到内存
004B19A3   FF75 D0          PUSH DWORD PTR SS:[EBP-30]
004B19A6   8D45 D8          LEA EAX,DWORD PTR SS:[EBP-28]
004B19A9   BA 03000000      MOV EDX,3
004B19AE   E8 6D2FF5FF      CALL REDBAGSM.00404920         ;把这两位拼合后送入SS:[EBP-28]
004B19B3   8B45 D8          MOV EAX,DWORD PTR SS:[EBP-28]
004B19B6   E8 8D73F5FF      CALL REDBAGSM.00408D48
004B19BB   8BD0             MOV EDX,EAX
004B19BD   8D45 F4          LEA EAX,DWORD PTR SS:[EBP-C]
004B19C0   E8 C32DF5FF      CALL REDBAGSM.00404788
004B19C5   8D45 CC          LEA EAX,DWORD PTR SS:[EBP-34]
004B19C8   50               PUSH EAX
004B19C9   B9 01000000      MOV ECX,1
004B19CE   BA 01000000      MOV EDX,1
004B19D3   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]      ;用户名
004B19D6   E8 DD30F5FF      CALL REDBAGSM.00404AB8            ;用户名第一个字符送入内存
004B19DB   8B55 CC          MOV EDX,DWORD PTR SS:[EBP-34]
004B19DE   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
004B19E1   E8 BE2FF5FF      CALL REDBAGSM.004049A4            ; SN第10,12位组成的数与用户名第一个字符比较                 ?
004B19E6   74 0F            JE SHORT REDBAGSM.004B19F7         ; 不跳则死,点Z标志使之跳
004B19E8   33DB             XOR EBX,EBX
004B19EA   8D45 F4          LEA EAX,DWORD PTR SS:[EBP-C]
004B19ED   E8 B62BF5FF      CALL REDBAGSM.004045A8
004B19F2   E9 D0010000      JMP REDBAGSM.004B1BC7
004B19F7   8D45 F4          LEA EAX,DWORD PTR SS:[EBP-C]
004B19FA   E8 A92BF5FF      CALL REDBAGSM.004045A8
004B19FF   68 081C4B00      PUSH REDBAGSM.004B1C08
004B1A04   8D45 C4          LEA EAX,DWORD PTR SS:[EBP-3C]
004B1A07   50               PUSH EAX
004B1A08   B9 01000000      MOV ECX,1
004B1A0D   BA 08000000      MOV EDX,8
004B1A12   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B1A15   E8 9E30F5FF      CALL REDBAGSM.00404AB8               ; 取SN第8位
004B1A1A   FF75 C4          PUSH DWORD PTR SS:[EBP-3C]
004B1A1D   8D45 C0          LEA EAX,DWORD PTR SS:[EBP-40]
004B1A20   50               PUSH EAX
004B1A21   B9 01000000      MOV ECX,1
004B1A26   BA 0B000000      MOV EDX,0B
004B1A2B   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B1A2E   E8 8530F5FF      CALL REDBAGSM.00404AB8               ; 取SN第11位
004B1A33   FF75 C0          PUSH DWORD PTR SS:[EBP-40]
004B1A36   8D45 C8          LEA EAX,DWORD PTR SS:[EBP-38]
004B1A39   BA 03000000      MOV EDX,3
004B1A3E   E8 DD2EF5FF      CALL REDBAGSM.00404920
004B1A43   8B45 C8          MOV EAX,DWORD PTR SS:[EBP-38]
004B1A46   E8 FD72F5FF      CALL REDBAGSM.00408D48
004B1A4B   8BD0             MOV EDX,EAX
004B1A4D   8D45 F0          LEA EAX,DWORD PTR SS:[EBP-10]
004B1A50   E8 332DF5FF      CALL REDBAGSM.00404788                 ; 两位生成字符
004B1A55   8D45 B8          LEA EAX,DWORD PTR SS:[EBP-48]
004B1A58   50               PUSH EAX
004B1A59   B9 01000000      MOV ECX,1
004B1A5E   BA 07000000      MOV EDX,7
004B1A63   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B1A66   E8 4D30F5FF      CALL REDBAGSM.00404AB8                 ; 取SN第7个字符
004B1A6B   8B45 B8          MOV EAX,DWORD PTR SS:[EBP-48]
004B1A6E   8D55 BC          LEA EDX,DWORD PTR SS:[EBP-44]
004B1A71   E8 026EF5FF      CALL REDBAGSM.00408878                
004B1A76   8B45 BC          MOV EAX,DWORD PTR SS:[EBP-44]
004B1A79   50               PUSH EAX
004B1A7A   8D55 B4          LEA EDX,DWORD PTR SS:[EBP-4C]
004B1A7D   8B45 F0          MOV EAX,DWORD PTR SS:[EBP-10]
004B1A80   E8 F36DF5FF      CALL REDBAGSM.00408878
004B1A85   8B55 B4          MOV EDX,DWORD PTR SS:[EBP-4C]
004B1A88   58               POP EAX
004B1A89   E8 162FF5FF      CALL REDBAGSM.004049A4                 ; 上面两数比较,相等则跳。
004B1A8E   74 0F            JE SHORT REDBAGSM.004B1A9F             ; 不跳则死
004B1A90   8D45 F0          LEA EAX,DWORD PTR SS:[EBP-10]
004B1A93   E8 102BF5FF      CALL REDBAGSM.004045A8
004B1A98   33DB             XOR EBX,EBX
004B1A9A   E9 28010000      JMP REDBAGSM.004B1BC7
004B1A9F   8D45 B0          LEA EAX,DWORD PTR SS:[EBP-50]
004B1AA2   50               PUSH EAX
004B1AA3   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
004B1AA6   E8 B52DF5FF      CALL REDBAGSM.00404860
004B1AAB   8BD0             MOV EDX,EAX
004B1AAD   4A               DEC EDX
004B1AAE   B9 01000000      MOV ECX,1
004B1AB3   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
004B1AB6   E8 FD2FF5FF      CALL REDBAGSM.00404AB8                ; 读用户名倒数第二个字符并保存
004B1ABB   8B55 B0          MOV EDX,DWORD PTR SS:[EBP-50]         ; EDX指向的是前面SN第8位、11位生成的字符
004B1ABE   8B45 F0          MOV EAX,DWORD PTR SS:[EBP-10]
004B1AC1   E8 DE2EF5FF      CALL REDBAGSM.004049A4
004B1AC6   74 0F            JE SHORT REDBAGSM.004B1AD7            ;相等跳,不跳死
004B1AC8   8D45 F0          LEA EAX,DWORD PTR SS:[EBP-10]
004B1ACB   E8 D82AF5FF      CALL REDBAGSM.004045A8
004B1AD0   33DB             XOR EBX,EBX
004B1AD2   E9 F0000000      JMP REDBAGSM.004B1BC7
004B1AD7   8D45 E8          LEA EAX,DWORD PTR SS:[EBP-18]
004B1ADA   8B55 F8          MOV EDX,DWORD PTR SS:[EBP-8]
004B1ADD   0FB652 0E        MOVZX EDX,BYTE PTR DS:[EDX+E]         ; 序列号最后一位
004B1AE1   4A               DEC EDX                               ; 减一
004B1AE2   E8 A12CF5FF      CALL REDBAGSM.00404788
004B1AE7   8D55 AC          LEA EDX,DWORD PTR SS:[EBP-54]
004B1AEA   8B45 E8          MOV EAX,DWORD PTR SS:[EBP-18]
004B1AED   E8 866DF5FF      CALL REDBAGSM.00408878
004B1AF2   8B45 AC          MOV EAX,DWORD PTR SS:[EBP-54]
004B1AF5   50               PUSH EAX
004B1AF6   8D55 A8          LEA EDX,DWORD PTR SS:[EBP-58]
004B1AF9   8B45 F0          MOV EAX,DWORD PTR SS:[EBP-10]
004B1AFC   E8 776DF5FF      CALL REDBAGSM.00408878
004B1B01   8B55 A8          MOV EDX,DWORD PTR SS:[EBP-58]      ;EDX指向的是前面用户名倒数第2个字符
004B1B04   58               POP EAX
004B1B05   E8 9A2EF5FF      CALL REDBAGSM.004049A4              ;两者比较,相等跳,不跳死
004B1B0A   74 17            JE SHORT REDBAGSM.004B1B23
004B1B0C   8D45 F0          LEA EAX,DWORD PTR SS:[EBP-10]
004B1B0F   E8 942AF5FF      CALL REDBAGSM.004045A8
004B1B14   8D45 E8          LEA EAX,DWORD PTR SS:[EBP-18]
004B1B17   E8 8C2AF5FF      CALL REDBAGSM.004045A8
004B1B1C   33DB             XOR EBX,EBX
004B1B1E   E9 A4000000      JMP REDBAGSM.004B1BC7
004B1B23   8D45 F0          LEA EAX,DWORD PTR SS:[EBP-10]
004B1B26   E8 7D2AF5FF      CALL REDBAGSM.004045A8
004B1B2B   8D45 E8          LEA EAX,DWORD PTR SS:[EBP-18]
004B1B2E   E8 752AF5FF      CALL REDBAGSM.004045A8
004B1B33   68 081C4B00      PUSH REDBAGSM.004B1C08
004B1B38   8D45 A0          LEA EAX,DWORD PTR SS:[EBP-60]
004B1B3B   50               PUSH EAX
004B1B3C   B9 01000000      MOV ECX,1
004B1B41   BA 06000000      MOV EDX,6
004B1B46   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B1B49   E8 6A2FF5FF      CALL REDBAGSM.00404AB8               ;取SN第6位
004B1B4E   FF75 A0          PUSH DWORD PTR SS:[EBP-60]
004B1B51   8D45 9C          LEA EAX,DWORD PTR SS:[EBP-64]
004B1B54   50               PUSH EAX
004B1B55   B9 01000000      MOV ECX,1
004B1B5A   BA 09000000      MOV EDX,9
004B1B5F   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
004B1B62   E8 512FF5FF      CALL REDBAGSM.00404AB8              ; 取SN第9位
004B1B67   FF75 9C          PUSH DWORD PTR SS:[EBP-64]
004B1B6A   8D45 A4          LEA EAX,DWORD PTR SS:[EBP-5C]
004B1B6D   BA 03000000      MOV EDX,3
004B1B72   E8 A92DF5FF      CALL REDBAGSM.00404920             ;两者合并成字符
004B1B77   8B45 A4          MOV EAX,DWORD PTR SS:[EBP-5C]
004B1B7A   E8 C971F5FF      CALL REDBAGSM.00408D48
004B1B7F   8BD0             MOV EDX,EAX
004B1B81   8D45 EC          LEA EAX,DWORD PTR SS:[EBP-14]
004B1B84   E8 FF2BF5FF      CALL REDBAGSM.00404788
004B1B89   8D45 98          LEA EAX,DWORD PTR SS:[EBP-68]
004B1B8C   50               PUSH EAX
004B1B8D   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
004B1B90   E8 CB2CF5FF      CALL REDBAGSM.00404860
004B1B95   8BD0             MOV EDX,EAX
004B1B97   B9 01000000      MOV ECX,1
004B1B9C   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
004B1B9F   E8 142FF5FF      CALL REDBAGSM.00404AB8            ;取用户名最后一字符
004B1BA4   8B55 98          MOV EDX,DWORD PTR SS:[EBP-68]
004B1BA7   8B45 EC          MOV EAX,DWORD PTR SS:[EBP-14]
004B1BAA   E8 F52DF5FF      CALL REDBAGSM.004049A4
004B1BAF   74 0C            JE SHORT REDBAGSM.004B1BBD       ;两比较,相等跳,不跳死
004B1BB1   8D45 EC          LEA EAX,DWORD PTR SS:[EBP-14]
004B1BB4   E8 EF29F5FF      CALL REDBAGSM.004045A8
004B1BB9   33DB             XOR EBX,EBX
004B1BBB   EB 0A            JMP SHORT REDBAGSM.004B1BC7
004B1BBD   8D45 EC          LEA EAX,DWORD PTR SS:[EBP-14]
004B1BC0   E8 E329F5FF      CALL REDBAGSM.004045A8
004B1BC5   B3 01            MOV BL,1
004B1BC7   33C0             XOR EAX,EAX
004B1BC9   5A               POP EDX
004B1BCA   59               POP ECX
004B1BCB   59               POP ECX
004B1BCC   64:8910          MOV DWORD PTR FS:[EAX],EDX
004B1BCF   68 E91B4B00      PUSH REDBAGSM.004B1BE9
004B1BD4   8D45 98          LEA EAX,DWORD PTR SS:[EBP-68]
004B1BD7   BA 1A000000      MOV EDX,1A
004B1BDC   E8 EB29F5FF      CALL REDBAGSM.004045CC
004B1BE1   C3               RETN


5.算法总结
(1)前五位是固定的,为RBSMS
(2)第6、第9位组合成用户名最后一个字符的ASCII码
(3)第7位是用户名倒数第2个字符
(4)第8位、11位是用户倒数第2个字符的ASCII码
(5)第10位、12位是用户名的第1个字符的ASCII码
(6)第13、14位是用户名长度(以十六进制表示的)
(7)最后一位是用户名倒数第2位字母加1

6.delphi注册机的主要部分:
var
  username:string;
  l:integer;
begin
  username:=Edituser.text;
  l:=length(username);
  if l>2 then
    begin
    editsn.Text :='RBSMS';
    editsn.Text := editsn.Text+inttohex(ord(username[l]) div 16,1);
    editsn.Text := editsn.Text+username[l-1];
    editsn.Text := editsn.Text+inttohex(ord(username[l-1]) div 16,1);
    editsn.Text := editsn.Text+inttohex(ord(username[l]) mod 16,1);
    editsn.Text := editsn.Text+inttohex(ord(username[1]) div 16,1);
    editsn.Text := editsn.Text+inttohex(ord(username[l-1]) mod 16,1);
    editsn.Text := editsn.Text+inttohex(ord(username[1]) mod 16,1);
    editsn.Text := editsn.Text+inttohex(l,2);
    editsn.Text := editsn.Text+upcase(chr(ord(username[l-1])+1));
    end
  else
    Edituser.text:='用户名长度不得小于3个英文字符';
end;


7.相应TC注册机源码:

#include
void main(void)
{
char *str;
int len;
clrscr();
printf("\n\n\n**********************************************************\n");
printf("            小红包花样短信 XP V4.0 注册机\n");
printf("         作者: 青锋剑客 ( 2002/10/23 )\n");
printf("            用户名长度不能小于3位且不能为汉字\n");
printf("**********************************************************\n\n");
printf("请输入你的姓名 : ");
gets(str);
len=strlen(str);
printf("\n你的序列号为:RBSMS");
printf("%X",str[len-1]/16);
printf("%c",str[len-2]);
printf("%X",str[len-2]/16);
printf("%X",str[len-1]%16);
printf("%X",str[0]/16);
printf("%X",str[len-2]%16);
printf("%X",str[0]%16);
if (len<16) printf("0");
printf("%X",len);
printf("%c\n",toupper(str[len-2]+1));
}


    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程