算法分析:
004019FE . E8 ADFDFFFF call cm.004017B0
00401A03 . 8945 E4 mov dword ptr ss:[ebp-1C],eax
00401A06 . 68 40174000 push cm.00401740
00401A0B . 68 B0484200 push cm.004248B0 ; /输入用户名
00401A10 . 68 E0574200 push cm.004257E0 ; |Arg1 = 004257E0
00401A15 . E8 D6410000 call cm.00405BF0 ; \cm.00405BF0
00401A1A . 83C4 08 add esp,8
00401A1D . E8 7E010000 call cm.00401BA0 ; \cm.00401BA0
00401A22 . 8D45 C0 lea eax,dword ptr ss:[ebp-40]
00401A25 . B9 98584200 mov ecx,cm.00425898 ; a
00401A2A . E8 41440000 call cm.00405E70 ; 获取用户名
00401A2F . 0FBE55 C1 movsx edx,byte ptr ss:[ebp-3F] ; 取第2位ASCII放入EDX
00401A33 . 8955 D8 mov dword ptr ss:[ebp-28],edx
00401A36 . 0FBE45 C0 movsx eax,byte ptr ss:[ebp-40] ; 取第1位ASCII放入EAX
00401A3A . 8945 BC mov dword ptr ss:[ebp-44],eax
00401A3D . 8B4D D8 mov ecx,dword ptr ss:[ebp-28] ; 取第2位ASCII值
00401A40 . 334D BC xor ecx,dword ptr ss:[ebp-44] ; 第1位ASCII与第2位ASCII异或
00401A43 . 894D D8 mov dword ptr ss:[ebp-28],ecx
00401A46 . 8B55 D8 mov edx,dword ptr ss:[ebp-28] ; 将异或后的值放入EDX
00401A49 . D1E2 shl edx,1 ; EDX*2
00401A4B . 8955 D8 mov dword ptr ss:[ebp-28],edx
00401A4E . 68 40174000 push cm.00401740
00401A53 . 8B45 E8 mov eax,dword ptr ss:[ebp-18]
00401A56 . 50 push eax ; /Arg2
00401A57 . 68 E0574200 push cm.004257E0 ; |Arg1 = 004257E0
00401A5C . E8 8F410000 call cm.00405BF0 ; \cm.00405BF0
00401A61 . 83C4 08 add esp,8
00401A64 . E8 37010000 call cm.00401BA0 ; \cm.00401BA0
00401A69 . 8D4D F4 lea ecx,dword ptr ss:[ebp-C]
00401A6C . 51 push ecx
00401A6D . 68 98584200 push cm.00425898 ; a
00401A72 . E8 79020000 call cm.00401CF0 ; 获取Key
00401A77 . 8B55 D8 mov edx,dword ptr ss:[ebp-28]
00401A7A . 83C2 01 add edx,1 ; EDX*2+1
00401A7D . 3955 F4 cmp dword ptr ss:[ebp-C],edx ; 比较
00401A80 . 75 2B jnz short cm.00401AAD
00401A82 . 68 40174000 push cm.00401740
00401A87 . 8B45 E0 mov eax,dword ptr ss:[ebp-20]
00401A8A . 50 push eax ; /Arg2
00401A8B . 68 E0574200 push cm.004257E0 ; |Arg1 = 004257E0
00401A90 . E8 5B410000 call cm.00405BF0 ; \cm.00405BF0
00401A95 . 83C4 08 add esp,8
00401A98 . E8 03010000 call cm.00401BA0 ; \cm.00401BA0
00401A9D . 8B4D E4 mov ecx,dword ptr ss:[ebp-1C]
00401AA0 . 51 push ecx
00401AA1 . E8 3D570000 call cm.004071E3
00401AA6 . 83C4 04 add esp,4
00401AA9 . EB 43 jmp short cm.00401AEE
00401AAB . EB 41 jmp short cm.00401AEE
00401AAD > 68 40174000 push cm.00401740
VBS实现写注册机:
X=InputBox("用户名","输入","")
If Len(X)>=2 Then
A1=Asc(Mid(X,1,1))
A2=Asc(Mid(X,2,1))
MsgBox (A1 Xor A2)*2+1
Else
MsgBox Asc(X)*2+1
End IF
|