好友
阅读权限 25
听众
最后登录 1970-1-1
本帖最后由 2666fff 于 2010-7-17 20:40 编辑
【文章标题】: STTV-视通卫星网络电视 2010 build 0709 豪华版 算法分析+注册机
【文章作者】: 2666fff
【作者邮箱】: wan0001@brauer.vic.edu.au
【软件名称】: STTV-视通卫星网络电视 2010 build 0709 豪华版
【下载地址】: 自己搜索下载
【编写语言】: Delphi
【使用工具】: OD 易语言 DEDE
【软件介绍】: STTV -视通卫星网络电视(带自由录像功能)是一款值得推荐的高速网络电视软件,集当前流行网络电视软件的优点于一身,无论从界面、功能,还是从节目质量、速度都超过其它同类软件。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
上次发了个分析半仙算命的,可能是太简单了吧,连个加分的都没。。可怜我打了这么多字,这次来个不是很简单的。
PEID查壳 STTV.exe 发现没有加壳,为Delphi编写,又用DEDE查到注册按钮的事件发生为: 00557EB8
OD载入
运行软件,输入假码,点击注册,OD断下,开始分析。
00557EB8 . 55 push ebp
00557EB9 . 8BEC mov ebp,esp
00557EBB . B9 20000000 mov ecx,0x20
00557EC0 > 6A 00 push 0x0
00557EC2 . 6A 00 push 0x0
00557EC4 . 49 dec ecx
00557EC5 .^ 75 F9 jnz short STTV.00557EC0
00557EC7 . 53 push ebx
00557EC8 . 8945 FC mov dword ptr ss:[ebp-0x4],eax
00557ECB . 33C0 xor eax,eax
00557ECD . 55 push ebp
00557ECE . 68 6C8C5500 push STTV.00558C6C
00557ED3 . 64:FF30 push dword ptr fs:[eax]
00557ED6 . 64:8920 mov dword ptr fs:[eax],esp
00557ED9 . 8B15 843C5700 mov edx,dword ptr ds:[0x573C84] ; STTV.005766E0
00557EDF . 8B12 mov edx,dword ptr ds:[edx]
00557EE1 . 8D45 E0 lea eax,dword ptr ss:[ebp-0x20]
00557EE4 . B9 848C5500 mov ecx,STTV.00558C84 ; /service/
00557EE9 . E8 4AC8EAFF call STTV.00404738
00557EEE . 8B15 783A5700 mov edx,dword ptr ds:[0x573A78] ; STTV.005766E4
00557EF4 . 8B12 mov edx,dword ptr ds:[edx]
00557EF6 . 8D45 DC lea eax,dword ptr ss:[ebp-0x24]
00557EF9 . B9 848C5500 mov ecx,STTV.00558C84 ; /service/
00557EFE . E8 35C8EAFF call STTV.00404738
00557F03 . 8D55 D4 lea edx,dword ptr ss:[ebp-0x2C]
00557F06 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00557F09 . 8B98 14030000 mov ebx,dword ptr ds:[eax+0x314]
00557F0F . 8BC3 mov eax,ebx
00557F11 . E8 0AF9F5FF call STTV.004B7820
00557F16 . 8B45 D4 mov eax,dword ptr ss:[ebp-0x2C] ; 用户名
00557F19 . 8D55 D8 lea edx,dword ptr ss:[ebp-0x28]
00557F1C . E8 0F0DEBFF call STTV.00408C30
00557F21 . 8B55 D8 mov edx,dword ptr ss:[ebp-0x28]
00557F24 . 8BC3 mov eax,ebx
00557F26 . E8 89F9F5FF call STTV.004B78B4
00557F2B . 8D55 CC lea edx,dword ptr ss:[ebp-0x34]
00557F2E . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00557F31 . 8B98 18030000 mov ebx,dword ptr ds:[eax+0x318]
00557F37 . 8BC3 mov eax,ebx
00557F39 . E8 E2F8F5FF call STTV.004B7820 ; 注册码
00557F3E . 8B45 CC mov eax,dword ptr ss:[ebp-0x34]
00557F41 . 8D55 D0 lea edx,dword ptr ss:[ebp-0x30]
00557F44 . E8 E70CEBFF call STTV.00408C30
00557F49 . 8B55 D0 mov edx,dword ptr ss:[ebp-0x30]
00557F4C . 8BC3 mov eax,ebx
00557F4E . E8 61F9F5FF call STTV.004B78B4
00557F53 . 8D55 C8 lea edx,dword ptr ss:[ebp-0x38]
00557F56 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00557F59 . 8B80 F8020000 mov eax,dword ptr ds:[eax+0x2F8]
00557F5F . E8 54ACF0FF call STTV.00462BB8
00557F64 . 8B45 C8 mov eax,dword ptr ss:[ebp-0x38]
00557F67 . BA 988C5500 mov edx,STTV.00558C98 ; 注册认证
00557F6C . E8 C7C8EAFF call STTV.00404838
00557F71 . 0F85 EF090000 jnz STTV.00558966
00557F77 . 33DB xor ebx,ebx
00557F79 . 8D55 C4 lea edx,dword ptr ss:[ebp-0x3C]
00557F7C . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00557F7F . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
00557F85 . E8 96F8F5FF call STTV.004B7820
00557F8A . 837D C4 00 cmp dword ptr ss:[ebp-0x3C],0x0
00557F8E . 74 17 je short STTV.00557FA7
00557F90 . 8D55 C0 lea edx,dword ptr ss:[ebp-0x40]
00557F93 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00557F96 . 8B80 18030000 mov eax,dword ptr ds:[eax+0x318]
00557F9C . E8 7FF8F5FF call STTV.004B7820
00557FA1 . 837D C0 00 cmp dword ptr ss:[ebp-0x40],0x0
00557FA5 . 75 16 jnz short STTV.00557FBD
00557FA7 > A1 68395700 mov eax,dword ptr ds:[0x573968]
00557FAC . 8B00 mov eax,dword ptr ds:[eax]
00557FAE . BA AC8C5500 mov edx,STTV.00558CAC ; 请输入用户名和注册码!
00557FB3 . E8 80880000 call STTV.00560838
00557FB8 . E9 DF0A0000 jmp STTV.00558A9C
00557FBD > 8D55 BC lea edx,dword ptr ss:[ebp-0x44] ; 判断是否是以下几个用户名
00557FC0 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00557FC3 . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
00557FC9 . E8 52F8F5FF call STTV.004B7820
00557FCE . 8B45 BC mov eax,dword ptr ss:[ebp-0x44]
00557FD1 . BA CC8C5500 mov edx,STTV.00558CCC ; yunfeng
00557FD6 . E8 210BEBFF call STTV.00408AFC
00557FDB . 84C0 test al,al
00557FDD . 75 66 jnz short STTV.00558045
00557FDF . 8D55 B8 lea edx,dword ptr ss:[ebp-0x48]
00557FE2 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00557FE5 . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
00557FEB . E8 30F8F5FF call STTV.004B7820
00557FF0 . 8B45 B8 mov eax,dword ptr ss:[ebp-0x48]
00557FF3 . BA DC8C5500 mov edx,STTV.00558CDC ; SUGAR8A
00557FF8 . E8 FF0AEBFF call STTV.00408AFC
00557FFD . 84C0 test al,al
00557FFF . 75 44 jnz short STTV.00558045
00558001 . 8D55 B4 lea edx,dword ptr ss:[ebp-0x4C]
00558004 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00558007 . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
0055800D . E8 0EF8F5FF call STTV.004B7820
00558012 . 8B45 B4 mov eax,dword ptr ss:[ebp-0x4C]
00558015 . BA EC8C5500 mov edx,STTV.00558CEC ; 5x54
0055801A . E8 DD0AEBFF call STTV.00408AFC
0055801F . 84C0 test al,al
00558021 . 75 22 jnz short STTV.00558045
00558023 . 8D55 B0 lea edx,dword ptr ss:[ebp-0x50]
00558026 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00558029 . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
0055802F . E8 ECF7F5FF call STTV.004B7820
00558034 . 8B45 B0 mov eax,dword ptr ss:[ebp-0x50]
00558037 . BA FC8C5500 mov edx,STTV.00558CFC ; tvrocn
0055803C . E8 BB0AEBFF call STTV.00408AFC
00558041 . 84C0 test al,al
00558043 . 74 0D je short STTV.00558052
00558045 > 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00558048 . E8 3B75F2FF call STTV.0047F588
0055804D . E9 4A0A0000 jmp STTV.00558A9C
00558052 > 8D55 A8 lea edx,dword ptr ss:[ebp-0x58]
00558055 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00558058 . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
0055805E . E8 BDF7F5FF call STTV.004B7820
00558063 . 8B55 A8 mov edx,dword ptr ss:[ebp-0x58]
00558066 . 8D4D AC lea ecx,dword ptr ss:[ebp-0x54]
00558069 . A1 68395700 mov eax,dword ptr ds:[0x573968]
0055806E . 8B00 mov eax,dword ptr ds:[eax]
00558070 . E8 C7830000 call STTV.0056043C ; 标准版注册码算法call
00558075 . 8B45 AC mov eax,dword ptr ss:[ebp-0x54]
00558078 . 50 push eax
00558079 . 8D55 A4 lea edx,dword ptr ss:[ebp-0x5C]
0055807C . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
0055807F . 8B80 18030000 mov eax,dword ptr ds:[eax+0x318]
00558085 . E8 96F7F5FF call STTV.004B7820
0055808A . 8B55 A4 mov edx,dword ptr ss:[ebp-0x5C]
0055808D . 58 pop eax
0055808E . E8 690AEBFF call STTV.00408AFC
00558093 . 84C0 test al,al
00558095 . 74 50 je short STTV.005580E7
00558097 . 8D55 A0 lea edx,dword ptr ss:[ebp-0x60]
0055809A . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
0055809D . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
005580A3 . E8 78F7F5FF call STTV.004B7820
005580A8 . 8B4D A0 mov ecx,dword ptr ss:[ebp-0x60]
005580AB . 8D45 F4 lea eax,dword ptr ss:[ebp-0xC]
005580AE . BA 0C8D5500 mov edx,STTV.00558D0C ; 软件授权:
005580B3 . E8 80C6EAFF call STTV.00404738
005580B8 . 8D45 F0 lea eax,dword ptr ss:[ebp-0x10]
005580BB . BA 208D5500 mov edx,STTV.00558D20 ; 版本类型:标准版
005580C0 . E8 FFC3EAFF call STTV.004044C4
005580C5 . 8D45 EC lea eax,dword ptr ss:[ebp-0x14]
005580C8 . BA 3C8D5500 mov edx,STTV.00558D3C ; 享受服务:享受标准版节目永久观看、节目更新、软件自动升级、酷眩\r 皮肤自动下载服务
005580CD . E8 F2C3EAFF call STTV.004044C4
005580D2 . B3 01 mov bl,0x1
005580D4 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
005580D7 . 8B80 F8020000 mov eax,dword ptr ds:[eax+0x2F8]
005580DD . BA A08D5500 mov edx,STTV.00558DA0 ; 升级为VIP版或钻石版
005580E2 . E8 01ABF0FF call STTV.00462BE8
005580E7 > 8D55 98 lea edx,dword ptr ss:[ebp-0x68]
005580EA . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
005580ED . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
005580F3 . E8 28F7F5FF call STTV.004B7820
005580F8 . 8B55 98 mov edx,dword ptr ss:[ebp-0x68]
005580FB . 8D4D 9C lea ecx,dword ptr ss:[ebp-0x64]
005580FE . A1 68395700 mov eax,dword ptr ds:[0x573968]
00558103 . 8B00 mov eax,dword ptr ds:[eax]
00558105 . E8 4A840000 call STTV.00560554 ; VIp版注册码计算call
0055810A . 8B45 9C mov eax,dword ptr ss:[ebp-0x64]
0055810D . 50 push eax
0055810E . 8D55 94 lea edx,dword ptr ss:[ebp-0x6C]
00558111 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00558114 . 8B80 18030000 mov eax,dword ptr ds:[eax+0x318]
0055811A . E8 01F7F5FF call STTV.004B7820
0055811F . 8B55 94 mov edx,dword ptr ss:[ebp-0x6C]
00558122 . 58 pop eax
00558123 . E8 D409EBFF call STTV.00408AFC
00558128 . 84C0 test al,al
0055812A . 74 50 je short STTV.0055817C
0055812C . 8D55 90 lea edx,dword ptr ss:[ebp-0x70]
0055812F . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00558132 . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
00558138 . E8 E3F6F5FF call STTV.004B7820
0055813D . 8B4D 90 mov ecx,dword ptr ss:[ebp-0x70]
00558140 . 8D45 F4 lea eax,dword ptr ss:[ebp-0xC]
00558143 . BA 0C8D5500 mov edx,STTV.00558D0C ; 软件授权:
00558148 . E8 EBC5EAFF call STTV.00404738
0055814D . 8D45 F0 lea eax,dword ptr ss:[ebp-0x10]
00558150 . BA BC8D5500 mov edx,STTV.00558DBC ; 版本类型:VIP版
00558155 . E8 6AC3EAFF call STTV.004044C4
0055815A . 8D45 EC lea eax,dword ptr ss:[ebp-0x14]
0055815D . BA D48D5500 mov edx,STTV.00558DD4 ; 享受服务:1、享受VIP节目观看、节目更新等服务一年;\r 2、享受非VIP节目永久观看、永久免费升级服务
00558162 . E8 5DC3EAFF call STTV.004044C4
00558167 . B3 01 mov bl,0x1
00558169 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
0055816C . 8B80 F8020000 mov eax,dword ptr ds:[eax+0x2F8]
00558172 . BA 448E5500 mov edx,STTV.00558E44 ; 升级为钻石版
00558177 . E8 6CAAF0FF call STTV.00462BE8
0055817C > 8D55 88 lea edx,dword ptr ss:[ebp-0x78]
0055817F . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00558182 . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
00558188 . E8 93F6F5FF call STTV.004B7820
0055818D . 8B55 88 mov edx,dword ptr ss:[ebp-0x78]
00558190 . 8D4D 8C lea ecx,dword ptr ss:[ebp-0x74]
00558193 . A1 68395700 mov eax,dword ptr ds:[0x573968]
00558198 . 8B00 mov eax,dword ptr ds:[eax]
0055819A . E8 CD840000 call STTV.0056066C ; 钻石版注册码计算call
0055819F . 8B45 8C mov eax,dword ptr ss:[ebp-0x74]
005581A2 . 50 push eax
005581A3 . 8D55 84 lea edx,dword ptr ss:[ebp-0x7C]
005581A6 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
005581A9 . 8B80 18030000 mov eax,dword ptr ds:[eax+0x318]
005581AF . E8 6CF6F5FF call STTV.004B7820
005581B4 . 8B55 84 mov edx,dword ptr ss:[ebp-0x7C]
005581B7 . 58 pop eax
005581B8 . E8 3F09EBFF call STTV.00408AFC
005581BD . 84C0 test al,al
005581BF . 74 50 je short STTV.00558211
005581C1 . 8D55 80 lea edx,dword ptr ss:[ebp-0x80]
005581C4 . 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
005581C7 . 8B80 14030000 mov eax,dword ptr ds:[eax+0x314]
005581CD . E8 4EF6F5FF call STTV.004B7820
005581D2 . 8B4D 80 mov ecx,dword ptr ss:[ebp-0x80]
005581D5 . 8D45 F4 lea eax,dword ptr ss:[ebp-0xC]
005581D8 . BA 0C8D5500 mov edx,STTV.00558D0C ; 软件授权:
005581DD . E8 56C5EAFF call STTV.00404738
005581E2 . 8D45 F0 lea eax,dword ptr ss:[ebp-0x10]
先进入第一个标准版算法CALL看看
0056043C /$ 55 push ebp
0056043D |. 8BEC mov ebp,esp
0056043F |. 6A 00 push 0x0
00560441 |. 6A 00 push 0x0
00560443 |. 6A 00 push 0x0
00560445 |. 6A 00 push 0x0
00560447 |. 6A 00 push 0x0
00560449 |. 6A 00 push 0x0
0056044B |. 53 push ebx
0056044C |. 56 push esi
0056044D |. 57 push edi
0056044E |. 894D F8 mov [local.2],ecx
00560451 |. 8955 FC mov [local.1],edx
00560454 |. 8B45 FC mov eax,[local.1]
00560457 |. E8 8044EAFF call STTV.004048DC
0056045C |. 33C0 xor eax,eax
0056045E |. 55 push ebp
0056045F |. 68 3A055600 push STTV.0056053A
00560464 |. 64:FF30 push dword ptr fs:[eax]
00560467 |. 64:8920 mov dword ptr fs:[eax],esp
0056046A |. 8D55 EC lea edx,[local.5]
0056046D |. 8B45 FC mov eax,[local.1]
00560470 |. E8 A785EAFF call STTV.00408A1C
00560475 |. 8B45 EC mov eax,[local.5]
00560478 |. 8D55 F0 lea edx,[local.4]
0056047B |. E8 B087EAFF call STTV.00408C30
00560480 |. 8B55 F0 mov edx,[local.4]
00560483 |. 8D45 FC lea eax,[local.1]
00560486 |. E8 3940EAFF call STTV.004044C4
0056048B |. 8D45 F4 lea eax,[local.3]
0056048E |. E8 993FEAFF call STTV.0040442C
00560493 |. BE 01000000 mov esi,0x1 ; esi为1
00560498 |. 8B45 FC mov eax,[local.1]
0056049B |. E8 4C42EAFF call STTV.004046EC
005604A0 |. 85C0 test eax,eax
005604A2 |. 7E 14 jle short STTV.005604B8
005604A4 |. BB 01000000 mov ebx,0x1 ; ebx为1
005604A9 |> 8B55 FC /mov edx,[local.1] ; 进注册名
005604AC |. 0FB6541A FF |movzx edx,byte ptr ds:[edx+ebx-0x1] ; 取各位的ASCII
005604B1 |. 03F2 |add esi,edx ; 加上esi的值,结果保存至esi。esi初始值为1
005604B3 |. 46 |inc esi ; esi+1
005604B4 |. 43 |inc ebx ; ebx初始值为1,ebx+1
005604B5 |. 48 |dec eax ; eax-1
005604B6 |.^ 75 F1 \jnz short STTV.005604A9
005604B8 |> BB 01000000 mov ebx,0x1 ; ebx=1
005604BD |> 8BFE /mov edi,esi ; esi的值进edi
005604BF |. 0FAFFE |imul edi,esi ; esi*edi,结果保存至edi
005604C2 |. 0FAFFE |imul edi,esi ; 再乘
005604C5 |. 0FAFFB |imul edi,ebx ; edi*ebx,初始ebx为1
005604C8 |. 0FAFFB |imul edi,ebx ; 同上
005604CB |. 0FAFFB |imul edi,ebx ; 同上
005604CE |. 8D041E |lea eax,dword ptr ds:[esi+ebx] ; esi+ebx 传到eax
005604D1 |. 0FAFF8 |imul edi,eax ; edi*eax
005604D4 |. 0FAFF8 |imul edi,eax ; 同上
005604D7 |. 0FAFF8 |imul edi,eax ; 同上
005604DA |. 8D4D E8 |lea ecx,[local.6]
005604DD |. BA 08000000 |mov edx,0x8 ; edx赋值为8
005604E2 |. 8BC7 |mov eax,edi
005604E4 |. E8 2B8CEAFF |call STTV.00409114 ; 每循环一次,edi的值,就为普通VIP注册码的每一段
005604E9 |. 8B55 E8 |mov edx,[local.6] ; 进edx
005604EC |. 8D45 F4 |lea eax,[local.3]
005604EF |. E8 0042EAFF |call STTV.004046F4
005604F4 |. 83FB 06 |cmp ebx,0x6 ; ebx与6比较
005604F7 |. 74 0D |je short STTV.00560506 ; 等于则跳过加 “-” 这一步
005604F9 |. 8D45 F4 |lea eax,[local.3]
005604FC |. BA 50055600 |mov edx,STTV.00560550 ; -
00560501 |. E8 EE41EAFF |call STTV.004046F4
00560506 |> 43 |inc ebx ; ebx+1
00560507 |. 83FB 07 |cmp ebx,0x7 ; ebx与7比较
0056050A |.^ 75 B1 \jnz short STTV.005604BD ; 循环计算直至ebx为7,即:计算6次
0056050C |. 8B45 F8 mov eax,[local.2]
0056050F |. 8B55 F4 mov edx,[local.3] ; 完整普通VIP版注册码出现
00560512 |. E8 693FEAFF call STTV.00404480
00560517 |. 33C0 xor eax,eax
00560519 |. 5A pop edx
0056051A |. 59 pop ecx
0056051B |. 59 pop ecx
0056051C |. 64:8910 mov dword ptr fs:[eax],edx
0056051F |. 68 41055600 push STTV.00560541
00560524 |> 8D45 E8 lea eax,[local.6]
00560527 |. BA 04000000 mov edx,0x4
0056052C |. E8 1F3FEAFF call STTV.00404450
00560531 |. 8D45 FC lea eax,[local.1]
00560534 |. E8 F33EEAFF call STTV.0040442C
00560539 \. C3 retn
0056053A .^ E9 6D38EAFF jmp STTV.00403DAC
0056053F .^ EB E3 jmp short STTV.00560524
00560541 . 5F pop edi
00560542 . 5E pop esi
00560543 . 5B pop ebx
00560544 . 8BE5 mov esp,ebp
00560546 . 5D pop ebp
00560547 . C3 retn
总结一下标准版的算法:
先取esi先置1,然后加上用户名第一位的ASCII,esi再+1,然后再加上第二位的ASCII,esi再加1 …… 最后加上最后一位的ASCII,再加1,
由此esi的值便固定了。
接着再将ebx置1,esi的值进入edi,3次edi*esi,在进行3次edi*ebx,再将esi的值+上ebx的值放入eax,3次edi*eax,最后得出来的结果
转为16进制就为注册码第一段,算第二段时ebx的值+1,循环6次直至6段注册码全部出现。
易语言写注册机:
.版本 2
.子程序 _按钮1_被单击
.局部变量 i, 整数型, , , 循环计次变量
.局部变量 len, 整数型, , , 用户名长度
.局部变量 name, 文本型, , , 用户名
.局部变量 a, 整数型, , , a为esi
.局部变量 b, 字节型
.局部变量 c, 整数型
.局部变量 edi, 长整数型
.局部变量 d, 整数型
.局部变量 sum, 文本型, , "6", 数组,表示出用户名的每一段
name = 编辑框1.内容
a = 1 ' esi为1
len = 取文本长度 (name) ' 用户名的长度
.计次循环首 (len, i)
b = 取代码 (name, i) ' 取各位的ASCII值
a = a + b ' 加ascii
a = a + 1 ' 加1
.计次循环尾 ()
c = 1
.判断循环首 (c < 7)
edi = a ' esi的值进edi
edi = edi × a ' esi*edi,结果保存至edi
edi = edi × a
edi = edi × c ' edi*ebx,初始ebx为1
edi = edi × c
edi = edi × c
d = c + a ' esi+ebx 传到eax
edi = edi × d ' edi*eax
edi = edi × d
edi = edi × d
sum [c] = 十到十六 (edi) ' 用一个数组来记录每次循环出的16进制值。十到十六这个是万挂作坊模块的已给命令,用来转十进制到十六
c = c + 1
.判断循环尾 ()
编辑框2.内容 = sum [1] + “-” + sum [2] + “-” + sum [3] + “-” + sum [4] + “-” + sum [5] + “-” + sum [6] ' 连接数组个值
再看VIP版的算法call
005605A3 |. 8D45 F4 lea eax,[local.3]
005605A6 |. E8 813EEAFF call STTV.0040442C
005605AB |. BE 01000000 mov esi,0x1 ; esi为1
005605B0 |. 8B45 FC mov eax,[local.1]
005605B3 |. E8 3441EAFF call STTV.004046EC
005605B8 |. 85C0 test eax,eax
005605BA |. 7E 16 jle short STTV.005605D2
005605BC |. BB 01000000 mov ebx,0x1 ; ebx为1
005605C1 |> 8B55 FC /mov edx,[local.1] ; 进用户名
005605C4 |. 0FB6541A FF |movzx edx,byte ptr ds:[edx+ebx-0x1] ; 取各位ASCII
005605C9 |. 03F2 |add esi,edx ; 各位ASCII+esi(初始为1)
005605CB |. 83C6 06 |add esi,0x6 ; esi+6
005605CE |. 43 |inc ebx ; ebx++
005605CF |. 48 |dec eax ; eax--
005605D0 |.^ 75 EF \jnz short STTV.005605C1 ; 循环至注册码所有位都取完
005605D2 |> BB 01000000 mov ebx,0x1 ; ebx为1
005605D7 |> 8BFE /mov edi,esi ; esi进edi
005605D9 |. 0FAFFE |imul edi,esi ; esi*edi
005605DC |. 0FAFFE |imul edi,esi ; 同上
005605DF |. 0FAFFB |imul edi,ebx ; edi×ebx
005605E2 |. 0FAFFB |imul edi,ebx ; 同上
005605E5 |. 0FAFFB |imul edi,ebx ; 同上
005605E8 |. 8D041E |lea eax,dword ptr ds:[esi+ebx] ; esi+ebx进eax
005605EB |. 0FAFF8 |imul edi,eax ; edi*eax
005605EE |. 0FAFF8 |imul edi,eax ; edi*eax
005605F1 |. 8D4D E8 |lea ecx,[local.6]
005605F4 |. BA 08000000 |mov edx,0x8
005605F9 |. 8BC7 |mov eax,edi
005605FB |. E8 148BEAFF |call STTV.00409114 ; 注册码每一段
00560600 |. 8B55 E8 |mov edx,[local.6]
00560603 |. 8D45 F4 |lea eax,[local.3]
00560606 |. E8 E940EAFF |call STTV.004046F4
0056060B |. 83FB 06 |cmp ebx,0x6
0056060E |. 74 0D |je short STTV.0056061D
00560610 |. 8D45 F4 |lea eax,[local.3]
00560613 |. BA 68065600 |mov edx,STTV.00560668 ; -
00560618 |. E8 D740EAFF |call STTV.004046F4
0056061D |> 43 |inc ebx
0056061E |. 83FB 07 |cmp ebx,0x7
00560621 |.^ 75 B4 \jnz short STTV.005605D7
00560623 |. 8B45 F8 mov eax,[local.2]
00560626 |. 8B55 F4 mov edx,[local.3]
00560629 |. E8 523EEAFF call STTV.00404480
0056062E |. 33C0 xor eax,eax
00560630 |. 5A pop edx
大体都一样,只有算esi时,每次循环+6而不是+1。下面算edi时,只算两次3次edi*eax。
注册机稍微改下就行
.版本 2
.子程序 _按钮2_被单击
.局部变量 i, 整数型
.局部变量 len, 整数型
.局部变量 name, 文本型
.局部变量 a, 整数型
.局部变量 b, 字节型
.局部变量 c, 整数型
.局部变量 edi, 长整数型
.局部变量 d, 整数型
.局部变量 sum, 文本型, , "6"
name = 编辑框1.内容
a = 1 ' esi为1
len = 取文本长度 (name) ' 用户名的长度
.计次循环首 (len, i)
b = 取代码 (name, i) ' 取各位的ASCII值
a = a + b ' 加ascii
a = a + 6 ' 加6
.计次循环尾 ()
c = 1
.判断循环首 (c < 7)
edi = a
edi = edi × a
edi = edi × a
edi = edi × c
edi = edi × c
edi = edi × c
d = c + a
edi = edi × d
edi = edi × d
sum [c] = 十到十六 (edi)
c = c + 1
.判断循环尾 ()
编辑框2.内容 = sum [1] + “-” + sum [2] + “-” + sum [3] + “-” + sum [4] + “-” + sum [5] + “-” + sum [6]
钻石版的CALL
005606BE |. E8 693DEAFF call STTV.0040442C
005606C3 |. BE 01000000 mov esi,0x1 ; esi置1
005606C8 |. 8B45 FC mov eax,[local.1]
005606CB |. E8 1C40EAFF call STTV.004046EC
005606D0 |. 85C0 test eax,eax
005606D2 |. 7E 16 jle short STTV.005606EA
005606D4 |. BB 01000000 mov ebx,0x1 ; ebx置1
005606D9 |> 8B55 FC /mov edx,[local.1]
005606DC |. 0FB6541A FF |movzx edx,byte ptr ds:[edx+ebx-0x1]
005606E1 |. 03F2 |add esi,edx
005606E3 |. 83C6 08 |add esi,0x8 ; esi+8
005606E6 |. 43 |inc ebx
005606E7 |. 48 |dec eax
只有esi那里每次循环是+8,其他的跟VIP版都一样。
钻石的注册机就不贴了,按VIP版的稍微改下就行。
--------------------------------------------------------------------------------
【经验总结】
最后我说一句,你们拍死我吧,这个视频软件现在就算算出注册码也没用,他还有个播放时的网络验证。。。。
给一组码
2666fff
7F26F000-421111F8-B8BD3594-9D63CDC0-443B9A30-EB3E50E8
any way, 这篇主要是分析算法。其他的就不多说了。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于2666fff, 转载请注明作者并保持文章的完整, 谢谢!
2010年07月17日 22:32:15
免费评分
查看全部评分