Ghostxp3软件下载站:安全、高速、绿色的无病毒下载站!

当前位置:GhostXP3软件下载站 > 教程 > 其它教程

社区游戏伴侣V1.0注册算法分析

时间:2023-09-10 作者: 来源:GhostXP3软件下载站 人气:

下载地址: http://www.ptcn.com/

软件简介:

该软件是用于联众和边锋游戏,帮助游戏者记牌的辅助工具。对于牌友来讲水平高的体现恐怕一多半是因为他们记牌准确,但那实在是很辛苦的事情。作者过去就因为时常打牌时走神而招来联邦的责怪。现在生活节奏加快,打牌本来是要轻松一下,如果辛苦地动脑记牌实在是不值得,况且,有些游戏记清楚是人脑根本无法做到的,有了它甚至可以边浏览网页边打牌。作者编制了这个小工具,不敢独占,愿与大家分享。它会使您打牌更加轻松,愿它可以帮助你轻松打牌,迅速成为高手。本软件独立于游戏程序,不干扰游戏的运行,不在您机器前,任何人也察觉不到它的存在,如果您把显示窗拉出显示区,您自己可能也察觉不到它的存在。

注册算法分析

说明:只分析其中边锋游戏的注册算法。联众游戏的注册算法与其原理相同。

注册用户名:aman

假注册码:123456789

0045D3BA |. 55 PUSH EBP

0045D3BB |. 68 D2D54500 PUSH aaa.0045D5D2

0045D3C0 |. 64:FF30 PUSH DWORD PTR FS:[EAX]

0045D3C3 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP

0045D3C6 |. 8D55 C8 LEA EDX,DWORD PTR SS:[EBP-38]

0045D3C9 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

0045D3CC |. 8B80 20030000 MOV EAX,DWORD PTR DS:[EAX+320]

0045D3D2 |. E8 2194FDFF CALL aaa.004367F8

0045D3D7 |. 8B45 C8 MOV EAX,DWORD PTR SS:[EBP-38]===>将假注册码移入EAX。

0045D3DA |. 33D2 XOR EDX,EDX

0045D3DC |. E8 CFB6FAFF CALL aaa.00408AB0====>将假注册码换算成十六进制。

0045D3E1 |. 8BC8 MOV ECX,EAX=====>将假注册码换算成十六进制后移入ECX。

0045D3E3 |. 81F9 00E1F505 CMP ECX,5F5E100====>比较。

0045D3E9 |. 7D 0F JGE SHORT aaa.0045D3FA====>大于等于就跳。

0045D3EB |. B8 E8D54500 MOV EAX,aaa.0045D5E8===>此处提示注册码必须9位。

0045D3F0 |. E8 072FFDFF CALL aaa.004302FC

0045D3F5 |. E9 8B010000 JMP aaa.0045D585

0045D3FA |> 8D45 C4 LEA EAX,DWORD PTR SS:[EBP-3C]

0045D3FD |. 50 PUSH EAX

0045D3FE |. 8D55 C0 LEA EDX,DWORD PTR SS:[EBP-40]

0045D401 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

0045D404 |. 8B80 20030000 MOV EAX,DWORD PTR DS:[EAX+320]

0045D40A |. E8 E993FDFF CALL aaa.004367F8

0045D40F |. 8B45 C0 MOV EAX,DWORD PTR SS:[EBP-40]====>将假注册码移入EAX。

0045D412 |. B9 05000000 MOV ECX,5===>将常数5移入ECX。

0045D417 |. 33D2 XOR EDX,EDX

0045D419 |. E8 7A75FAFF CALL aaa.00404998====>取假注册码的前5位。

0045D41E |. 8B45 C4 MOV EAX,DWORD PTR SS:[EBP-3C]====>将假注册码的前5位移入EAX。

0045D421 |. E8 4EB6FAFF CALL aaa.00408A74====>将假注册码的前5位换算成十六进制。

0045D426 |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX====>保存假注册码的前5位的十六进制值,为以后

比较作准备。

0045D429 |. 8D55 B8 LEA EDX,DWORD PTR SS:[EBP-48]

0045D42C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

0045D42F |. 8B80 1C030000 MOV EAX,DWORD PTR DS:[EAX+31C]

0045D435 |. E8 BE93FDFF CALL aaa.004367F8

0045D43A |. 8B45 B8 MOV EAX,DWORD PTR SS:[EBP-48]====>将用户名移入EAX。

0045D43D |. 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44]

0045D440 |. E8 D3B2FAFF CALL aaa.00408718====>计算用户名字符个数。

0045D445 |. 8B45 BC MOV EAX,DWORD PTR SS:[EBP-44]====>将用户名移入EAX。

0045D448 |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]

0045D44B |. E8 A4B3FAFF CALL aaa.004087F4

0045D450 |. 8D45 B4 LEA EAX,DWORD PTR SS:[EBP-4C]

0045D453 |. 50 PUSH EAX

0045D454 |. 8D55 B0 LEA EDX,DWORD PTR SS:[EBP-50]

0045D457 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

0045D45A |. 8B80 20030000 MOV EAX,DWORD PTR DS:[EAX+320]

0045D460 |. E8 9393FDFF CALL aaa.004367F8

0045D465 |. 8B45 B0 MOV EAX,DWORD PTR SS:[EBP-50]====>将假注册码移入EAX。

0045D468 |. B9 04000000 MOV ECX,4

0045D46D |. BA 06000000 MOV EDX,6

0045D472 |. E8 2175FAFF CALL aaa.00404998

0045D477 |. 8B55 B4 MOV EDX,DWORD PTR SS:[EBP-4C]====>将假注册码的后4位移入EDX。

0045D47A |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]

0045D47D |. E8 C672FAFF CALL aaa.00404748====>将用户名转换成:aman6789。计算注册码就用它。

0045D482 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]====>将aman6789移入EAX。

0045D485 |. E8 B672FAFF CALL aaa.00404740====>计算aman6789的长度。

0045D48A |. 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX====>保存长度。

0045D48D |. 8D45 CD LEA EAX,DWORD PTR SS:[EBP-33]

0045D490 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]

0045D493 |. E8 B8B9FAFF CALL aaa.00408E50

0045D498 |. BB 8A0C0000 MOV EBX,0C8A====>将常数C8A移入EBX。

0045D49D |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]====>长度移入EAX。

0045D4A0 |. 48 DEC EAX===>长度减去1。

0045D4A1 |. 85C0 TEST EAX,EAX===>测试。

0045D4A3 |. 7C 30 JL SHORT aaa.0045D4D5====>小于0则跳到出错处。

0045D4A5 |. 40 INC EAX

0045D4A6 |. 8945 EC MOV DWORD PTR SS:[EBP-14],EAX===>保存长度。

0045D4A9 |. 33C9 XOR ECX,ECX

0045D4AB |. 8D45 CD LEA EAX,DWORD PTR SS:[EBP-33]====>将aman6789移入EAX。

0045D4AE |> 33D2 /XOR EDX,EDX

0045D4B0 |. 8A10 |MOV DL,BYTE PTR DS:[EAX]

1、将用户名第一个字符a的十六进制值61移入DL。

2、将用户名第二个字符m的十六进制值6D移入DL

3、将用户名第三个字符a的十六进制值61移入DL。

4、将用户名第四个字符n的十六进制值6E移入DL。

5、将用户名第五个字符6的十六进制值36移入DL。

6、将用户名第六个字符7的十六进制值37移入DL。

7、将用户名第七个字符8的十六进制值38移入DL。

8、将用户名第八个字符9的十六进制值39移入DL。

0045D4B2 |. 0FAFD1 |IMUL EDX,ECX

1、EDX=61*0=0

2、EDX=6D*1=6D

3、EDX=61*2=C2

4、EDX=6E*3=14A

5、EDX=36*4=D8

6、EDX=37*5=113

7、EDX=38*6=150

8、EDX=39*7=18F

0045D4B5 |. 03DA |ADD EBX,EDX

1、EBX=C8A+0=C8A

2、EBX=F92+6D=FFF

3、EBX=136F+C2=1431

4、EBX=1749+14A=1893

5、EBX=1C1B+D8=1CF3

6、EBX=1EC3+113=1FD6

7、EBX=21B6+150=2306

8、EBX=24F6+18F=2685

0045D4B7 |. 8B55 F8 |MOV EDX,DWORD PTR SS:[EBP-8]===>SS中为用户名长度+4=8

0045D4BA |. 4A |DEC EDX

0045D4BB |. 83FA 00 |CMP EDX,0

0045D4BE |. 7C 0E |JL SHORT aaa.0045D4CE

0045D4C0 |> 8D1C19 |/LEA EBX,DWORD PTR DS:[ECX+EBX]

1、 a、EBX=C8A+0=C8A

b、EBX=CEB+0=CEB

c、EBX=D4C+0=D4C

d、EBX=DAD+0=DAD

e、EBX=E0E+0=E0E

f、EBX=E6F+0=E6F

g、EBX=ED0+0=ED0

h、EBX=F31+0=F31

2、 a、EBX=FFF+1=1000

b、EBX=106D+1=106E

c、EBX=10DB+1=10DC

d、EBX=1149+1=114A

e、EBX=11B7+1=11B8

f、EBX=E6F+1=E6F

g、EBX=ED0+1=ED0

h、EBX=F31+1=F31

3、 a、EBX=1431+2=1433

b、EBX=1494+2=1496

c、EBX=14F7+2=14F9

d、EBX=155A+2=155C

e、EBX=15BD+2=15BF

f、EBX=1620+2=1622

g、EBX=1683+2=1685

h、EBX=16E6+2=16E8

4、a、EBX=1893+3=1896

b、EBX=1904+3=1907

c、EBX=1975+3=1978

d、EBX=15E6+3=19E9

e、EBX=1A57+3=1A5A

f、EBX=1AC8+3=1ACB

g、EBX=1B39+3=1B3C

h、EBX=1BAA+3=1BAD

5、a、EBX=1CF3+4=1CF7

b、EBX=1D2D+4=11D31

c、EBX=1D67+4=1D6B

d、EBX=1DA1+4=1DA5

e、EBX=1DDB+4=1DDF

f、EBX=1E15+4=1E19

g、EBX=1E4F+4=1E53

h、EBX=1E89+4=1E8D

6、a、EBX=1FD6+5=1FDB

b、EBX=2012+5=2017

c、EBX=204E+5=2053

d、EBX=208A+5=208F

e、EBX=20C6+5=20CB

f、EBX=2102+5=2107

g、EBX=213E+5=2143

h、EBX=217A+5=217F

7、a、EBX=2306+6=230C

b、EBX=2344+6=234A

c、EBX=2382+6=2388

d、EBX=23C0+6=23C6

e、EBX=23FE+6=2404

f、EBX=243C+6=2442

g、EBX=247A+6=2480

h、EBX=24B8+6=24BE

8、a、EBX=2685+7=268C

b、EBX=26C5+7=26CC

c、EBX=2705+7=270C

d、EBX=2745+7=274C

e、EBX=2785+7=278C

f、EBX=27C5+7=27CC

g、EBX=2805+7=280C

h、EBX=2845+7=284C

0045D4C3 |. 0FB630 ||MOVZX ESI,BYTE PTR DS:[EAX]

1、将用户名第一个字符a的十六进制值61移入ESI。

2、将用户名第二个字符m的十六进制值6D移入ESI。

3、将用户名第三个字符a的十六进制值61移入ESI。

4、将用户名第四个字符n的十六进制值6E移入ESI。        

5、将用户名第五个字符6的十六进制值36移入ESI。

6、将用户名第六个字符7的十六进制值37移入ESI。

7、将用户名第七个字符8的十六进制值38移入ESI。

8、将用户名第八个字符9的十六进制值39移入ESI。

0045D4C6 |. 03DE ||ADD EBX,ESI

1、循环加61共8次(用户名长度+4)后EBX=F92。

a、EBX=C8A+61=CEB

b、EBX=CEB+61=D4C

c、EBX=D4C+61=DAD

d、EBX=DAD+61=E0E

e、EBX=E0E+61=E6F

f、EBX=E6F+61=ED0

g、EBX=ED0+61=F31

h、EBX=F31+61=F92

2、循环加6D共8次(用户名长度+4)后EBX=136F。

a、EBX=1000+6D=106D

b、EBX=106E+6D=10DB

c、EBX=10DC+6D=1149

d、EBX=114A+6D=11B7

e、EBX=11B8+6D=1225

f、EBX=1226+6D=1293

g、EBX=1294+6D=1301

h、EBX=1302+6D=136F

3、循环加61共8次(用户名长度+4)后EBX=1749。

a、EBX=1433+61=1494

b、EBX=1496+61=14F7

c、EBX=14F9+61=155A

d、EBX=155C+61=15BD

e、EBX=15BF+61=1620

f、EBX=1622+61=1683

g、EBX=1685+61=16E6

h、EBX=16E8+61=1749

4、 循环加6E共8次(用户名长度+4)后EBX=1C1B。

a、EBX=1896+6E=1904

b、EBX=1907+6E=1975

c、EBX=1978+6E=19E6

d、EBX=19E9+6E=1A57

e、EBX=1A5A+6E=1AC8

f、EBX=1ACB+6E=1B39

g、EBX=1B3C+6E=1BAA

h、EBX=1BAD+6E=1C1B

5、循环加36共8次(用户名长度+4)后EBX=1EC3。

a、EBX=1CF7+36=1D2D

b、EBX=1D31+36=1D67

c、EBX=1D6B+36=1DA1

d、EBX=1DA5+36=1DDB

e、EBX=1DDF+36=1E15

f、EBX=1E19+36=1E4F

g、EBX=1E53+36=1E89

h、EBX=1E8D+36=1EC3

6、EBX= 循环加37共8次(用户名长度+4)后EBX=21B6。

a、EBX=1FDB+37=2012

b、EBX=2017+37=204E

c、EBX=2053+37=208A

d、EBX=208F+37=20C6

e、EBX=20CB+37=2102

f、EBX=2107+37=213E

g、EBX=2143+37=217A

h、EBX=217F+37=21B6

7、循环加38共8次(用户名长度+4)后EBX=24F6。

a、EBX=230C+38=2344

b、EBX=234A+38=2382

c、EBX=2388+38=23C0

d、EBX=23C6+38=23FE

e、EBX=2404+38=243C

f、EBX=2442+38=247A

g、EBX=2480+38=24B8

h、EBX=24BE+38=24F6

8、循环加39共8次(用户名长度+4)后EBX=2885。

a、 EBX=268C+39=26C5

b、EBX=26CC+39=2705

c、EBX=270C+39=2745

d、EBX=274C+39=2785

e、EBX=278C+39=27C5

f、EBX=27CC+39=2805

g、EBX=280C+39=2845

h、EBX=284C+39=2885

0045D4C8 |. 4A ||DEC EDX

0045D4C9 |. 83FA FF ||CMP EDX,-1

0045D4CC |.^ 75 F2 |\JNZ SHORT aaa.0045D4C0

0045D4CE |> 41 |INC ECX===>初始值为0,后每循环一次自加1。

0045D4CF |. 40 |INC EAX

0045D4D0 |. FF4D EC |DEC DWORD PTR SS:[EBP-14]

0045D4D3 |.^ 75 D9 \JNZ SHORT aaa.0045D4AE

0045D4D5 |> 85DB TEST EBX,EBX====>EBX=2885。

0045D4D7 |. 7D 0D JGE SHORT aaa.0045D4E6

0045D4D9 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]

0045D4DC |. BA 04D64500 MOV EDX,aaa.0045D604 ; ASCII "gg"

0045D4E1 |. E8 3A70FAFF CALL aaa.00404520

0045D4E6 |> 8BC3 MOV EAX,EBX

0045D4E8 |. B9 A0860100 MOV ECX,186A0====>将186A0H(即十进制100000)移入ECX。

0045D4ED |. 99 CDQ

0045D4EE |. F7F9 IDIV ECX====>除法运算后EDX=2885。

0045D4F0 |. 8BDA MOV EBX,EDX====>余.2885移入EBX。

0045D4F2 |. 81FB 10270000 CMP EBX,2710====>比较。

0045D4F8 |. 7D 06 JGE SHORT aaa.0045D500====>大于等于则跳。

0045D4FA |. 81C3 80380100 ADD EBX,13880====>否则加13880。

0045D500 |> 3B5D F0 CMP EBX,DWORD PTR SS:[EBP-10]====>这里就是真假注册码(前5位)比较处。

0045D503 |. 74 0C JE SHORT aaa.0045D511====>相等则OK。

0045D505 |. B8 10D64500 MOV EAX,aaa.0045D610

0045D50A |. E8 ED2DFDFF CALL aaa.004302FC====>出错提示。

0045D50F |. EB 74 JMP SHORT aaa.0045D585

0045D511 |> B2 01 MOV DL,1

0045D513 |. A1 C4B44500 MOV EAX,DWORD PTR DS:[45B4C4]

0045D518 |. E8 A7E0FFFF CALL aaa.0045B5C4

0045D51D |. 8BD8 MOV EBX,EAX

0045D51F |. B1 01 MOV CL,1

0045D521 |. BA 5CD64500 MOV EDX,aaa.0045D65C; ASCII "Software\zgsq\bfUser"==>将注册信息加入注册表。

0045D526 |. 8BC3 MOV EAX,EBX

0045D528 |. E8 9BE1FFFF CALL aaa.0045B6C8

0045D52D |. 8D55 AC LEA EDX,DWORD PTR SS:[EBP-54]

0045D530 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

0045D533 |. 8B80 20030000 MOV EAX,DWORD PTR DS:[EAX+320]

0045D539 |. E8 BA92FDFF CALL aaa.004367F8

0045D53E |. 8B45 AC MOV EAX,DWORD PTR SS:[EBP-54]

0045D541 |. 50 PUSH EAX

0045D542 |. 8D55 A0 LEA EDX,DWORD PTR SS:[EBP-60]

0045D545 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

0045D548 |. 8B80 1C030000 MOV EAX,DWORD PTR DS:[EAX+31C]

0045D54E |. E8 A592FDFF CALL aaa.004367F8

0045D553 |. 8B45 A0 MOV EAX,DWORD PTR SS:[EBP-60]

0045D556 |. 8D55 A4 LEA EDX,DWORD PTR SS:[EBP-5C]

0045D559 |. E8 BAB1FAFF CALL aaa.00408718

0045D55E |. 8B45 A4 MOV EAX,DWORD PTR SS:[EBP-5C]

0045D561 |. 8D55 A8 LEA EDX,DWORD PTR SS:[EBP-58]

0045D564 |. E8 8BB2FAFF CALL aaa.004087F4

0045D569 |. 8B55 A8 MOV EDX,DWORD PTR SS:[EBP-58]

0045D56C |. 8BC3 MOV EAX,EBX

0045D56E |. 59 POP ECX

0045D56F |. E8 10E3FFFF CALL aaa.0045B884

0045D574 |. 8BC3 MOV EAX,EBX

0045D576 |. E8 1D61FAFF CALL aaa.00403698

0045D57B |. B8 7CD64500 MOV EAX,aaa.0045D67C

0045D580 |. E8 772DFDFF CALL aaa.004302FC

0045D585 |> 33C0 XOR EAX,EAX

0045D587 |. 5A POP EDX

0045D588 |. 59 POP ECX

0045D589 |. 59 POP ECX

总结:

1、注册码一定要9位,其中后4位参加运算。

2、参加运算的字符串为注册名字符+假注册码的后4位。如例子中用户名aman,假注册码123456789,转换后成为aman6789。

3、计算所得的值转换成十进制后再加上假注册码的后4位就是真正的注册码了。如上例中计算所得的值是2885,转换成十进制为10373,再加上假注册码的后4位即6789,成为103736789。这就是真正的注册码。

相关文章

网友评论(共有 0 条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

评论列表