[Asm] 纯文本查看 复制代码
0040E8E0 /$ 6A FF push -0x1 ; 关键call入口,重启验证和注册验证都来这里
0040E8E2 |. 68 C5BE7A00 push Kernel_F.007ABEC5
0040E8E7 |. 64:A1 0000000>mov eax,dword ptr fs:[0]
0040E8ED |. 50 push eax
0040E8EE |. B8 503A0000 mov eax,0x3A50
0040E8F3 |. E8 08E41200 call Kernel_F.0053CD00
0040E8F8 |. A1 C0678600 mov eax,dword ptr ds:[0x8667C0]
0040E8FD |. 33C4 xor eax,esp
0040E8FF |. 898424 483A00>mov dword ptr ss:[esp+0x3A48],eax
0040E906 |. 53 push ebx
0040E907 |. 55 push ebp
0040E908 |. 56 push esi
0040E909 |. 57 push edi ; Kernel_F.00874B34
0040E90A |. A1 C0678600 mov eax,dword ptr ds:[0x8667C0]
0040E90F |. 33C4 xor eax,esp
0040E911 |. 50 push eax
0040E912 |. 8D8424 643A00>lea eax,dword ptr ss:[esp+0x3A64]
0040E919 |. 64:A3 0000000>mov dword ptr fs:[0],eax
0040E91F |. 8BAC24 743A00>mov ebp,dword ptr ss:[esp+0x3A74] ; Kernel_F.00874A38
0040E926 |. 896C24 28 mov dword ptr ss:[esp+0x28],ebp
0040E92A |. 6A 00 push 0x0
0040E92C |. 8D8D F4000000 lea ecx,dword ptr ss:[ebp+0xF4]
0040E932 |. 68 3C488100 push Kernel_F.0081483C
0040E937 |. C78424 743A00>mov dword ptr ss:[esp+0x3A74],0x0
0040E942 |. E8 1950FFFF call Kernel_F.00403960
0040E947 |. 6A 00 push 0x0
0040E949 |. 8D8D F8000000 lea ecx,dword ptr ss:[ebp+0xF8]
0040E94F |. 68 40488100 push Kernel_F.00814840
0040E954 |. E8 0750FFFF call Kernel_F.00403960
0040E959 |. 68 44488100 push Kernel_F.00814844 ; UNI56V
0040E95E |. 8D4C24 40 lea ecx,dword ptr ss:[esp+0x40]
0040E962 |. E8 2951FFFF call Kernel_F.00403A90
0040E967 |. C68424 6C3A00>mov byte ptr ss:[esp+0x3A6C],0x1
0040E96F |. E8 DBAD0400 call Kernel_F.0045974F
0040E974 |. 33C9 xor ecx,ecx
0040E976 |. 85C0 test eax,eax
0040E978 |. 0F95C1 setne cl
0040E97B |. 85C9 test ecx,ecx
0040E97D |. 75 0A jnz short Kernel_F.0040E989
0040E97F |> 68 05400080 push 0x80004005
0040E984 |. E8 272EFFFF call Kernel_F.004017B0
0040E989 |> 8B10 mov edx,dword ptr ds:[eax] ; Kernel_F.004A0054
0040E98B |. 8BC8 mov ecx,eax
0040E98D |. 8B42 0C mov eax,dword ptr ds:[edx+0xC]
0040E990 |. FFD0 call eax
0040E992 |. 83C0 10 add eax,0x10
0040E995 |. 894424 2C mov dword ptr ss:[esp+0x2C],eax
0040E999 |. 8D8C24 783A00>lea ecx,dword ptr ss:[esp+0x3A78]
0040E9A0 |. 51 push ecx
0040E9A1 |. 8D5424 3C lea edx,dword ptr ss:[esp+0x3C]
0040E9A5 |. 68 54488100 push Kernel_F.00814854 ; Software\
0040E9AA |. BB 02000000 mov ebx,0x2
0040E9AF |. 52 push edx ; Kernel_F.004D0054
0040E9B0 |. 889C24 783A00>mov byte ptr ss:[esp+0x3A78],bl
0040E9B7 |. E8 44810000 call Kernel_F.00416B00
0040E9BC |. 83C4 0C add esp,0xC
0040E9BF |. 50 push eax
0040E9C0 |. 8D4C24 30 lea ecx,dword ptr ss:[esp+0x30]
0040E9C4 |. C68424 703A00>mov byte ptr ss:[esp+0x3A70],0x3
0040E9CC |. E8 3F5FFFFF call Kernel_F.00404910
0040E9D1 |. 889C24 6C3A00>mov byte ptr ss:[esp+0x3A6C],bl
0040E9D8 |. 8B4424 38 mov eax,dword ptr ss:[esp+0x38]
0040E9DC |. 83C0 F0 add eax,-0x10
0040E9DF |. 8D48 0C lea ecx,dword ptr ds:[eax+0xC]
0040E9E2 |. 83CA FF or edx,-0x1
0040E9E5 |. f0:0fc111 lock xadd dword ptr ds:[ecx],edx
0040E9E9 |. 4A dec edx ; Kernel_F.004D0054
0040E9EA |. 85D2 test edx,edx ; Kernel_F.004D0054
0040E9EC |. 7F 0A jg short Kernel_F.0040E9F8
0040E9EE |. 8B08 mov ecx,dword ptr ds:[eax] ; Kernel_F.004A0054
0040E9F0 |. 8B11 mov edx,dword ptr ds:[ecx]
0040E9F2 |. 50 push eax
0040E9F3 |. 8B42 04 mov eax,dword ptr ds:[edx+0x4]
0040E9F6 |. FFD0 call eax
0040E9F8 |> 8B4424 2C mov eax,dword ptr ss:[esp+0x2C]
0040E9FC |. 8D9424 4C3600>lea edx,dword ptr ss:[esp+0x364C]
0040EA03 |. 2BD0 sub edx,eax
0040EA05 |> 0FB708 /movzx ecx,word ptr ds:[eax]
0040EA08 |. 66:890C02 |mov word ptr ds:[edx+eax],cx
0040EA0C |. 03C3 |add eax,ebx
0040EA0E |. 66:85C9 |test cx,cx
0040EA11 |.^ 75 F2 \jnz short Kernel_F.0040EA05
0040EA13 |. C74424 40 684>mov dword ptr ss:[esp+0x40],Kernel_F.00814868 ; RegVal 下面检测注册表里regval值
0040EA1B |. E8 2FAD0400 call Kernel_F.0045974F
0040EA20 |. 33C9 xor ecx,ecx
0040EA22 |. 85C0 test eax,eax
0040EA24 |. 0F95C1 setne cl
0040EA27 |. 85C9 test ecx,ecx
0040EA29 |. 75 0A jnz short Kernel_F.0040EA35
0040EA2B |. 68 05400080 push 0x80004005
0040EA30 |. E8 7B2DFFFF call Kernel_F.004017B0
0040EA35 |> 8B10 mov edx,dword ptr ds:[eax] ; Kernel_F.004A0054
0040EA37 |. 8BC8 mov ecx,eax
0040EA39 |. 8B42 0C mov eax,dword ptr ds:[edx+0xC]
0040EA3C |. FFD0 call eax
0040EA3E |. 83C0 10 add eax,0x10
0040EA41 |. 894424 20 mov dword ptr ss:[esp+0x20],eax
0040EA45 |. 68 68488100 push Kernel_F.00814868 ; RegVal
0040EA4A |. 8D8C24 503600>lea ecx,dword ptr ss:[esp+0x3650]
0040EA51 |. 8DBD FC000000 lea edi,dword ptr ss:[ebp+0xFC]
0040EA57 |. 51 push ecx
0040EA58 |. 8D5C24 28 lea ebx,dword ptr ss:[esp+0x28]
0040EA5C |. C68424 743A00>mov byte ptr ss:[esp+0x3A74],0x4
0040EA64 |. E8 E7130400 call Kernel_F.0044FE50
0040EA69 |. 8B7424 20 mov esi,dword ptr ss:[esp+0x20] ; Kernel_F.0086E358
0040EA6D |. 8D9424 543800>lea edx,dword ptr ss:[esp+0x3854]
0040EA74 |. 8BC6 mov eax,esi
0040EA76 |. 2BD6 sub edx,esi
0040EA78 |. EB 06 jmp short Kernel_F.0040EA80
0040EA7A | 8D9B 00000000 lea ebx,dword ptr ds:[ebx]
0040EA80 |> 0FB708 /movzx ecx,word ptr ds:[eax]
0040EA83 |. 83C0 02 |add eax,0x2
0040EA86 |. 66:85C9 |test cx,cx
0040EA89 |.^ 75 F5 \jnz short Kernel_F.0040EA80
0040EA8B |. 68 58468100 push Kernel_F.00814658 ; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789 -_.@
0040EA90 |. 56 push esi
0040EA91 |. E8 55971200 call Kernel_F.005381EB
0040EA96 |. 83C4 08 add esp,0x8
0040EA99 |. 85C0 test eax,eax
0040EA9B |. 74 1F je short Kernel_F.0040EABC
0040EA9D |. 2BC6 sub eax,esi
0040EA9F |. D1F8 sar eax,1
0040EAA1 |. 83F8 FF cmp eax,-0x1
0040EAA4 |. 74 16 je short Kernel_F.0040EABC
0040EAA6 |. 8D4C24 20 lea ecx,dword ptr ss:[esp+0x20]
0040EAAA |. E8 31F0FFFF call Kernel_F.0040DAE0
0040EAAF |. 83F8 FF cmp eax,-0x1
0040EAB2 |. 0F85 D2030000 jnz Kernel_F.0040EE8A
0040EAB8 |. 8B7424 20 mov esi,dword ptr ss:[esp+0x20] ; Kernel_F.0086E358
0040EABC |> 83BC24 7C3A00>cmp dword ptr ss:[esp+0x3A7C],0x0 ; 比较注册表里有无数值
0040EAC4 |. 0F84 A9000000 je Kernel_F.0040EB73 ; 相等跳向注册框
0040EACA |. 8D46 F0 lea eax,dword ptr ds:[esi-0x10]
0040EACD |. C68424 6C3A00>mov byte ptr ss:[esp+0x3A6C],0x2
0040EAD5 |. 8D50 0C lea edx,dword ptr ds:[eax+0xC]
0040EAD8 |. 83C9 FF or ecx,-0x1
0040EADB |. f0:0fc10a lock xadd dword ptr ds:[edx],ecx
0040EADF |. 49 dec ecx
0040EAE0 |. 85C9 test ecx,ecx
0040EAE2 |> 7F 0A jg short Kernel_F.0040EAEE
0040EAE4 |. 8B08 mov ecx,dword ptr ds:[eax] ; Kernel_F.004A0054
0040EAE6 |. 8B11 mov edx,dword ptr ds:[ecx]
0040EAE8 |. 50 push eax
0040EAE9 |. 8B42 04 mov eax,dword ptr ds:[edx+0x4]
0040EAEC |. FFD0 call eax
0040EAEE |> C68424 6C3A00>mov byte ptr ss:[esp+0x3A6C],0x1
0040EAF6 |. 8B4424 2C mov eax,dword ptr ss:[esp+0x2C]
0040EAFA |. 83C0 F0 add eax,-0x10
0040EAFD |. 8D48 0C lea ecx,dword ptr ds:[eax+0xC]
0040EB00 |. 83CA FF or edx,-0x1
0040EB03 |. f0:0fc111 lock xadd dword ptr ds:[ecx],edx
0040EB07 |. 4A dec edx ; Kernel_F.004D0054
0040EB08 |. 85D2 test edx,edx ; Kernel_F.004D0054
0040EB0A |. 7F 0A jg short Kernel_F.0040EB16
0040EB0C |. 8B08 mov ecx,dword ptr ds:[eax] ; Kernel_F.004A0054
0040EB0E |. 8B11 mov edx,dword ptr ds:[ecx]
0040EB10 |. 50 push eax
0040EB11 |. 8B42 04 mov eax,dword ptr ds:[edx+0x4]
0040EB14 |. FFD0 call eax
0040EB16 |> C68424 6C3A00>mov byte ptr ss:[esp+0x3A6C],0x0
0040EB1E |. 8B4424 3C mov eax,dword ptr ss:[esp+0x3C]
0040EB22 |. 83C0 F0 add eax,-0x10
0040EB25 |. 83CA FF or edx,-0x1
0040EB28 |. 8D48 0C lea ecx,dword ptr ds:[eax+0xC]
0040EB2B |. f0:0fc111 lock xadd dword ptr ds:[ecx],edx
0040EB2F |. 4A dec edx ; Kernel_F.004D0054
0040EB30 |. 85D2 test edx,edx ; Kernel_F.004D0054
0040EB32 |. 7F 0A jg short Kernel_F.0040EB3E
0040EB34 |. 8B08 mov ecx,dword ptr ds:[eax] ; Kernel_F.004A0054
0040EB36 |. 8B11 mov edx,dword ptr ds:[ecx]
0040EB38 |. 50 push eax
0040EB39 |. 8B42 04 mov eax,dword ptr ds:[edx+0x4]
0040EB3C |. FFD0 call eax
0040EB3E |> C78424 6C3A00>mov dword ptr ss:[esp+0x3A6C],-0x1
0040EB49 |. 8B8424 783A00>mov eax,dword ptr ss:[esp+0x3A78]
0040EB50 |. 83C0 F0 add eax,-0x10
0040EB53 |. 8D48 0C lea ecx,dword ptr ds:[eax+0xC]
0040EB56 |. 83CA FF or edx,-0x1
0040EB59 |. f0:0fc111 lock xadd dword ptr ds:[ecx],edx
0040EB5D |. 4A dec edx ; Kernel_F.004D0054
0040EB5E |. 85D2 test edx,edx ; Kernel_F.004D0054
0040EB60 |. 7F 0A jg short Kernel_F.0040EB6C
0040EB62 |. 8B08 mov ecx,dword ptr ds:[eax] ; Kernel_F.004A0054
0040EB64 |. 8B11 mov edx,dword ptr ds:[ecx]
0040EB66 |. 50 push eax
0040EB67 |. 8B42 04 mov eax,dword ptr ds:[edx+0x4]
0040EB6A |. FFD0 call eax
0040EB6C |> 33C0 xor eax,eax
0040EB6E |. E9 E20C0000 jmp Kernel_F.0040F855
0040EB73 |> 8D4C24 4C /lea ecx,dword ptr ss:[esp+0x4C]
0040EB77 |. 51 |push ecx
0040EB78 |. E8 43880000 |call Kernel_F.004173C0
0040EB7D |. 8D4C24 4C |lea ecx,dword ptr ss:[esp+0x4C]
0040EB81 |. C68424 6C3A00>|mov byte ptr ss:[esp+0x3A6C],0x5
0040EB89 |. E8 402D0400 |call Kernel_F.004518CE ; 弹出注册窗口call
0040EB8E |. 83F8 01 |cmp eax,0x1 ; 比较有无注册
0040EB91 |. 0F85 AA020000 |jnz Kernel_F.0040EE41
0040EB97 |. 8B8424 BC2D00>|mov eax,dword ptr ss:[esp+0x2DBC] ; 注册码入eax
0040EB9E |. 83C0 F0 |add eax,-0x10 ; 注册码地址-10
0040EBA1 |. 50 |push eax
0040EBA2 |. E8 C94AFFFF |call Kernel_F.00403670
0040EBA7 |. 8D68 10 |lea ebp,dword ptr ds:[eax+0x10] ; 注册码入ebp
0040EBAA |. 83C4 04 |add esp,0x4 ; esp+4
0040EBAD |. 896C24 38 |mov dword ptr ss:[esp+0x38],ebp ; 注册码入esp+38
0040EBB1 |. C68424 6C3A00>|mov byte ptr ss:[esp+0x3A6C],0x6 ; 6入esp+3A6C
0040EBB9 |. 8B8424 C02D00>|mov eax,dword ptr ss:[esp+0x2DC0] ; esp+2DC0(注册名)入eax
0040EBC0 |. 83C0 F0 |add eax,-0x10 ; eax-10
0040EBC3 |. 50 |push eax
0040EBC4 |. E8 A74AFFFF |call Kernel_F.00403670
0040EBC9 |. 8D58 10 |lea ebx,dword ptr ds:[eax+0x10] ; eax+10(注册名)入ebx
0040EBCC |. 83C4 04 |add esp,0x4 ; esp+4
0040EBCF |. 895C24 1C |mov dword ptr ss:[esp+0x1C],ebx ; 注册名入esp+1C
0040EBD3 |. 8B7424 28 |mov esi,dword ptr ss:[esp+0x28] ; Kernel_F.00874A38
0040EBD7 |. 8D5424 1C |lea edx,dword ptr ss:[esp+0x1C]
0040EBDB |. 52 |push edx ; Kernel_F.004D0054
0040EBDC |. 8D8E F4000000 |lea ecx,dword ptr ds:[esi+0xF4]
0040EBE2 |. C68424 703A00>|mov byte ptr ss:[esp+0x3A70],0x7 ; 7入esp+3A70
0040EBEA |. E8 215DFFFF |call Kernel_F.00404910
0040EBEF |. 8D4424 38 |lea eax,dword ptr ss:[esp+0x38] ; esp+38入eax
0040EBF3 |. 50 |push eax
0040EBF4 |. 8D8E F8000000 |lea ecx,dword ptr ds:[esi+0xF8]
0040EBFA |. E8 115DFFFF |call Kernel_F.00404910
0040EBFF |. 68 78488100 |push Kernel_F.00814878
0040EC04 |. 8D4C24 28 |lea ecx,dword ptr ss:[esp+0x28]
0040EC08 |. E8 834EFFFF |call Kernel_F.00403A90
0040EC0D |. 8D4C24 24 |lea ecx,dword ptr ss:[esp+0x24]
0040EC11 |. C68424 6C3A00>|mov byte ptr ss:[esp+0x3A6C],0x8 ; 8入esp+3A6C
0040EC19 |. 8B8424 783A00>|mov eax,dword ptr ss:[esp+0x3A78] ; esp+3A78(LKFSHR)入eax
0040EC20 |. 51 |push ecx
0040EC21 |. 51 |push ecx
0040EC22 |. 83C0 F0 |add eax,-0x10 ; eax-10
0040EC25 |. 896424 3C |mov dword ptr ss:[esp+0x3C],esp ; esp入esp+3C
0040EC29 |. 8BF4 |mov esi,esp ; esp入esi
0040EC2B |. 50 |push eax
0040EC2C |. E8 3F4AFFFF |call Kernel_F.00403670
0040EC31 |. 83C0 10 |add eax,0x10 ; eax+10
0040EC34 |. 8906 |mov dword ptr ds:[esi],eax ; eax(LFKSHR)入esi
0040EC36 |. C68424 783A00>|mov byte ptr ss:[esp+0x3A78],0x9 ; 9入esp+3A78
0040EC3E |. 8D43 F0 |lea eax,dword ptr ds:[ebx-0x10] ; ebx-10入eax
0040EC41 |. 896424 3C |mov dword ptr ss:[esp+0x3C],esp ; esp入esp+3C
0040EC45 |. 8BF4 |mov esi,esp ; esp入esi
0040EC47 |. 50 |push eax
0040EC48 |. E8 234AFFFF |call Kernel_F.00403670
0040EC4D |. 83C0 10 |add eax,0x10 ; esx+10
0040EC50 |. 8906 |mov dword ptr ds:[esi],eax ; eax(注册名)入esi
0040EC52 |. 83C4 04 |add esp,0x4 ; esp+4
0040EC55 |. C68424 783A00>|mov byte ptr ss:[esp+0x3A78],0x8 ; 8入esp+3A78
0040EC5D |. E8 1E0C0000 |call Kernel_F.0040F880 ; 算法call
0040EC62 |. 33C0 |xor eax,eax ; eax清零
0040EC64 |. 83C4 0C |add esp,0xC ; esp+c
0040EC67 |. 85ED |test ebp,ebp
0040EC69 |. 0F95C0 |setne al ; 设为真
0040EC6C |. 85C0 |test eax,eax
0040EC6E |.^ 0F84 0BFDFFFF |je Kernel_F.0040E97F
0040EC74 |. 8B7424 24 |mov esi,dword ptr ss:[esp+0x24] ; esp+24(真码)入esi,可以做内存注册机
0040EC78 |. 8BCD |mov ecx,ebp ; 注册码入ecx(爆破,可以把真码esi入ecx)
0040EC7A |. 8BC6 |mov eax,esi ; esi(真码)入eax
0040EC7C |. 8D6424 00 |lea esp,dword ptr ss:[esp]
0040EC80 |> 66:8B10 |/mov dx,word ptr ds:[eax] ; 取eax(真码)奇数位字符ASCII码入dx
0040EC83 |. 66:3B11 ||cmp dx,word ptr ds:[ecx] ; dx和注册码字节的ASCII码比较
0040EC86 75 1E ||jnz short Kernel_F.0040ECA6 ; 不相等跳走,爆破点1
0040EC88 |. 66:85D2 ||test dx,dx ; 有没取完字节
0040EC8B |. 74 15 ||je short Kernel_F.0040ECA2 ; 取完跳走
0040EC8D |. 66:8B50 02 ||mov dx,word ptr ds:[eax+0x2] ; 取eax+2(真码)偶数位字符ASCII码入dx
0040EC91 |. 66:3B51 02 ||cmp dx,word ptr ds:[ecx+0x2] ; 取ecx+2(注册码)字符ascii码和dx比较
0040EC95 75 0F ||jnz short Kernel_F.0040ECA6 ; 不相等跳走,爆破点2
0040EC97 |. 83C0 04 ||add eax,0x4 ; eax+4
0040EC9A |. 83C1 04 ||add ecx,0x4 ; ecx+4
0040EC9D |. 66:85D2 ||test dx,dx ; 有没取完字节。
0040ECA0 |.^ 75 DE |\jnz short Kernel_F.0040EC80 ; 不相等往上跳(循环)
0040ECA2 |> 33C0 |xor eax,eax ; eax清零
0040ECA4 |. EB 05 |jmp short Kernel_F.0040ECAB
0040ECA6 |> 1BC0 |sbb eax,eax
0040ECA8 |. 83D8 FF |sbb eax,-0x1
0040ECAB |> 85C0 |test eax,eax
0040ECAD |. 0F94C0 |sete al ; 条件为真
0040ECB0 |. 84C0 |test al,al
0040ECB2 |. 0F84 E3000000 |je Kernel_F.0040ED9B
0040ECB8 |. B9 7C488100 |mov ecx,Kernel_F.0081487C
0040ECBD |. 8BC5 |mov eax,ebp ; 注册码入eax
0040ECBF |. 90 |nop
0040ECC0 |> 66:8B10 |/mov dx,word ptr ds:[eax] ; 注册码奇数位字符ascii码入dx
0040ECC3 |. 66:3B11 ||cmp dx,word ptr ds:[ecx] ; 和ecx奇数位字符ascii码比较
0040ECC6 |. 75 1E ||jnz short Kernel_F.0040ECE6 ; 不等跳走
0040ECC8 |. 66:85D2 ||test dx,dx ; 有没取完字节
0040ECCB |. 74 15 ||je short Kernel_F.0040ECE2 ; 取完就跳走
0040ECCD |. 66:8B50 02 ||mov dx,word ptr ds:[eax+0x2] ; 注册码偶数位字节ascii码入dx
0040ECD1 |. 66:3B51 02 ||cmp dx,word ptr ds:[ecx+0x2] ; 和ecx偶数位字节ascii码比较
0040ECD5 |. 75 0F ||jnz short Kernel_F.0040ECE6 ; 不相等跳走
0040ECD7 |. 83C0 04 ||add eax,0x4 ; eax+4
0040ECDA |. 83C1 04 ||add ecx,0x4 ; ecx+4
0040ECDD |. 66:85D2 ||test dx,dx ; 比较有没取完字节
0040ECE0 |.^ 75 DE |\jnz short Kernel_F.0040ECC0 ; 不相等往上跳(循环)
0040ECE2 |> 33C0 |xor eax,eax ; esx清零
0040ECE4 |. EB 05 |jmp short Kernel_F.0040ECEB
0040ECE6 |> 1BC0 |sbb eax,eax
0040ECE8 |. 83D8 FF |sbb eax,-0x1
0040ECEB |> 85C0 |test eax,eax
0040ECED |. 0F95C0 |setne al
0040ECF0 |. 84C0 |test al,al
0040ECF2 |. 0F84 A3000000 |je Kernel_F.0040ED9B
0040ECF8 |. 68 D0458100 |push Kernel_F.008145D0 ; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789 -_.@
0040ECFD |. 56 |push esi
0040ECFE |. E8 E8941200 |call Kernel_F.005381EB
0040ED03 |. 83C4 08 |add esp,0x8 ; esp+8
0040ED06 |. 85C0 |test eax,eax
0040ED08 |. 74 38 |je short Kernel_F.0040ED42
0040ED0A |. 2B4424 24 |sub eax,dword ptr ss:[esp+0x24] ; eax(真码)-esp+24(真码)
0040ED0E |. D1F8 |sar eax,1 ; eax右移一位
0040ED10 |. 83F8 FF |cmp eax,-0x1 ; eax和-1比较
0040ED13 |. 74 2D |je short Kernel_F.0040ED42
0040ED15 |. 8D4C24 24 |lea ecx,dword ptr ss:[esp+0x24]
0040ED19 |. E8 C2E6FFFF |call Kernel_F.0040D3E0
0040ED1E |. 83F8 FF |cmp eax,-0x1
0040ED21 |. 74 1F |je short Kernel_F.0040ED42
0040ED23 |. 8B5424 40 |mov edx,dword ptr ss:[esp+0x40] ; esp+40(RegVal)入edx
0040ED27 |. 8B7424 28 |mov esi,dword ptr ss:[esp+0x28] ; esp+28(真码换算后字符)入esi
0040ED2B |. 8B7C24 24 |mov edi,dword ptr ss:[esp+0x24] ; esp+24(真码换算后字符)入edi
0040ED2F |. 52 |push edx ; Kernel_F.004D0054
0040ED30 |. 8D8424 503600>|lea eax,dword ptr ss:[esp+0x3650] ; esp+3650(Software\LKFSHR)入eax
0040ED37 |. 81C6 FC000000 |add esi,0xFC ; esi+FC(这段是把注册码换算后的字符写入注册表Software\LKFSHR里的RegVal。
0040ED3D |. E8 9E100400 |call Kernel_F.0044FDE0
0040ED42 |> 68 D0458100 |push Kernel_F.008145D0 ; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789 -_.@
0040ED47 |. 53 |push ebx
0040ED48 |. C74424 48 804>|mov dword ptr ss:[esp+0x48],Kernel_F.00814880 ; eml入esp+48
0040ED50 |. E8 96941200 |call Kernel_F.005381EB
0040ED55 |. 83C4 08 |add esp,0x8 ; esp+8
0040ED58 |. 85C0 |test eax,eax ; 有没注册名
0040ED5A |. 74 38 |je short Kernel_F.0040ED94
0040ED5C |. 2BC3 |sub eax,ebx ; eax(注册名)-ebx(注册名)
0040ED5E |. D1F8 |sar eax,1 ; eax右移1位
0040ED60 |. 83F8 FF |cmp eax,-0x1 ; eax和-1比较
0040ED63 |. 74 2F |je short Kernel_F.0040ED94
0040ED65 |. 8D4C24 1C |lea ecx,dword ptr ss:[esp+0x1C]
0040ED69 |. E8 72E6FFFF |call Kernel_F.0040D3E0
0040ED6E |. 8B5C24 1C |mov ebx,dword ptr ss:[esp+0x1C] ; esp+1C(注册名换算后字符)入ebx
0040ED72 |. 83F8 FF |cmp eax,-0x1 ; 比较eax和-1
0040ED75 |. 74 1D |je short Kernel_F.0040ED94
0040ED77 |. 8B7424 28 |mov esi,dword ptr ss:[esp+0x28] ; Kernel_F.00874A38
0040ED7B |. 68 80488100 |push Kernel_F.00814880 ; eml
0040ED80 |. 8BFB |mov edi,ebx ; ebx(注册名换算后字符)入edi
0040ED82 |. 8D8424 503600>|lea eax,dword ptr ss:[esp+0x3650] ; esp+3650(Software\LKFSHR)入eax
0040ED89 |. 81C6 FC000000 |add esi,0xFC ; esi+FC(这段是把注册名换算后的字符写入注册表Software\LKFSHR里的eml
0040ED8F |. E8 4C100400 |call Kernel_F.0044FDE0
0040ED94 |> BE 01000000 |mov esi,0x1 ; 1入esi
0040ED99 |. EB 10 |jmp short Kernel_F.0040EDAB
0040ED9B |> 6A 00 |push 0x0
0040ED9D |. 6A 10 |push 0x10
0040ED9F |. 68 88488100 |push Kernel_F.00814888 ; Registration information is not valid, please check it and try again. 注册失败
0040EDA4 |. E8 EFBD0400 |call Kernel_F.0045AB98