老文章档案 · 2003 年

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

破解教程 · 算法分析 · 2003-08-15 · 作者:人气: · 出处:赢政天下整理收藏)

软件简介

———————————————————————————————

小红包花样短信以前叫做诺基亚闪烁短信息。她能使您发送自己定制的闪烁、图片短信到诺基亚和西门子

手机!·支持一些西门子手机的图片短信·增强的短信编辑器·新增我的收藏夹,内附幽默短语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 <string.h>

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));

}

(出处:赢政天下整理收藏)

相关文章:

·语音界面2.0算法分析及注册机源码!

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·ClockWise 3.22e注册码算法分析

·CoolClock V1.02注册算法分析

·Directory Scanner v1.5 注册算法分析

·Disk Chief 1.2 简单注册算法分析

·EffeTech HTTP Sniffer 3.2注册算法分析

·eLib2.01算法分析

·EZ MP3 Recorder 1.15 注册算法分析

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史