文章比较详细的分析了这款软件的算法,但是,里面有一些存在疏忽的地方。
1、 注册码最后的连接问题
0048D6FA |. E>call 0048CC94 ; 关键CALL2
0048D6FF |. 8>lea eax, [local.6]
0048D702 |. 5>push eax
0048D703 |. 8>mov eax, [ebx] ; [ebx]中是由48cc94的Call生成的注册变码reg
0048D705 |. B>mov ecx, 5
0048D70A |. B>mov edx, 1
0048D70F |. E>call 00404BF0 ; 以下将上述生成的注册变码reg每五位用"-"分隔,共取20位
0048D714 |. F>push [local.6]
0048D717 |. 6>push 48D7DC ; -
0048D71C |. 8>lea eax, [local.7]
0048D71F |. 5>push eax
0048D720 |. 8>mov eax, [ebx]
0048D722 |. B>mov ecx, 5
0048D727 |. B>mov edx, 6
0048D72C |. E>call 00404BF0 ;
0048D731 |. F>push [local.7]
0048D734 |. 6>push 48D7DC ; -
0048D739 |. 8>lea eax, [local.8]
0048D73C |. 5>push eax
0048D73D |. 8>mov eax, [ebx]
0048D73F |. B>mov ecx, 5
0048D744 |. B>mov edx, 0B
0048D749 |. E>call 00404BF0 ;
0048D74E |. F>push [local.8]
0048D751 |. 6>push 48D7DC ; -
0048D756 |. 8>lea eax, [local.9]
0048D759 |. 5>push eax
0048D75A |. 8>mov eax, [ebx]
0048D75C |. B>mov ecx, 5
0048D761 |. B>mov edx, 0F
0048D766 |. E>call 00404BF0 ;
0048D76B |. F>push [local.9]
0048D76E |. 6>push 48D7DC ; -
0048D773 |. 8>lea eax, [local.10]
0048D776 |. 5>push eax
0048D777 |. 8>mov eax, [ebx]
0048D779 |. B>mov ecx, 5
0048D77E |. B>mov edx, 3
0048D783 |. E>call 00404BF0 ;
0048D788 |. F>push [local.10]
0048D78B |. 8>mov eax, ebx
0048D78D |. B>mov edx, 9
0048D792 |. E>call 00404A58 ;
0048D797 |. 3>xor eax, eax
0048D799 |. 5>pop edx
0048D79A |. 5>pop ecx
0048D79B |. 5>pop ecx
0048D79C |. 6>mov fs:[eax], edx
0048D79F |. 6>push 48D7B9
0048D7A4 |> 8>lea eax, [local.10]
0048D7A7 |. B>mov edx, 0A
0048D7AC |. E>call 00404704 ;
0048D7B1 /. C>retn
1 2 3段确实是将代码每隔5位取一次,而第4 是从第0F取的,第5段是从第3位开始取的。
2、应指明reg3就是前面用到的EBX的值。
--------------------------------------------------------------------------------------------------------------------
破解资讯网: