首页
社区
课程
招聘
[原创]UXXX?毒专家 单机版 内存注册机制作+算法分析
发表于: 2014-8-2 20:38 8033

[原创]UXXX?毒专家 单机版 内存注册机制作+算法分析

2014-8-2 20:38
8033
Ultra 字符串参考,项目 3800
 地址=0057FD32
 反汇编=mov edx,XXXXXXXX.0057FE14
 文本字符串=已注册
0057FCA0  /$  55            push ebp
0057FCA1  |.  8BEC          mov ebp,esp
0057FCA3  |.  33C9          xor ecx,ecx
0057FCA5  |.  51            push ecx
0057FCA6  |.  51            push ecx
0057FCA7  |.  51            push ecx
0057FCA8  |.  51            push ecx
0057FCA9  |.  51            push ecx
0057FCAA  |.  51            push ecx
0057FCAB  |.  51            push ecx
0057FCAC  |.  53            push ebx
0057FCAD  |.  56            push esi
0057FCAE  |.  57            push edi
0057FCAF  |.  8BD8          mov ebx,eax
0057FCB1  |.  33C0          xor eax,eax
0057FCB3  |.  55            push ebp
0057FCB4  |.  68 FBFD5700   push XXXXXXXX.0057FDFB
0057FCB9  |.  64:FF30       push dword ptr fs:[eax]
0057FCBC  |.  64:8920       mov dword ptr fs:[eax],esp
0057FCBF  |.  B2 01         mov dl,1
0057FCC1  |.  A1 3CEB4D00   mov eax,dword ptr ds:[4DEB3C]
0057FCC6  |.  E8 99EFF5FF   call XXXXXXXX.004DEC64
0057FCCB  |.  8BF0          mov esi,eax
0057FCCD  |.  8D55 F4       lea edx,dword ptr ss:[ebp-C]
0057FCD0  |.  8BC6          mov eax,esi
0057FCD2  |.  E8 D9F9F5FF   call XXXXXXXX.004DF6B0
0057FCD7  |.  8B55 F4       mov edx,dword ptr ss:[ebp-C]
0057FCDA  |.  8B83 3C040000 mov eax,dword ptr ds:[ebx+43C]
0057FCE0  |.  E8 3B3BEDFF   call XXXXXXXX.00453820
0057FCE5  |.  8BC6          mov eax,esi
0057FCE7  |.  E8 00F6F5FF   call XXXXXXXX.004DF2EC                     ;  关键Call
0057FCEC  |.  2C 01         sub al,1                                   ;  Switch (cases 0..3)
0057FCEE  |.  72 0D         jb short XXXXXXXX.0057FCFD
0057FCF0  |.  2C 02         sub al,2
0057FCF2  |.  0F84 B5000000 je XXXXXXXX.0057FDAD
0057FCF8  |.  E9 DC000000   jmp XXXXXXXX.0057FDD9
0057FCFD  |>  8B83 1C040000 mov eax,dword ptr ds:[ebx+41C]             ;  Case 0 of switch 0057FCEC
0057FD03  |.  E8 7C71EDFF   call XXXXXXXX.00456E84
0057FD08  |.  8BF8          mov edi,eax
0057FD0A  |.  4F            dec edi
0057FD0B  |.  85FF          test edi,edi
0057FD0D  |.  7C 23         jl short XXXXXXXX.0057FD32
0057FD0F  |.  47            inc edi
0057FD10  |.  C745 F8 00000>mov dword ptr ss:[ebp-8],0
0057FD17  |>  8B55 F8       /mov edx,dword ptr ss:[ebp-8]
0057FD1A  |.  8B83 1C040000 |mov eax,dword ptr ds:[ebx+41C]
0057FD20  |.  E8 2371EDFF   |call XXXXXXXX.00456E48
0057FD25  |.  33D2          |xor edx,edx
0057FD27  |.  8B08          |mov ecx,dword ptr ds:[eax]
0057FD29  |.  FF51 64       |call dword ptr ds:[ecx+64]
0057FD2C  |.  FF45 F8       |inc dword ptr ss:[ebp-8]
0057FD2F  |.  4F            |dec edi
0057FD30  |.^ 75 E5         \jnz short XXXXXXXX.0057FD17
0057FD32  |>  BA 14FE5700   mov edx,XXXXXXXX.0057FE14                  ;  已注册 //我们到了这里
0057FD37  |.  8B83 34040000 mov eax,dword ptr ds:[ebx+434]
0057FD3D  |.  E8 DE3AEDFF   call XXXXXXXX.00453820
0057FD42  |.  8D55 F0       lea edx,dword ptr ss:[ebp-10]
0057FD45  |.  8BC6          mov eax,esi
0057FD47  |.  E8 ACFDF5FF   call XXXXXXXX.004DFAF8
0057FD4C  |.  8B55 F0       mov edx,dword ptr ss:[ebp-10]
0057FD4F  |.  8B83 40040000 mov eax,dword ptr ds:[ebx+440]
0057FD55  |.  E8 C63AEDFF   call XXXXXXXX.00453820
0057FD5A  |.  C645 FF 01    mov byte ptr ss:[ebp-1],1
0057FD5E  |.  8D55 EC       lea edx,dword ptr ss:[ebp-14]
0057FD61  |.  8BC6          mov eax,esi
0057FD63  |.  E8 00FDF5FF   call XXXXXXXX.004DFA68
0057FD68  |.  8B55 EC       mov edx,dword ptr ss:[ebp-14]
0057FD6B  |.  8B83 40060000 mov eax,dword ptr ds:[ebx+640]
0057FD71  |.  E8 AA3AEDFF   call XXXXXXXX.00453820
0057FD76  |.  8D55 E8       lea edx,dword ptr ss:[ebp-18]
0057FD79  |.  B8 24FE5700   mov eax,XXXXXXXX.0057FE24                  ;  ASCII "66"
0057FD7E  |.  E8 FD05F9FF   call XXXXXXXX.00510380
0057FD83  |.  8B55 E8       mov edx,dword ptr ss:[ebp-18]
0057FD86  |.  8B83 98050000 mov eax,dword ptr ds:[ebx+598]
0057FD8C  |.  E8 8F3AEDFF   call XXXXXXXX.00453820
0057FD91  |.  33D2          xor edx,edx
0057FD93  |.  8B83 9C050000 mov eax,dword ptr ds:[ebx+59C]
0057FD99  |.  E8 7239EDFF   call XXXXXXXX.00453710
0057FD9E  |.  33D2          xor edx,edx
0057FDA0  |.  8B83 A0050000 mov eax,dword ptr ds:[ebx+5A0]
0057FDA6  |.  E8 6539EDFF   call XXXXXXXX.00453710
0057FDAB  |.  EB 2C         jmp short XXXXXXXX.0057FDD9
0057FDAD  |>  C645 FF 00    mov byte ptr ss:[ebp-1],0                  ;  Case 3 of switch 0057FCEC
0057FDB1  |.  8D55 E4       lea edx,dword ptr ss:[ebp-1C]
0057FDB4  |.  B8 30FE5700   mov eax,XXXXXXXX.0057FE30                  ;  ASCII "67"
0057FDB9  |.  E8 C205F9FF   call XXXXXXXX.00510380
0057FDBE  |.  8B55 E4       mov edx,dword ptr ss:[ebp-1C]
0057FDC1  |.  8B83 98050000 mov eax,dword ptr ds:[ebx+598]
0057FDC7  |.  E8 543AEDFF   call XXXXXXXX.00453820
0057FDCC  |.  B2 01         mov dl,1
0057FDCE  |.  8B83 9C050000 mov eax,dword ptr ds:[ebx+59C]
0057FDD4  |.  E8 3739EDFF   call XXXXXXXX.00453710
0057FDD9  |>  8BC6          mov eax,esi                                ;  Default case of switch 0057FCEC
0057FDDB  |.  E8 4843E8FF   call XXXXXXXX.00404128
0057FDE0  |.  33C0          xor eax,eax
0057FDE2  |.  5A            pop edx
0057FDE3  |.  59            pop ecx
0057FDE4  |.  59            pop ecx
0057FDE5  |.  64:8910       mov dword ptr fs:[eax],edx
0057FDE8  |.  68 02FE5700   push XXXXXXXX.0057FE02
0057FDED  |>  8D45 E4       lea eax,dword ptr ss:[ebp-1C]
0057FDF0  |.  BA 05000000   mov edx,5
0057FDF5  |.  E8 DE51E8FF   call XXXXXXXX.00404FD8
0057FDFA  \.  C3            retn
004DF2EC  /$  55            push ebp
004DF2ED  |.  8BEC          mov ebp,esp
004DF2EF  |.  B9 0B000000   mov ecx,0B
004DF2F4  |>  6A 00         /push 0
004DF2F6  |.  6A 00         |push 0
004DF2F8  |.  49            |dec ecx
004DF2F9  |.^ 75 F9         \jnz short XXXXXXXX.004DF2F4
004DF2FB  |.  53            push ebx
004DF2FC  |.  8BD8          mov ebx,eax
004DF2FE  |.  33C0          xor eax,eax
004DF300  |.  55            push ebp
004DF301  |.  68 ADF44D00   push XXXXXXXX.004DF4AD
004DF306  |.  64:FF30       push dword ptr fs:[eax]
004DF309  |.  64:8920       mov dword ptr fs:[eax],esp
004DF30C  |.  8D55 F8       lea edx,dword ptr ss:[ebp-8]
004DF30F  |.  8BC3          mov eax,ebx
004DF311  |.  E8 E2070000   call XXXXXXXX.004DFAF8
004DF316  |.  8B45 F8       mov eax,dword ptr ss:[ebp-8]
004DF319  |.  8D55 FC       lea edx,dword ptr ss:[ebp-4]
004DF31C  |.  E8 A3A7F2FF   call XXXXXXXX.00409AC4
004DF321  |.  8B45 FC       mov eax,dword ptr ss:[ebp-4]
004DF324  |.  BA C4F44D00   mov edx,XXXXXXXX.004DF4C4                  ;  ASCII "VIYVUQU" //假码,可能是陷阱
004DF329  |.  E8 9260F2FF   call XXXXXXXX.004053C0
004DF32E  |.  0F84 28010000 je XXXXXXXX.004DF45C
004DF334  |.  8D55 F0       lea edx,dword ptr ss:[ebp-10]
004DF337  |.  8BC3          mov eax,ebx
004DF339  |.  E8 BA070000   call XXXXXXXX.004DFAF8
004DF33E  |.  8B45 F0       mov eax,dword ptr ss:[ebp-10]
004DF341  |.  8D55 F4       lea edx,dword ptr ss:[ebp-C]
004DF344  |.  E8 7BA7F2FF   call XXXXXXXX.00409AC4
004DF349  |.  8B45 F4       mov eax,dword ptr ss:[ebp-C]
004DF34C  |.  50            push eax
004DF34D  |.  8D55 E8       lea edx,dword ptr ss:[ebp-18]
004DF350  |.  8BC3          mov eax,ebx
004DF352  |.  E8 05030000   call XXXXXXXX.004DF65C                     ;  似算法
004DF357  |.  8B45 E8       mov eax,dword ptr ss:[ebp-18]              ;   |
004DF35A  |.  8D55 EC       lea edx,dword ptr ss:[ebp-14]              ;   |
004DF35D  |.  E8 62A7F2FF   call XXXXXXXX.00409AC4                     ;  -|
004DF362  |.  8B55 EC       mov edx,dword ptr ss:[ebp-14]
004DF365  |.  58            pop eax
004DF366  |.  E8 5560F2FF   call XXXXXXXX.004053C0
004DF36B  |.  0F84 E7000000 je XXXXXXXX.004DF458
......
堆栈 ss:[0012FD7C]=013871A8, (ASCII "IJOEIHUNOOQ")
eax=0012FD1C

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 3
支持
分享
最新回复 (6)
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
XXX毒专家````呵呵
2014-8-2 21:29
0
雪    币: 77
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
(接1L):
<Part 3>第三部分,编写算法注册机
我看别人编写算法注册机都是用C, Delphi, ...... 但是我都不会。我唯独只会一点点AS2,Flash里的,所以我就拿它来写写看。(其实我学AS2也是半桶水.)

**发现代码有问题,我在这里改了一下,不知道是否和我做的最终修复版一样,因为Fla文件我没留下来,现在我暂时凭记忆把东西补全。**

写代码前准备工作:
分别新建以下命名(声明)的动态文本:
h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15,h16,h17,h18,h19,h20,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,tmp,tmptmp,tstv.
分别新建以下命名(声明)的影片剪辑:
ObO,Rcnt,LRc.
分别在以下影片剪辑里面创建以下命名(声明)的动态文本:
ObO里面:
ticnt.
Rcnt里面:
rdmv.
LRc里面:
LRcnt.
然后就是代码了:
按“生成”时的代码:
//**************************************************
//**************************************************
//***** Code by dsong @ 看雪论坛[bbs.pediy.com] *****
//**************************************************
//**************************************************

on (release) {	
	//检验机器码是否<1位:
	if(length(_root.HdwCod.text) < 1){
		_root.RegCod.text = "无效的机器码";
	}
	else{
		/* 刚学AS2,只会用这种办法把字符串一个一个分开了.
		 * 有些人可能会问我为什么不用_global,是因为我不太会用,
		 * 而且我觉得这样用.text和.value来表示会清晰一点.
		 * 你可以认为我**.
		 */
		_root.h1.text = _root.HdwCod.text.substr(0,1);
		_root.h2.text = _root.HdwCod.text.substr(1,1);
		_root.h3.text = _root.HdwCod.text.substr(2,1);
		_root.h4.text = _root.HdwCod.text.substr(3,1);
		_root.h5.text = _root.HdwCod.text.substr(4,1);
		_root.h6.text = _root.HdwCod.text.substr(5,1);
		_root.h7.text = _root.HdwCod.text.substr(6,1);
		_root.h8.text = _root.HdwCod.text.substr(7,1);
		_root.h9.text = _root.HdwCod.text.substr(8,1);
		_root.h10.text = _root.HdwCod.text.substr(9,1);
		_root.h11.text = _root.HdwCod.text.substr(10,1);
		_root.h12.text = _root.HdwCod.text.substr(11,1);
		_root.h13.text = _root.HdwCod.text.substr(12,1);
		_root.h14.text = _root.HdwCod.text.substr(13, 1);
		_root.h15.text = _root.HdwCod.text.substr(14, 1);
		_root.h16.text = _root.HdwCod.text.substr(15, 1);
		_root.h17.text = _root.HdwCod.text.substr(16, 1);
		_root.h18.text = _root.HdwCod.text.substr(17, 1);
		_root.h19.text = _root.HdwCod.text.substr(18, 1);
		_root.h20.text = _root.HdwCod.text.substr(19, 1);
		
		//校验数字初始
		_root.tstv.value = 0;
		
		//检验硬件代码有效性(这里代码我不会写了,只能用了最愚笨的办法,如果有高人指点我将感到非常荣幸.)
		if (_root.h1.text == "" || _root.h1.text == "." || _root.h1.text == "0" || _root.h1.text == "1" || _root.h1.text == "2" || _root.h1.text == "3" || _root.h1.text == "4" || _root.h1.text == "5" || _root.h1.text == "6" || _root.h1.text == "7" || _root.h1.text == "8" || _root.h1.text == "9" || _root.h1.text == "A" || _root.h1.text == "B" || _root.h1.text == "C" || _root.h1.text == "D" || _root.h1.text == "E" || _root.h1.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h2.text == "" || _root.h2.text == "." || _root.h2.text == "0" || _root.h2.text == "1" || _root.h2.text == "2" || _root.h2.text == "3" || _root.h2.text == "4" || _root.h2.text == "5" || _root.h2.text == "6" || _root.h2.text == "7" || _root.h2.text == "8" || _root.h2.text == "9" || _root.h2.text == "A" || _root.h2.text == "B" || _root.h2.text == "C" || _root.h2.text == "D" || _root.h2.text == "E" || _root.h2.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h3.text == "" || _root.h3.text == "." || _root.h3.text == "0" || _root.h3.text == "1" || _root.h3.text == "2" || _root.h3.text == "3" || _root.h3.text == "4" || _root.h3.text == "5" || _root.h3.text == "6" || _root.h3.text == "7" || _root.h3.text == "8" || _root.h3.text == "9" || _root.h3.text == "A" || _root.h3.text == "B" || _root.h3.text == "C" || _root.h3.text == "D" || _root.h3.text == "E" || _root.h3.text == "F"){
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h4.text == "" || _root.h4.text == "." || _root.h4.text == "0" || _root.h4.text == "1" || _root.h4.text == "2" || _root.h4.text == "3" || _root.h4.text == "4" || _root.h4.text == "5" || _root.h4.text == "6" || _root.h4.text == "7" || _root.h4.text == "8" || _root.h4.text == "9" || _root.h4.text == "A" || _root.h4.text == "B" || _root.h4.text == "C" || _root.h4.text == "D" || _root.h4.text == "E" || _root.h4.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h5.text == "" || _root.h5.text == "." || _root.h5.text == "0" || _root.h5.text == "1" || _root.h5.text == "2" || _root.h5.text == "3" || _root.h5.text == "4" || _root.h5.text == "5" || _root.h5.text == "6" || _root.h5.text == "7" || _root.h5.text == "8" || _root.h5.text == "9" || _root.h5.text == "A" || _root.h5.text == "B" || _root.h5.text == "C" || _root.h5.text == "D" || _root.h5.text == "E" || _root.h5.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h6.text == "" || _root.h6.text == "." || _root.h6.text == "0" || _root.h6.text == "1" || _root.h6.text == "2" || _root.h6.text == "3" || _root.h6.text == "4" || _root.h6.text == "5" || _root.h6.text == "6" || _root.h6.text == "7" || _root.h6.text == "8" || _root.h6.text == "9" || _root.h6.text == "A" || _root.h6.text == "B" || _root.h6.text == "C" || _root.h6.text == "D" || _root.h6.text == "E" || _root.h6.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h7.text == "" || _root.h7.text == "." || _root.h7.text == "0" || _root.h7.text == "1" || _root.h7.text == "2" || _root.h7.text == "3" || _root.h7.text == "4" || _root.h7.text == "5" || _root.h7.text == "6" || _root.h7.text == "7" || _root.h7.text == "8" || _root.h7.text == "9" || _root.h7.text == "A" || _root.h7.text == "B" || _root.h7.text == "C" || _root.h7.text == "D" || _root.h7.text == "E" || _root.h7.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h8.text == "" || _root.h8.text == "." || _root.h8.text == "0" || _root.h8.text == "1" || _root.h8.text == "2" || _root.h8.text == "3" || _root.h8.text == "4" || _root.h8.text == "5" || _root.h8.text == "6" || _root.h8.text == "7" || _root.h8.text == "8" || _root.h8.text == "9" || _root.h8.text == "A" || _root.h8.text == "B" || _root.h8.text == "C" || _root.h8.text == "D" || _root.h8.text == "E" || _root.h8.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h9.text == "" || _root.h9.text == "." || _root.h9.text == "0" || _root.h9.text == "1" || _root.h9.text == "2" || _root.h9.text == "3" || _root.h9.text == "4" || _root.h9.text == "5" || _root.h9.text == "6" || _root.h9.text == "7" || _root.h9.text == "8" || _root.h9.text == "9" || _root.h9.text == "A" || _root.h9.text == "B" || _root.h9.text == "C" || _root.h9.text == "D" || _root.h9.text == "E" || _root.h9.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h10.text == "" || _root.h10.text == "." || _root.h10.text == "0" || _root.h10.text == "1" || _root.h10.text == "2" || _root.h10.text == "3" || _root.h10.text == "4" || _root.h10.text == "5" || _root.h10.text == "6" || _root.h10.text == "7" || _root.h10.text == "8" || _root.h10.text == "9" || _root.h10.text == "A" || _root.h10.text == "B" || _root.h10.text == "C" || _root.h10.text == "D" || _root.h10.text == "E" || _root.h10.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h11.text == "" || _root.h11.text == "." || _root.h11.text == "0" || _root.h11.text == "1" || _root.h11.text == "2" || _root.h11.text == "3" || _root.h11.text == "4" || _root.h11.text == "5" || _root.h11.text == "6" || _root.h11.text == "7" || _root.h11.text == "8" || _root.h11.text == "9" || _root.h11.text == "A" || _root.h11.text == "B" || _root.h11.text == "C" || _root.h11.text == "D" || _root.h11.text == "E" || _root.h11.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h12.text == "" || _root.h12.text == "." || _root.h12.text == "0" || _root.h12.text == "1" || _root.h12.text == "2" || _root.h12.text == "3" || _root.h12.text == "4" || _root.h12.text == "5" || _root.h12.text == "6" || _root.h12.text == "7" || _root.h12.text == "8" || _root.h12.text == "9" || _root.h12.text == "A" || _root.h12.text == "B" || _root.h12.text == "C" || _root.h12.text == "D" || _root.h12.text == "E" || _root.h12.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h13.text == "" || _root.h13.text == "." || _root.h13.text == "0" || _root.h13.text == "1" || _root.h13.text == "2" || _root.h13.text == "3" || _root.h13.text == "4" || _root.h13.text == "5" || _root.h13.text == "6" || _root.h13.text == "7" || _root.h13.text == "8" || _root.h13.text == "9" || _root.h13.text == "A" || _root.h13.text == "B" || _root.h13.text == "C" || _root.h13.text == "D" || _root.h13.text == "E" || _root.h13.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h14.text == "" || _root.h14.text == "." || _root.h14.text == "0" || _root.h14.text == "1" || _root.h14.text == "2" || _root.h14.text == "3" || _root.h14.text == "4" || _root.h14.text == "5" || _root.h14.text == "6" || _root.h14.text == "7" || _root.h14.text == "8" || _root.h14.text == "9" || _root.h14.text == "A" || _root.h14.text == "B" || _root.h14.text == "C" || _root.h14.text == "D" || _root.h14.text == "E" || _root.h14.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h15.text == "" || _root.h15.text == "." || _root.h15.text == "0" || _root.h15.text == "1" || _root.h15.text == "2" || _root.h15.text == "3" || _root.h15.text == "4" || _root.h15.text == "5" || _root.h15.text == "6" || _root.h15.text == "7" || _root.h15.text == "8" || _root.h15.text == "9" || _root.h15.text == "A" || _root.h15.text == "B" || _root.h15.text == "C" || _root.h15.text == "D" || _root.h15.text == "E" || _root.h15.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h16.text == "" || _root.h16.text == "." || _root.h16.text == "0" || _root.h16.text == "1" || _root.h16.text == "2" || _root.h16.text == "3" || _root.h16.text == "4" || _root.h16.text == "5" || _root.h16.text == "6" || _root.h16.text == "7" || _root.h16.text == "8" || _root.h16.text == "9" || _root.h16.text == "A" || _root.h16.text == "B" || _root.h16.text == "C" || _root.h16.text == "D" || _root.h16.text == "E" || _root.h16.text == "F") 
		{
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h17.text == "" || _root.h17.text == "." || _root.h17.text == "0" || _root.h17.text == "1" || _root.h17.text == "2" || _root.h17.text == "3" || _root.h17.text == "4" || _root.h17.text == "5" || _root.h17.text == "6" || _root.h17.text == "7" || _root.h17.text == "8" || _root.h17.text == "9" || _root.h17.text == "A" || _root.h17.text == "B" || _root.h17.text == "C" || _root.h17.text == "D" || _root.h17.text == "E" || _root.h17.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h18.text == "" || _root.h18.text == "." || _root.h18.text == "0" || _root.h18.text == "1" || _root.h18.text == "2" || _root.h18.text == "3" || _root.h18.text == "4" || _root.h18.text == "5" || _root.h18.text == "6" || _root.h18.text == "7" || _root.h18.text == "8" || _root.h18.text == "9" || _root.h18.text == "A" || _root.h18.text == "B" || _root.h18.text == "C" || _root.h18.text == "D" || _root.h18.text == "E" || _root.h18.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h19.text == "" || _root.h19.text == "." || _root.h19.text == "0" || _root.h19.text == "1" || _root.h19.text == "2" || _root.h19.text == "3" || _root.h19.text == "4" || _root.h19.text == "5" || _root.h19.text == "6" || _root.h19.text == "7" || _root.h19.text == "8" || _root.h19.text == "9" || _root.h19.text == "A" || _root.h19.text == "B" || _root.h19.text == "C" || _root.h19.text == "D" || _root.h19.text == "E" || _root.h19.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if (_root.h20.text == "" || _root.h20.text == "." || _root.h20.text == "0" || _root.h20.text == "1" || _root.h20.text == "2" || _root.h20.text == "3" || _root.h20.text == "4" || _root.h20.text == "5" || _root.h20.text == "6" || _root.h20.text == "7" || _root.h20.text == "8" || _root.h20.text == "9" || _root.h20.text == "A" || _root.h20.text == "B" || _root.h20.text == "C" || _root.h20.text == "D" || _root.h20.text == "E" || _root.h20.text == "F") {
			_root.tstv.value = _root.tstv.value + 1;
		}
		if(_root.tstv.value < 20){
			_root.RegCod.text = "机器码无效,请检查,字母是区分大小写的."
		}
		else{
			//召唤算法程序
			_root.ObO.ticnt.value = 0;
			_root.Rcnt.rdmv.value = 1;
			_root.LRc.LRcnt.value = 0;
			_root.ObO.gotoAndStop(2);
		}
	}
}
//看完代码勿喷,你可以认为我不会编写AS. :-)

影片剪辑里(第二帧)的代码:(第一帧里面都是"stop();",我就不重复写了吧.)
ObO里:
stop();

//**************************************************
//**************************************************
//***** Code by dsong @ 看雪论坛[bbs.pediy.com] *****
//**************************************************
//**************************************************

//开始一个一个分配
if(this.ticnt.value == length(_root.HdwCod.text)){
	_root.RegCod.text = _root.r1.text + _root.r2.text + _root.r3.text + _root.r4.text + _root.r5.text + _root.r6.text + _root.r7.text + _root.r8.text + _root.r9.text + _root.r10.text + _root.r11.text + _root.r12.text + _root.r13.text + _root.r14.text + _root.r15.text + _root.r16.text + _root.r17.text + _root.r18.text + _root.r19.text + _root.r20.text ;
	
	//清除痕迹(否则可能在连续算位数不同时候出错)
	_root.h1.text = "";
	_root.h2.text = "";
	_root.h3.text = "";
	_root.h4.text = "";
	_root.h5.text = "";
	_root.h6.text = "";
	_root.h7.text = "";
	_root.h8.text = "";
	_root.h9.text = "";
	_root.h10.text = "";
	_root.h11.text = "";
	_root.h12.text = "";
	_root.h13.text = "";
	_root.h14.text = "";
	_root.h15.text = "";
	_root.h16.text = "";
	_root.h17.text = "";
	_root.h18.text = "";
	_root.h19.text = "";
	_root.h20.text = "";
	_root.r1.text = "";
	_root.r2.text = "";
	_root.r3.text = "";
	_root.r4.text = "";
	_root.r5.text = "";
	_root.r6.text = "";
	_root.r7.text = "";
	_root.r8.text = "";
	_root.r9.text = "";
	_root.r10.text = "";
	_root.r11.text = "";
	_root.r12.text = "";
	_root.r13.text = "";
	_root.r14.text = "";
	_root.r15.text = "";
	_root.r16.text = "";
	_root.r17.text = "";
	_root.r18.text = "";
	_root.r19.text = "";
	_root.r20.text = "";
	_root.tmp.value = 0;
	_root.tmptmp.text = "";
}
else{
if(this.ticnt.value == 0){
	_root.tmptmp.text = _root.h1.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 1){
	_root.tmptmp.text = _root.h2.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 2){
	_root.tmptmp.text = _root.h3.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 3){
	_root.tmptmp.text = _root.h4.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 4){
	_root.tmptmp.text = _root.h5.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 5){
	_root.tmptmp.text = _root.h6.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 6){
	_root.tmptmp.text = _root.h7.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 7){
	_root.tmptmp.text = _root.h8.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 8){
	_root.tmptmp.text = _root.h9.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 9){
	_root.tmptmp.text = _root.h10.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 10){
	_root.tmptmp.text = _root.h11.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 11){
	_root.tmptmp.text = _root.h12.text;
	_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 12){
		_root.tmptmp.text = _root.h13.text;
		_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 13){
		_root.tmptmp.text = _root.h14.text;
		_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 14){
		_root.tmptmp.text = _root.h15.text;
		_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 15){
		_root.tmptmp.text = _root.h16.text;
		_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 16){
		_root.tmptmp.text = _root.h17.text;
		_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 17){
		_root.tmptmp.text = _root.h18.text;
		_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 18){
		_root.tmptmp.text = _root.h19.text;
		_root.Rcnt.gotoAndStop(2);
}
if(this.ticnt.value == 19){
		_root.tmptmp.text = _root.h20.text;
		_root.Rcnt.gotoAndStop(2);
}
}

//**代码结束**
this.gotoAndStop(1);

Rcnt里:
stop();

//**************************************************
//**************************************************
//***** Code by dsong @ 看雪论坛[bbs.pediy.com] *****
//**************************************************
//**************************************************

/* 由于我不知道AS2里面怎么把字母用Hex表示,所以自己构建了一个转换表.
 * 但是AS2如果让它都转换为16进制算代码就太复杂了,所以事先转成10进制.
 * 还有貌似机器码是0~F,所以F后面的就不构造转换表了吧.
 */
if (_root.tmptmp.text == "1") {
	_root.tmp.value = 49;
}
if (_root.tmptmp.text == "2") {
	_root.tmp.value = 50;
}
if (_root.tmptmp.text == "3") {
	_root.tmp.value = 51;
}
if (_root.tmptmp.text == "4") {
	_root.tmp.value = 52;
}
if (_root.tmptmp.text == "5") {
	_root.tmp.value = 53;
}
if (_root.tmptmp.text == "6") {
	_root.tmp.value = 54;
}
if (_root.tmptmp.text == "7") {
	_root.tmp.value = 55;
}
if (_root.tmptmp.text == "8") {
	_root.tmp.value = 56;
}
if (_root.tmptmp.text == "9") {
	_root.tmp.value = 57;
}
if (_root.tmptmp.text == "0") {
	_root.tmp.value = 48;
}
if (_root.tmptmp.text == "A") {
	_root.tmp.value = 65;
}
if (_root.tmptmp.text == "B") {
	_root.tmp.value = 66;
}
if (_root.tmptmp.text == "C") {
	_root.tmp.value = 67;
}
if (_root.tmptmp.text == "D") {
	_root.tmp.value = 68;
}
if (_root.tmptmp.text == "E") {
	_root.tmp.value = 69;
}
if (_root.tmptmp.text == "F") {
	_root.tmp.value = 70;
}

//作者给予的值   
this.rdmv.value += 2;

//算法
if (_root.tmp.value+this.rdmv.value<58) {
	_root.tmp.value += this.rdmv.value+1;
	
	//再次转换	
	if (_root.tmp.value>57 || _root.tmp.value<65) {
		_root.tmptmp.text = "";
	}
	if (_root.tmp.value<51) {
		_root.tmptmp.text = "";
	}
	if (_root.tmp.value == 51) {
		_root.tmptmp.text = "3";
	}
	if (_root.tmp.value == 52) {
		_root.tmptmp.text = "4";
	}
	if (_root.tmp.value == 53) {
		_root.tmptmp.text = "5";
	}
	if (_root.tmp.value == 54) {
		_root.tmptmp.text = "6";
	}
	if (_root.tmp.value == 55) {
		_root.tmptmp.text = "7";
	}
	if (_root.tmp.value == 56) {
		_root.tmptmp.text = "8";
	}
	if (_root.tmp.value == 57) {
		_root.tmptmp.text = "9";
	}
	if (_root.tmp.value == 65) {
		_root.tmptmp.text = "A";
	}
	if (_root.tmp.value == 66) {
		_root.tmptmp.text = "B";
	}
	if (_root.tmp.value == 67) {
		_root.tmptmp.text = "C";
	}
	if (_root.tmp.value == 68) {
		_root.tmptmp.text = "D";
	}
	if (_root.tmp.value == 69) {
		_root.tmptmp.text = "E";
	}
	if (_root.tmp.value == 70) {
		_root.tmptmp.text = "F";
	}
	if (_root.tmp.value == 71) {
		_root.tmptmp.text = "G";
	}
	if (_root.tmp.value == 72) {
		_root.tmptmp.text = "H";
	}
	if (_root.tmp.value == 73) {
		_root.tmptmp.text = "I";
	}
	if (_root.tmp.value == 74) {
		_root.tmptmp.text = "J";
	}
	if (_root.tmp.value == 75) {
		_root.tmptmp.text = "K";
	}
	if (_root.tmp.value == 76) {
		_root.tmptmp.text = "L";
	}
	if (_root.tmp.value == 77) {
		_root.tmptmp.text = "M";
	}
	if (_root.tmp.value == 78) {
		_root.tmptmp.text = "N";
	}
	if (_root.tmp.value == 79) {
		_root.tmptmp.text = "O";
	}
	if (_root.tmp.value == 80) {
		_root.tmptmp.text = "P";
	}
	if (_root.tmp.value == 81) {
		_root.tmptmp.text = "Q";
	}
	if (_root.tmp.value == 82) {
		_root.tmptmp.text = "R";
	}
	if (_root.tmp.value == 83) {
		_root.tmptmp.text = "S";
	}
	if (_root.tmp.value == 84) {
		_root.tmptmp.text = "T";
	}
	if (_root.tmp.value == 85) {
		_root.tmptmp.text = "U";
	}
	if (_root.tmp.value == 86) {
		_root.tmptmp.text = "V";
	}
	if (_root.tmp.value == 87) {
		_root.tmptmp.text = "W";
	}
	if (_root.tmp.value == 88) {
		_root.tmptmp.text = "X";
	}
	if (_root.tmp.value == 89) {
		_root.tmptmp.text = "Y";
	}
	if (_root.tmp.value == 90) {
		_root.tmptmp.text = "Z";
	}
	if (_root.tmp.value == 97) {
		_root.tmptmp.text = "a";
	}
	if (_root.tmp.value == 98) {
		_root.tmptmp.text = "b";
	}
	if (_root.tmp.value == 99) {
		_root.tmptmp.text = "c";
	}
	if (_root.tmp.value == 100) {
		_root.tmptmp.text = "d";
	}
	if (_root.tmp.value == 101) {
		_root.tmptmp.text = "e";
	}
	if (_root.tmp.value == 102) {
		_root.tmptmp.text = "f";
	}
	if (_root.tmp.value == 103) {
		_root.tmptmp.text = "g";
	}
	if (_root.tmp.value>103) {
		_root.tmptmp.text = "";
	}
	
	//录入程序   
	_root.LRc.LRcnt.value += 1;
	_root.LRc.gotoAndStop(2);
	
	//返回继续
	_root.ObO.ticnt.value += 1;
	_root.ObO.gotoAndStop(2);
}
else {
	if (_root.tmp.value+this.rdmv.value>=90 || _root.tmp.value+this.rdmv.value-90<-26) {
		_root.ObO.ticnt.value += 1;
		_root.ObO.gotoAndStop(2);
	}
	else {
		_root.tmp.value += this.rdmv.value+1;
		
		//再次转换
		if (_root.tmp.value>57 || _root.tmp.value<65) {
			_root.tmptmp.text = "";
		}
		if (_root.tmp.value<51) {
			_root.tmptmp.text = "";
		}
		if (_root.tmp.value == 51) {
			_root.tmptmp.text = "3";
		}
		if (_root.tmp.value == 52) {
			_root.tmptmp.text = "4";
		}
		if (_root.tmp.value == 53) {
			_root.tmptmp.text = "5";
		}
		if (_root.tmp.value == 54) {
			_root.tmptmp.text = "6";
		}
		if (_root.tmp.value == 55) {
			_root.tmptmp.text = "7";
		}
		if (_root.tmp.value == 56) {
			_root.tmptmp.text = "8";
		}
		if (_root.tmp.value == 57) {
			_root.tmptmp.text = "9";
		}
		if (_root.tmp.value == 65) {
			_root.tmptmp.text = "A";
		}
		if (_root.tmp.value == 66) {
			_root.tmptmp.text = "B";
		}
		if (_root.tmp.value == 67) {
			_root.tmptmp.text = "C";
		}
		if (_root.tmp.value == 68) {
			_root.tmptmp.text = "D";
		}
		if (_root.tmp.value == 69) {
			_root.tmptmp.text = "E";
		}
		if (_root.tmp.value == 70) {
			_root.tmptmp.text = "F";
		}
		if (_root.tmp.value == 71) {
			_root.tmptmp.text = "G";
		}
		if (_root.tmp.value == 72) {
			_root.tmptmp.text = "H";
		}
		if (_root.tmp.value == 73) {
			_root.tmptmp.text = "I";
		}
		if (_root.tmp.value == 74) {
			_root.tmptmp.text = "J";
		}
		if (_root.tmp.value == 75) {
			_root.tmptmp.text = "K";
		}
		if (_root.tmp.value == 76) {
			_root.tmptmp.text = "L";
		}
		if (_root.tmp.value == 77) {
			_root.tmptmp.text = "M";
		}
		if (_root.tmp.value == 78) {
			_root.tmptmp.text = "N";
		}
		if (_root.tmp.value == 79) {
			_root.tmptmp.text = "O";
		}
		if (_root.tmp.value == 80) {
			_root.tmptmp.text = "P";
		}
		if (_root.tmp.value == 81) {
			_root.tmptmp.text = "Q";
		}
		if (_root.tmp.value == 82) {
			_root.tmptmp.text = "R";
		}
		if (_root.tmp.value == 83) {
			_root.tmptmp.text = "S";
		}
		if (_root.tmp.value == 84) {
			_root.tmptmp.text = "T";
		}
		if (_root.tmp.value == 85) {
			_root.tmptmp.text = "U";
		}
		if (_root.tmp.value == 86) {
			_root.tmptmp.text = "V";
		}
		if (_root.tmp.value == 87) {
			_root.tmptmp.text = "W";
		}
		if (_root.tmp.value == 88) {
			_root.tmptmp.text = "X";
		}
		if (_root.tmp.value == 89) {
			_root.tmptmp.text = "Y";
		}
		if (_root.tmp.value == 90) {
			_root.tmptmp.text = "Z";
		}
		if (_root.tmp.value == 97) {
			_root.tmptmp.text = "a";
		}
		if (_root.tmp.value == 98) {
			_root.tmptmp.text = "b";
		}
		if (_root.tmp.value == 99) {
			_root.tmptmp.text = "c";
		}
		if (_root.tmp.value == 100) {
			_root.tmptmp.text = "d";
		}
		if (_root.tmp.value == 101) {
			_root.tmptmp.text = "e";
		}
		if (_root.tmp.value == 102) {
			_root.tmptmp.text = "f";
		}
		if (_root.tmp.value == 103) {
			_root.tmptmp.text = "g";
		}
		if (_root.tmp.value>103) {
			_root.tmptmp.text = "";
		}
		
		//录入程序   
		_root.LRc.LRcnt.value += 1;
		_root.LRc.gotoAndStop(2);
		
		//返回继续
		_root.ObO.ticnt.value += 1;
		_root.ObO.gotoAndStop(2);
	}
}

//**代码结束**
this.gotoAndStop(1);

LRc里:
stop();

//**************************************************
//**************************************************
//***** Code by dsong @ 看雪论坛[bbs.pediy.com] *****
//**************************************************
//**************************************************

//录入
if(this.LRcnt.value == 1){
	_root.r1.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 2){
	_root.r2.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 3){
	_root.r3.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 4){
	_root.r4.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 5){
	_root.r5.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 6){
	_root.r6.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 7){
	_root.r7.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 8){
	_root.r8.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 9){
	_root.r9.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 10){
	_root.r10.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 11){
	_root.r11.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 12){
	_root.r12.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 13){
	_root.r13.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 14){
	_root.r14.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 15){
	_root.r15.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 16){
	_root.r16.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 17){
	_root.r17.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 18){
	_root.r18.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 19){
	_root.r19.text = _root.tmptmp.text;
}
if(this.LRcnt.value == 20){
	_root.r20.text = _root.tmptmp.text;
}

//**代码结束**
this.gotoAndStop(1);


以上是代码,写出了运算过程,但是代码效率很低,希望有高人能够指点优化一下!

SWF成品下载地址:
链接:http://pan.baidu.com/s/1mgA3ex6 密码:16l2
2014-8-3 16:40
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
4
屌炸天,flash注册机
2014-8-13 14:37
0
雪    币: 77
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
玩玩嘛,见笑啦。
第一次用Flash/AS2写注册机,我觉得也是最后一次。
因为幸好这个软件算法简单,否则用AS2写估计要写死人了。
这个软件将就着过去了,最让我心烦的是得让我自己构造转换表,AS2里面没发现怎么把字符转换为Hex表示. 还好它机器码的组成是数字+A,B,C,D,E,F,注册码也是简单的数字+字母。
2014-8-13 14:46
0
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
软件没你的注册机复杂。

2014-8-13 18:24
0
雪    币: 143
活跃值: (263)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
7
是哦
2014-8-19 11:51
0
游客
登录 | 注册 方可回帖
返回
//