本帖最后由 hahacker 于 2016-9-1 19:02 编辑
Taskbar Hide可以是您的桌面更加美观,同时使用起来也更加方便。您可以隐藏不想使用的工具栏和应用程序窗口,控制起来相当方便!
找软件时找到这个东西了,所以接下来,你懂的。。。算法很简单,不过还是写出来吧。软件下载地址:http://www.onlinedown.net/soft/33635.htm
[Asm] 纯文本查看 复制代码 00479EAC /$ 55 push ebp
00479EAD |. 8BEC mov ebp,esp
00479EAF |. 6A 00 push 0x0
00479EB1 |. 53 push ebx
00479EB2 |. 56 push esi
00479EB3 |. 8BF0 mov esi,eax
00479EB5 |. 33C0 xor eax,eax
00479EB7 |. 55 push ebp
00479EB8 |. 68 489F4700 push TaskBar.00479F48
00479EBD |. 64:FF30 push dword ptr fs:[eax]
00479EC0 |. 64:8920 mov dword ptr fs:[eax],esp
00479EC3 |. 33DB xor ebx,ebx
00479EC5 |. 8D45 FC lea eax,dword ptr ss:[ebp-0x4]
00479EC8 |. 8BD6 mov edx,esi
00479ECA |. E8 41A2F8FF call TaskBar.00404110
00479ECF |. 8B45 FC mov eax,dword ptr ss:[ebp-0x4] ; 假码
00479ED2 |. E8 61A4F8FF call TaskBar.00404338
00479ED7 |. 83F8 0A cmp eax,0xA
00479EDA |. 75 56 jnz short TaskBar.00479F32 ; 假码长度必须是A
00479EDC |. 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00479EDF |. 33C9 xor ecx,ecx
00479EE1 |. 8A08 mov cl,byte ptr ds:[eax] ; 假码的第一位
00479EE3 |. 8BC1 mov eax,ecx
00479EE5 |. 8B55 FC mov edx,dword ptr ss:[ebp-0x4]
00479EE8 |. 0FB672 05 movzx esi,byte ptr ds:[edx+0x5] ; 第六位
00479EEC |. 03C6 add eax,esi ; 第一位+第六位
00479EEE |. 83E8 60 sub eax,0x60 ; -0x60
00479EF1 |. 83F8 08 cmp eax,0x8 ; 第一位+第六位-0x60 大于 8
00479EF4 |. 7E 3C jle short TaskBar.00479F32
00479EF6 |. 8BC1 mov eax,ecx
00479EF8 |. 8B55 FC mov edx,dword ptr ss:[ebp-0x4]
00479EFB |. 0FB652 01 movzx edx,byte ptr ds:[edx+0x1] ; 第二位
00479EFF |. 03C2 add eax,edx ; 第一位+第二位
00479F01 |. 03C6 add eax,esi ; 再+第六位
00479F03 |. 2D 90000000 sub eax,0x90 ; -0x90
00479F08 |. B9 0A000000 mov ecx,0xA
00479F0D |. 99 cdq
00479F0E |. F7F9 idiv ecx ; EAX求商=edx
00479F10 |. 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00479F13 |. 0FB640 04 movzx eax,byte ptr ds:[eax+0x4] ; 第五位
00479F17 |. 83E8 30 sub eax,0x30 ; -0x30
00479F1A |. 3BD0 cmp edx,eax
00479F1C |. 75 14 jnz short TaskBar.00479F32
00479F1E |. 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00479F21 |. 8078 02 32 cmp byte ptr ds:[eax+0x2],0x32 ; 第三位必须小于0x32
00479F25 |. 77 0B ja short TaskBar.00479F32
00479F27 |. 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00479F2A |. 8078 03 35 cmp byte ptr ds:[eax+0x3],0x35 ; 第四位必须大于0x35
00479F2E |. 76 02 jbe short TaskBar.00479F32
00479F30 |. B3 01 mov bl,0x1
00479F32 |> 33C0 xor eax,eax
00479F34 |. 5A pop edx ; kernel32.7C816037
00479F35 |. 59 pop ecx ; kernel32.7C816037
00479F36 |. 59 pop ecx ; kernel32.7C816037
00479F37 |. 64:8910 mov dword ptr fs:[eax],edx ; ntdll.KiFastSystemCallRet
00479F3A |. 68 4F9F4700 push TaskBar.00479F4F
00479F3F |> 8D45 FC lea eax,dword ptr ss:[ebp-0x4]
00479F42 |. E8 31A1F8FF call TaskBar.00404078
总结:
注册码长度=10d
第三位必须小于0x32
第四位必须大于0x35
第一位+第六位 - 0x60结果大于8
(第一位+第二位+第六位-0x90) % 0xA = 第五位 - 0x30
所以可简单构造一个注册码:
3216167890
|